Nie jesteś zalogowany na forum.

#1 2015-12-07 08:37:57

mk
Użytkownik
Data rejestracji: 2015-08-27
Liczba postów: 37

[Solved] Zmienne środowiskowe dla usera non-interactive session

Mam wrażenie że kwestia zmiennych środowiskowych w Linuksie została mocno... nie przemyślana.

Bo niech mi ktoś podpowie w którym pliku dodać coś do PATH, ale tylko dla jednego usera w taki sposób aby działało we wszystkich możliwych sytuacjach. No może być dla wszystkich userów jeśli można używać subshell'a.

Konkretnie. Muszę dodać do PATH $(ruby -e 'print Gem.user_dir')/bin czyli ścieżkę do lokalnych komend z gemów rubiowych.

Dodałem do ~/.zshrc jako że używam zsh. Ale potem się okazało że część aplikacji (git) używa bash'a. No to stworzyłem plik ~/.profile i zaciągnąłem go (source) w .zshrc i .bashrc. I gitara. Do czasu aż nie wyszło na jaw że git po ssh uruchamia sesję non-interactive i olewa całą tę konfigurację.

Mógłbym to hackować i dodać kolejny plik ssh_env_coś_tam ale za chwile się okaże że pojawi się kolejna sytuacja tego typu, pewnie jakiś cron olewa wszytko...

Więc, aby rozwiązać tę kwestię raz na zawsze, gdzie skonfigurować zmienne środowiskowe dla user'a aby były widoczne zawsze i wszędzie?

-- edit

Chyba jednak, popełniłem błąd, zdaje się że .bashrc jest ładowany. A ja przypuszczalnie dodałem ładowanie mojego .profile w .bash_profile, który nie jest ładowany... Teraz nie mam dostępu do tej maszyny, sprawdzę później.

-- edit

ZSH ma tak że przy sesji interaktywnej/login ładuje oczywiście ~/.zshrc, a przy non-interactive ~/.zshenv :) i to był cały problem.

Ostatnio edytowany przez mk (2015-12-10 11:00:00)

Offline

#2 2016-01-24 19:42:19

barthalion
Developer
Lokalizacja: Poznań
Data rejestracji: 2015-08-20
Liczba postów: 219
WWW

Odp: [Solved] Zmienne środowiskowe dla usera non-interactive session

Dodam tylko, że przy interaktywnej najpierw ładuje zshenv, a potem zshrc. Poza tym wszystko się zgadza. 8)

Offline

Stopka

Napędzają nas PacmanVPS i MegiTeam

Forum oparte na FluxBB