Como faço para definir variáveis ​​PATH para todos os usuários em um servidor?


52

Acabei de instalar o LaTeX para o servidor Ubuntu da minha empresa no qual todos usamos o SSH. No final da instalação, diz o seguinte:

Add /usr/local/texlive/2010/texmf/doc/man to MANPATH, if not dynamically determined.

Add /usr/local/texlive/2010/texmf/doc/info to INFOPATH.

Most importantly, add /usr/local/texlive/2010/bin/x86_64-linux to your PATH for current and future sessions.

Como faço para que essas variáveis ​​sejam definidas para todos os usuários no sistema? (E sim, tenho permissões de sudo).


A resposta de @ geirha (com o comentário de Rob sobre MANPATH) resolve isso, exceto a variável INFOPATH. Embora eu imagine que não seja usado com frequência pelos usuários (?), Alguém sabe o local correto para definir isso? Também deveria ser /etc/environment ?
22411 Belacqua

@jgbelacqua afaik O Debian e outras distribuições Linux o usam, mas não o Ubuntu. Ou pelo menos é o melhor que eu poderia reunir pesquisando no google por uma hora.
Rob S.

Quando você instalou o TeXlive 2010, ele deveria ter perguntado se você queria criar links simbólicos para todos os binários. Se você tivesse dito que sim, isso não teria sido um problema.
Frabjous

@frabjous Isso nunca me perguntou. O único comando que eu dei foi "i" no início para iniciar a instalação. De qualquer forma, depois de definir as variáveis, tudo funciona perfeitamente.
Rob S.

11
@frabjous: A opção de link simbólico parece estar ausente do instalador. Instalei o TeXLive 2011 hoje e consegui encontrá-lo mais. Instalei o TeXLive em várias versões pelo menos uma dúzia de vezes antes, então me perguntei por que não está mais lá.
Martin Scharrer

Respostas:


57

Você os adiciona a /etc/environment.

Provavelmente, ele já tem uma linha para PATH, então você apenas anexa :/usr/local/texlive/2010/bin/x86_64-linuxao final disso. Em seguida, adicione duas novas linhas para MANPATH e INFOPATH.

Consulte https://help.ubuntu.com/community/EnvironmentVariables .

Após a edição /etc/environment, efetue logout e logon novamente e verifique se, por exemplo, echo "$MANPATH"gera o valor adicionado.


No final, eu também tive que editar o /etc/manpath.config. Obrigado.
Rob S.

2
Excluí minha resposta, pois esta parece ser uma escolha melhor. De acordo com help.ubuntu.com/community/EnvironmentVariablesSystem-wide, /etc/environment é o local para "Configurações de variáveis ​​de ambiente que afetam o sistema como um todo (em vez de apenas um usuário específico) [...]" /etc/profilee /etc/bash.bashrcsão listadas como 'Não recomendado'
Belacqua

Irritantemente não funciona como root!
Coruja

7

Adicione esses PATH padrão a /etc/profile. Ele funcionará para bash e sh. Bash é o padrão no Ubuntu.

PATH=$PATH:<new path you need to add>

echo $SHELLpode ser usado para determinar o shell do usuário atual ou pode ser visualizado a partir do /etc/passwdarquivo

Como alternativa, você pode incluí-lo /etc/environmenttambém. Aqui você pode adicionar o PATH no final da instrução PATH.


Abri o etc / profile no vim e não havia nada sobre PATH nele. Obrigado pela resposta da mesma forma.
Rob S.

17
A ordem de execução dos arquivos é / etc / environment -> / etc / profile -> /etc/bash.bashrc -> /home/<user>/.profile -> /home/<user>/.bashrc
Jamess

editar a variável de caminho do / etc / profile pode danificar o sistema e é melhor evitar. especialmente quando você está se conectando ao host remoto via ssh.
AmirHossein Rezaei
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.