Comment définir des variables PATH pour tous les utilisateurs d'un serveur?


52

Je viens de terminer l'installation de LaTeX pour le serveur Ubuntu de ma société, que tous les utilisateurs SSH peuvent utiliser. À la fin de l'installation, il est écrit ceci:

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.

Comment faire pour que ces variables soient définies pour tous les utilisateurs du système? (Et oui, j'ai des permissions sudo).


La réponse de @ geirha (avec le commentaire de Rob sur MANPATH) résout ce problème, à l'exception de la variable INFOPATH. Bien que j'imagine qu'il n'est pas souvent utilisé par les utilisateurs (?), Est-ce que quelqu'un connaît le bon emplacement pour définir cela? Cela devrait-il être aussi /etc/environment ?
Belacqua

@jgbelacqua afaik Debian et d'autres distributions Linux l'utilisent mais pas Ubuntu. Ou du moins, c’est le meilleur que je puisse rassembler après une recherche sur Google pendant une heure.
Rob S.

Lorsque vous avez installé TeXlive 2010, il aurait dû vous demander si vous souhaitez créer des liens symboliques pour tous les fichiers binaires. Si vous aviez dit oui, cela n'aurait pas posé de problème.
frabjous

@frabjous Cela ne m'a jamais demandé. La seule commande que j'ai jamais donnée était "i" au début pour lancer l'installation. Quoi qu'il en soit, après avoir défini les variables, tout fonctionne parfaitement.
Rob S.

1
@frabjous: L'option de lien symbolique semble maintenant manquer à l'installateur. J'ai installé TeXLive 2011 aujourd'hui et je ne le retrouve plus. J'ai installé TeXLive dans plusieurs versions au moins une douzaine de fois auparavant, alors je me suis demandé pourquoi il n'en existe plus.
Martin Scharrer

Réponses:


57

Vous ajoutez ceux à /etc/environment.

Il y a probablement déjà une ligne pour PATH, donc vous ajoutez simplement :/usr/local/texlive/2010/bin/x86_64-linuxà la fin de celle-ci. Ajoutez ensuite deux nouvelles lignes pour MANPATH et INFOPATH.

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

Après édition /etc/environment, déconnectez-vous et reconnectez-vous, et vérifiez par exemple que echo "$MANPATH"la valeur que vous avez ajoutée est sortie.


À la fin, j’ai également dû éditer /etc/manpath.config. Merci.
Rob S.

2
J'ai supprimé ma réponse, car cela semble être un meilleur choix. Selon help.ubuntu.com/community/EnvironmentVariablesSystem-wide, /etc/environment l'emplacement pour "Les paramètres de variable d'environnement qui affectent le système dans son ensemble (plutôt qu'un simple utilisateur) [...]" /etc/profileet /etc/bash.bashrcsont répertoriés comme "Non recommandé"
Belacqua

Ennuyeux ne fonctionne pas pour la racine!
Chouette

7

Ajoutez ces PATH par défaut à /etc/profile. Cela fonctionnera pour bash et sh. Bash est la valeur par défaut dans Ubuntu.

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

echo $SHELLpeut être utilisé pour déterminer le shell de l'utilisateur actuel ou peut être visualisé à partir d'un /etc/passwdfichier.

Sinon, vous pouvez également l'inclure /etc/environment. Ici, vous pouvez simplement ajouter le PATH à la fin de l'instruction PATH.


J'ai ouvert etc / profile dans vim et il n'y avait rien en ce qui concerne PATH. Merci pour la réponse quand même.
Rob S.

17
L'ordre d'exécution des fichiers est / etc / environment -> / etc / profile -> /etc/bash.bashrc -> /home/<user>/.profile -> /home/<user>/.bashrc
Jamess

éditer une variable de chemin / etc / profile pourrait endommager le système et il vaut mieux l’éviter. spécialement lorsque vous vous connectez à un hôte distant via ssh.
AmirHossein Rezaei
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.