jak zachować PATH eksportu?

0

Jak mogę to zrobić ssh admin@nas command pracować, jeśli command jest w /opt/bin?

Na moim pliku NAS QNAP /root/.ssh/rc :

echo "old path is $PATH"
export PATH=/opt/bin:/opt/sbin:$PATH
echo "new path is $PATH"

na mojej maszynie:

~$ ssh admin@nas 'echo $PATH'

zwraca

old path is /usr/bin:/bin:/usr/sbin:/sbin
new path is /opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin
/usr/bin:/bin:/usr/sbin:/sbin

więc zmienna ścieżki nie jest zachowywana. Jak mogę to osiągnąć?

Edytować: Jak wspomniałem w moim komentarzu poniżej polecenia, którego próbuję użyć, jest git lub, bardziej konkretnie git-upload-pack i git-receive-pack i prawdopodobnie kilka innych. Chcę używać ich w różnych lokalizacjach i okazjach i nie chcę zawracać sobie głowy konfigurowaniem git config na każdym komputerze, na którym go używam lub uczę mojego IDE, jak komunikować się z moim NAS, ale raczej mieć zgodne ze standardami NAS. Więc pomyślałem, że wszystko, czego potrzebuję, to ustawić właściwe $PATH

Edytuj II: do tej pory próbowałem także wstawiać export PATH=... jak również dodanie innego echo (aby sprawdzić, czy są uruchomione) do ~/.bash_profile, to /etc/profile i do ~/.bashrc. Najwyraźniej żaden z nich nie jest nawet wykonywany, gdy uruchamiam polecenie nieinteraktywne, jak powyżej. Jeśli zrobię ssh admin@nas wszystkie są wykonywane, ale to nie pomaga

user2298896
źródło
przyklej go w ~ / .bash_profile
shorif2000
Próbowałem tego, dodając kolejne echo (aby sprawdzić, czy są uruchomione) ~/.bash_profile, do /etc/profile i do ~/.bashrc. Najwyraźniej żaden z nich nie jest nawet wykonywany, gdy uruchamiam polecenie nieinteraktywne, jak powyżej. Jeśli zrobię ssh admin@nas wszystkie są wykonywane, ale to nie pomaga
user2298896
Co powiesz na ~/.bashrc?
Scott
Jak opisano w moim poprzednim komentarzu, spróbowałem tego
user2298896
zaloguj się do roota za pomocą su -
shorif2000

Odpowiedzi:

1

Jeśli jesteś zalogowany jako administrator, ~/.bashrc nie jest używany, ale ~/.profile jest. Możesz więc dodać to do .profile:

export PATH=\
/bin:\
/sbin:\
/opt/bin:\  #<--- HERE IT IS NOW
/usr/bin:\
/usr/sbin:\
/usr/bin/X11:\
/usr/local/bin

A PATH zostanie załadowany w ten sposób podczas logowania jako admin. To, co zrobiłem w moim nas, to dodałem to do .bashrc i zmieniłem .profile na 1 linię:

source ~/.bashrc

Więc kiedy logujesz się jako admin, nadal masz skonfigurowany SH z .bashrc.

EDYTOWAĆ: Teraz rozumiem, co chcesz zrobić ...

Po prostu utwórz dowiązania symboliczne do tych dwóch plików binarnych wewnątrz / usr / bin. Na przykład:

cd /usr/bin && ln -s /opt/bin/git-upload-pack 
Cipi
źródło
0

Możesz wejść real address polecenia zamiast polecenia w ssh admin @ nas command. Jak poniżej:

ssh admin@nas /opt/bin/command-name

Sepahrad Salour
źródło
dzięki za odpowiedź, to działa, ale polecenie, którego próbuję użyć, jest git lub, bardziej konkretnie git-upload-pack i git-receive-pack i prawdopodobnie kilka innych. Chcę używać ich w różnych lokalizacjach i okazjach i nie chcę zawracać sobie głowy konfigurowaniem git config na każdym komputerze, na którym go używam lub uczę mojego IDE, jak komunikować się z moim NAS, ale raczej mieć zgodne ze standardami NAS. Więc pomyślałem, że wszystko, czego potrzebuję, to ustawić właściwe $PATH
user2298896