web-dev-qa-db-fra.com

Désactiver les différences dans la gestion des connexions (non interactif, interactif, etc.)

J'ai toujours des problèmes avec RVM installations et sessions Shell non interactives ou interactives. Si la session n'est pas interactive, j'obtiens généralement le command not found erreur sur différents programmes/fonctions dans la chaîne d'outils RVM/Ruby (c'est-à-dire gem, rvm, Ruby etc.). Il existe trois solutions au problème que je connais:

  • Ajouter/supprimer des lignes de .bashrc pour chaque utilisateur. Les changements dépendent de la version d'Ubuntu
  • Taper bash --login avant de travailler avec RVM pour obtenir un shell interactif
  • Modification de l'option 'Exécuter la commande en tant que shell de connexion' dans gnome-terminal

Toutes ces solutions ne sont pas exactement ce que je recherche car j'ai quelques hôtes avec différentes versions d'Ubuntu et pour certaines applications, les solutions décrites ci-dessus ne fonctionnent pas (c'est-à-dire démonisées Suite de gestion de la configuration du chef =). Pour autant que je puisse tracer le problème, cela est basé sur le fait que les scripts Shell dans /etc/profile.d ne sont exécutés que si l'utilisateur se connecte à une session Shell interactive. Ce qui ne semble pas être le cas si un processus démonisé s'exécute ou si moi ou une application se connecte via ssh.

Ce que je recherche, c'est un moyen d'unifier tous les types de sessions Shell pour exécuter des scripts dans /etc/profile.d. Idéalement, cette solution devrait fonctionner pour tous les utilisateurs qui peuvent se connecter et pour différentes versions d'Ubuntu (atm utilisée: 10.4, 11.10). Il serait également utile de pouvoir le configurer facilement à l'aide de scripts automatisés ou de recettes Chef.

Remarque: je ne sais pas si les scripts ne sont pas en cours d'exécution dans /etc/profile.d est le seul problème auquel je suis confronté, je sais que faire bash --login résout généralement mes problèmes.

3
wintersolutions

Votre problème est que gnome-terminal n'utilise pas --login pour bash par défaut: https://rvm.io/integration/gnome-terminal/

Pour l'écriture de scripts avec RVM, choisissez l'une des méthodes décrites ici: https://rvm.io/integration/cron/

Il y a plus d'informations sur les fichiers utilisateur rc ici: https://rvm.io/support/faq/#Shell_login

1
mpapis