Dodanie niestandardowej ścieżki poprzez aktualizację ~ / .profile, nie działa

14

Zmieniłem plik ~ / .profile, dodając następujące elementy:

PATH="/user/share/android-sdk-linux/tools:$PATH"

Następnie wylogowuję się i loguję ponownie, ale ścieżka nie jest dodawana do zmiennej środowiskowej $ PATH. Sprawdzam w terminalu:

echo $PATH
/usr/share/android-sdk-linux/tools:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/jdk1.7.0_17/bin

Proszę doradź

Edytować

Próbowałem nawet:

PATH=$PATH:/usr/share/android-sdk-linux/tools
EXPORT PATH

Tu też nie ma szczęścia.

Edytuj 2

~ / .profile:

 # ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set path to android
# PATH = $PATH:/usr/share/android-sdk-linux/tools
# EXPORT PATH

PATH="/usr/share/android-sdk-linux/tools:$PATH"

Dodawanie do środowiska ~ / .bachrc lub / etc /:

PATH="/usr/share/android-sdk-linux/tools:$PATH"

działa, ale dlaczego nie ~ / .profile?

Roy Hinkley
źródło
Uwaga: w 13.04 i późniejszych wersjach można zainstalować android-tools-adbi android-tools-fastbootbezpośrednio z Software Center, aby uzyskać adb i fastboot. Nie odpowiada to dokładnie na twoje pytanie, ale skoro rozpoznałem, co robisz, pomyślałem, że zostawię komentarz.
Ian Santopietro
Jeśli chcesz PATH dla wszystkich użytkowników: przeczytaj moją odpowiedź.
PeppeDAlterio
@PeppeDAlterio Chcę dodać niestandardową ścieżkę, a nie przechwytywać.
Roy Hinkley
Czy masz na myśli inną ŚCIEŻKĘ dla każdego użytkownika?
PeppeDAlterio
Teraz chcę, żeby to dla mnie zadziałało.
Roy Hinkley

Odpowiedzi:

2

Jeśli dobrze zrozumiałem, chcesz trwale zmienić wartość zmiennej PATH.
W Ubuntu envar PATH jest zdefiniowany w /etc/environmentpliku. Musisz więc zmodyfikować deklarację envar PATH w tym pliku, a nie w pliku .profile!
Użyj tego tylko, jeśli chcesz zmienić wartość ŚCIEŻKI dla każdego użytkownika!

PeppeDAlterio
źródło
Nie jest to całkowicie wskazane. Co jeśli w systemie jest więcej niż jeden użytkownik?
Radu Rădeanu
Tak, masz rację ... Dodam „ostrzeżenie” do mojej odpowiedzi. Dziękuję
PeppeDAlterio
Ja robię. To celowe.
Roy Hinkley
15

Nie używaj spacji przed ani po =przypisaniu wartości zmiennej w bash. Właściwy sposób to:

PATH="/user/share/android-sdk-linux/tools:$PATH"

Aby zmiany weszły w życie, uruchom ponownie komputer lub .profileprześlij plik za pomocą następującego polecenia:

source ~/.profile

Jeśli chcesz zmienić ścieżkę dla wszystkich użytkowników, dodaj tę linię w /etc/profilepliku. Ponownie wymagane jest ponowne uruchomienie.

Radu Rădeanu
źródło
1
Usunęliśmy spacje i dosłownie cytowaną ścieżkę, jak masz tutaj i nadal nie jest to w echu.
Roy Hinkley
Czy potrafisz wkleić dane wyjściowe cat ~/.profilei echo $PATH?
Ian Santopietro
@AndroidAddict Potrzebujesz restartu lub źródła ~/.profilew terminalu do restartu:source ~/.profile
Radu Rădeanu