PATH não sendo exportado de ~ / .profile até que seja manualmente fornecido

0

Estou tentando modificar meu PATH em ~ / .profile:

export PATH=$PATH:/opt/jdk1.8/bin
echo "Path is exported."

Eu sempre faço login via SSH, e é por isso que o tenho em ~ / .profile. Eu estou usando zsh (oh-my-zsh) como meu shell padrão e no meu ~ / .zprofile eu estou sourcing ~ / .profile:

source ~/.profile

A parte estranha é que quando eu faço o login no SSH, vejo o "Caminho é exportado". mensagem que significa que a declaração de origem .zprofile está funcionando, mas quando eu echo meu $ PATH, o '/opt/jdk1.8/bin' está faltando. Se eu, então, manualmente fonte ~ / .profile, o caminho é atualizado corretamente, então eu não tenho certeza porque ele não exporta o caminho corretamente quando é originado no login. Isso tudo é dentro de uma caixa vagabunda, se isso ajuda. Alguma idéia?

Editar: Saída do zsh -ixc exit 2 > & 1 | grep PATH:

+/home/vagrant/.zcompdump:1254> _postpatcomps=( '(p[bgpn]m*|*top[bgpn]m)' _pbm '(texi(2*|ndex))' _texi '(tiff*|*2tiff|pal2rgb)' _tiff '-value-,(ftp|http(|s))_proxy,-default-' _urls '-value-,LC_*,-default-' _locales '-value-,*path,-default-'
_directories '-value-,*PATH,-default-' _dir_list '-value-,RUBY(LIB|OPT|PATH),-default-' _ruby '*/X11(|R<4->)/*'
_x_arguments 'yodl(|2*)' _yodl )
+/home/vagrant/.zshrc:56> export 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games'
+/home/vagrant/.zcompdump-vagrant-ubuntu-trusty-64-5.0.2:1256> _postpatcomps=( '(p[bgpn]m*|*top[bgpn]m)' _pbm '(texi(2*|ndex))' _texi '(tiff*|*2tiff|pal2rgb)' _tiff '-value-,(ftp|http(|s))_proxy,-default-' _urls '-value-,LC_*,-default-' _locales '-value-,*path,-default-'
_directories '-value-,*PATH,-default-' _dir_list '-value-,RUBY(LIB|OPT|PATH),-default-' _ruby '*/X11(|R<4->)/*'
_x_arguments 'yodl(|2*)' _yodl )
+nvm:409> PATH=+nvm:409> nvm_strip_path /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games /bin
+nvm:409> PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
+nvm:411> PATH=+nvm:411> nvm_prepend_path /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games /home/vagrant/.nvm/versions/node/v5.0.0/bin
+nvm:411> PATH=/home/vagrant/.nvm/versions/node/v5.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
+nvm:417> MANPATH=+nvm:417> nvm_strip_path /home/vagrant/.nvm/versions/node/v5.0.0/share/man:/usr/local/man:/usr/local/share/man:/usr/share/man:/opt/jdk1.8/man /share/man
+nvm:417> MANPATH=/usr/local/man:/usr/local/share/man:/usr/share/man:/opt/jdk1.8/man
+nvm:419> MANPATH=+nvm:419> nvm_prepend_path /usr/local/man:/usr/local/share/man:/usr/share/man:/opt/jdk1.8/man /home/vagrant/.nvm/versions/node/v5.0.0/share/man
+nvm:419> MANPATH=/home/vagrant/.nvm/versions/node/v5.0.0/share/man:/usr/local/man:/usr/local/share/man:/usr/share/man:/opt/jdk1.8/man
+nvm:420> export MANPATH
+nvm:422> export PATH
+nvm:424> export 'NVM_PATH=/home/vagrant/.nvm/versions/node/v5.0.0/lib/node'
    
por Sagar Desai 06.04.2016 / 17:46

1 resposta

1

Eu descobri qual era o problema. Baseado em @L. O comentário de Levrel, eu adicionei uma declaração echo ao .zshrc, já que ele disse que os shells de login ssh são interativos e fazem login. E com certeza, o .zshrc é adquirido APÓS o perfil .z, e o caminho está sendo sobrescrito em .zshrc. Mover o comando de exportação para a variável Java para ~ / .zshrc resolveu o problema.

    
por 10.04.2016 / 22:46

Tags