zmiana / etc / environment nie wpłynęła na moje zmienne środowiskowe

10

Próbuję zainstalować system ekspercki Euler zgodnie z tymi instrukcjami . Aby dodać zmienną środowiskową, zmodyfikowałem ją tak, /etc/environmentaby wyglądała następująco:

 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
/home/mohammad/Desktop/eye"
 EYE_HOME = "/home/mohammad/Desktop/eye"

Ale kiedy używam printenv PATH, nie widzę nowego katalogu dodanego do mojej ścieżki.

Co robię tutaj źle?

Wszechmocny wielbłąd Moha
źródło
Ten link obecnie nie działa (SourceForge nie działa), ale czy możesz określić, czy chcesz mieć ogólnosystemowe zmienne środowiskowe? Ponieważ dotyczy aplikacji, prawdopodobnie tak jest, dlatego wiele poniższych odpowiedzi jest błędnych.
Michael Scheper,

Odpowiedzi:

8

Nie wiem, dlaczego PATH nie została zmieniona (po ponownym zalogowaniu), ale

EYE_HOME = "/home/mohammad/Desktop/eye"
--------^-^

spacje te uniemożliwiają ustawienie EYE_HOME.

Należy zauważyć, że /etc/environmentnie jest to plik skryptu, ale rodzaj pliku przydziału odczytywanego przez PAM. OTOH takie spacje nie są dozwolone w plikach skryptowych takich jak /etc/profilei ~/.profile.

Jeśli używasz pliku skryptu, musisz wyeksportować zmienne, jak pokazano w odpowiedzi Avinash Raj.

Należy pamiętać, że podczas ~/.bashrcprac jeśli uruchomić program z oknie terminala, nie może działać, jeśli zaczniesz ją od środowiska graficznego, ponieważ nie jest wchłaniany przez menedżera wyświetlania.

Gunnar Hjalmarsson
źródło
@ gunnar-hijalmarsson --- poprawnie. Fakt, że menedżer wyświetlania nie został uruchomiony z mojej powłoki, gryzie mnie wiele razy. Zamieściłem sztuczkę, aby zobaczyć zmienne ustawione w DE: askubuntu.com/a/356973/16395
Rmano
Dobra sztuczka, @Rmano! Czy jest szansa, że ​​dodasz go do help.ubuntu.com/community/EnvironmentVariables ?
Gunnar Hjalmarsson,
Dzięki - nigdy nie edytowałem żadnego z nich i nie wiem, czy miałem uprawnienia. Zajmę się tym, jeśli będę miał czas, ale w przeciwnym razie nie krępuj się kopiować / wklejać, co chcesz --- strona ta jest bardzo potrzebna do aktualizacji. Jedno pytanie: czy wszystkie menedżery wyświetlania (lightdm, gdm, kdm) pochodzą, ~/.profilenawet jeśli moja domyślna powłoka nie jest, bashale na przykład zsh?
Rmano,
Sprawdzone przeze mnie. Używam zsh; aplikacje uruchomione przez DE zobacz zmienne ustawione w ~/.pam_environmenti ~/.profile(NIE ~/.zprofile). To jest dobre i złe, ale zła część została rozwiązana przez zmianę .profiletak, aby źródła moje .zprofilei .zshenv. I potwierdzam, że używanie .pam_environmentjest złe, jest kiedyś nadpisywane (nie powinno, ale tak jest).
Rmano,
@Rmano: Wiem, że ~/.profilepochodzą od lightdm i gdm; nie jestem pewien co do kdm.
Gunnar Hjalmarsson,
5
gedit ~/.bashrc

Następnie dodaj poniższe linie,

export EYE_HOME="/home/mohammad/Desktop/eye"
export PATH=$PATH:$EYE_HOME

Zapisz plik i zapisz go,

source ~/.bashrc
Avinash Raj
źródło
1
czy byłaby to zmienna ogólnosystemowa?
Moha Wszechmogący wielbłąd
1
@AvinashRaj: te zmienne będą nie tylko przeznaczone dla użytkownika, ale nie będą widoczne, jeśli aplikacja nie zostanie uruchomiona z terminala wiersza poleceń ... środowisko graficzne uruchomi się samo, nie używając powłoki użytkownika. Zobacz askubuntu.com/a/356973/16395
Rmano,
0

Możesz również wypróbować te dwa pliki w celu konfiguracji całego systemu:

  • /etc/profile
  • /etc/bashrc

W przypadku konfiguracji dla całego użytkownika:

  • $HOME/.profile
  • $HOME/.bashrc

Po prostu dołącz zmienne, jak już to zrobiłeś /etc/environment. Ale będziesz musiał się zalogować i wylogować (lub uruchomić odpowiednie przeładowanie). Może po zalogowaniu i wylogowaniu /etc/environmentzadziałałoby, ale nie jestem pewien.

Tinti
źródło
-1

Chcesz edytować plik .bashrc w katalogu domowym.

Kiedy edytujesz ścieżkę, powinieneś dołączyć ją :$PATHna końcu, aby nie zastąpić bieżącej ścieżki.

Julian Stirling
źródło