Właśnie uruchomiliśmy nasze nowe serwery i uruchomiliśmy na nich CentOS. Po pomyślnym zainstalowaniu Ruby Enterprise Edition, chciałbym teraz dodać /usr/lib/ruby-enterprise/bin
katalog REE / bin (znajdujący się w ), aby stał się domyślnym interpreterem Ruby na serwerze.
Próbowałem następujących, które dodają go tylko do bieżącej sesji powłoki:
export PATH=/usr/lib/ruby-enterprise/bin:$PATH
Jakie byłoby właściwe podejście do trwałego dodania tego katalogu do $ PATH dla wszystkich użytkowników . Jestem aktualnie zalogowany jako root.
Z góry dziękuję!
~/.profile
jest również inną prawidłową opcjąPo zapoznaniu się z radą fmonka sprawdziłem
/etc/bashrc
, gdzie zauważyłem, że „Środowisko działa w / etc / profile”. Poszedłem do środka/etc/profile
, zobaczyłem to:Aby rozwiązać mój problem, po prostu dodałem
pathmunge /usr/lib/ruby-enterprise/bin
pod instrukcją if. To rozwiązało mój problem.źródło
"$EUID" = "0"
oznacza w tym kontekście?/etc/profile.d/
folderze, a zauważysz. Ponadto, jak powiedział, aktualizacja systemu może cofnąć twoje rozwiązanie.Dlatego nie umieszczałbym zmiennych środowiskowych w bashrc, ponieważ jest to nie tylko sprzeczne z powszechną konwencją, ale również przegapisz swoje zmienne bashrc podczas wywoływania terminala ze środowiska graficznego pulpitu.
Na Redhat w
/etc/profile
I znalazłem ten komentarz:Jeśli więc chcesz ustawić zmienne środowiskowe dla poszczególnych użytkowników, zrób to w pliku .bash_profile użytkownika.
Wracając do
.bash_profile
I czytam:Wniosek
Jeśli chcesz, aby tylko root widział programy rezydujące, na przykład w /
sbin
I dodałbym tę ścieżkę do.bash_profile
pliku roota . Ale jeśli chcesz, każdy użytkownik, aby zobaczyć co korzeń specyficzne programy są zainstalowane na skrzynce chciałbym umieścić/sbin
na/etc/.profile
. Teraz każdy użytkownik może korzystać z funkcji uzupełniania tabulatorów, aby wyszukiwać programy root i w razie potrzeby podnosić uprawnienia.Przypadek specjalny: SSH
Kiedy ssh jest uruchamiany z linii poleceń, uruchamiana jest interaktywna powłoka logowania. Ale w tym przypadku
/etc/profile
nie jest czytany. Kiedy zdefiniowałem zmienne środowiskowe w.bash_profile
pliku każdego użytkownika, pracował z ssh.źródło
SORRY błędnie zinterpretował pytanie, które brzmi następująco: profil UŻYTKOWNIKA pozostawia to na wypadek, gdyby pomógł komuś
zmodyfikuj .bash_profile
następnie gdzieś w pliku dodaj / zmodyfikuj ścieżki oddzielone:
następnie załaduj ponownie swój profil
lub wyloguj się i zaloguj ponownie
jeśli zaznaczysz ŚCIEŻKĘ, powinna ona zawierać nowo dodane ścieżki
źródło
Możesz ustawić zmienne środowiskowe w pliku .rc; dla powłok bash (uważam, że najczęściej i domyślnie w CentOS) każdy użytkownik ma plik o nazwie .bashrc w swoim katalogu domowym.
Dodaj polecenie PATH = / usr / lib / ruby-enterprise / bin: $ PATH do tego pliku, aby ustawić go dla konkretnego użytkownika.
Aby ustawić go dla wszystkich użytkowników (jak wspomniałeś), zmień go w / etc / bashrc (domyślny plik .bashrc w katalogu domowym każdego użytkownika powinien ten plik źródłowy źródłowy, ale powinieneś go dwukrotnie sprawdzić).
źródło