Почему я должен работать “/bin/bash - вход в систему”

Я имею, просто устанавливают новый сервер Ubuntu 13.10 с рубиновыми 2.1.1, установленными через rvm.

Проблема состоит в том, что каждый раз, когда я переключаю на пользователя "направляющие" (пользователь я установил рубин и направляющие с) я должен работать /bin/bash --login прежде чем Ubuntu распознает что рубин, направляющие или rvm установлен.

Надежда кто-то знает:

  1. Что делает команду выше, делают?
  2. почему я должен выполнить его?
  3. и что я могу сделать для решения его раз и навсегда?:)

Любая справка ценится!

11
задан 8 April 2014 в 13:05

2 ответа

Это походит на среду, необходимую для системы, чтобы найти, что установленные рубиновые компоненты определяются в файле, который только читается из оболочек входа в систему. Страница руководства удара говорит следующее о различии между оболочками входа в систему и оболочками невхода в систему:

INVOCATION
   A  login shell is one whose first character of argument zero is a -, or
   one started with the --login option.

и

   When bash is invoked as an interactive login shell, or as a non-inter‐
   active shell with the --login option, it first reads and executes  com‐
   mands  from  the file /etc/profile, if that file exists. After reading
   that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile,
   in  that order, and reads and executes commands from the first one that
   exists and is readable.  

, тогда как

   When an interactive shell that is not a login shell  is  started,  bash
   reads  and  executes  commands  from /etc/bash.bashrc and ~/.bashrc, if
   these files exist. 

Следовательно, если рубиновые переменные среды находятся в /home/rails/.profile или /etc/profile, например, они будут добавлены к среде оболочки

  • путем явного вызова оболочки входа в систему с помощью su -l rails или su --login rails или стенография su - rails
  • , когда пользователь rails журналы на пути SSH
  • путем запуска подоболочки как bash --login после входа в систему

, Если Вы хотите, чтобы рубиновая среда была установлена независимо от того, как Вы переключаетесь на пользователя rails, Вы могли переместить определения следующей переменной пользователю ~/.bashrc вместо этого.

11
ответ дан 16 November 2019 в 14:58

Я знаю, что этот вопрос задали 2 года назад, но в случае, если если кто-то (как я) все еще направление с ним: @steeldriver является правильным - Вы пропускаете что-то в Вашем bashrc, который Вы действительно имеете в одном из тех 3 файлов. В моем случае я просто должен был добавить эту строку в мой ~/.bashrc:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
4
ответ дан 16 November 2019 в 14:58

Другие вопросы по тегам:

Похожие вопросы: