2010-11-11 37 views
2

J'ai récemment installé la chaîne d'outils arm-linux-gcc pour mon système d'exploitation Ubuntu. J'ai configuré la variable path pour la chaîne d'outils dans le fichier/etc/profile. Je suis en mesure d'accéder à l'ensemble des outils que lorsque je suis connecté en tant que root et aussi, je dois faireLe profil n'est pas chargé pour tous les utilisateurs

source /etc/profile 

à chaque session. Pourquoi cela arrive-t-il? Pourquoi suis-je incapable d'accéder à la chaîne d'outils à partir d'une connexion normale?

Cordialement,

Répondre

3

Probablement vous n'êtes pas en cours d'exécution d'un login-shell.

Cela dépend un peu du shell que vous utilisez. J'utilise Bash, mais peut-être utilisez-vous BusyBox?

du manuel de bash:

Lorsque bash est invoqué comme un shell de connexion interactive, ou comme une coquille non interactif avec l'option --login, il premier lit et exécute les commandes de le fichier/etc/profile, si ce fichier existe. Après avoir lu ce fichier, cherche ~/.bash_profile, ~/.bash_login, et ~/.profile, dans cet ordre , et lit et exécute les commandes du premier qui existe et est lisible.

Ce que je fais habituellement pour résoudre ce problème, est mis:

source /etc/profile 

en première ligne dans mon ~/.bashrc.

Cela fonctionne car ~/.bashrc est également exécuté pour les shells non connectés.

Pour voir quels fichiers sont exécutés, vous pouvez y placer des messages de diagnostic. Si je ne me souviens pas quels fichiers sont exécutés à quel type je me connecte, je mets:

echo /etc/profile/ 

en première ligne dans/etc/profile, même pour/etc/bash/bashrc, ~/.bashrc , ~/.profile et ainsi de suite.

Pour plus d'informations, consultez la partie "INVOCATION" du manuel bash.