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?


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-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

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.


-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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.