1

Я установил Ruby и Rails, используя руководство, которое я нашел здесь: http://ryanbigg.com/2014/10/ubuntu-ruby-ruby-install-chruby-and-you/

Примечательно, что в этом руководстве используются сценарии ruby-install и chruby, позволяющие установить несколько версий Ruby. Система, на которой я ее установил, работает под управлением Ubuntu 12.04 LTS. Все в установке, казалось, прошло нормально.

Теперь я наблюдаю странное поведение, что все в установке ruby перестает работать, как только я покидаю свой homedir. Причина в том, что он теряет пути, добавленные chruby к переменной среды $ PATH. Вот расшифровка сеанса терминала, иллюстрирующая, как $ PATH меняется без видимой причины:

cecil@ifrit:~$ echo $PATH
/home/cecil/.gem/ruby/2.3.0/bin:/opt/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/bin:/opt/rubies/ruby-2.3.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
cecil@ifrit:~$ ls -dF .*
./             .bash_logout          .bashrc  .hg/       .lesshst        .pip/         .psql_history  .screenrc         .ssh/     .vimrc
../            .bash_profile@        .cache/  .hgignore  .local/         .procmailrc*  .ruby-version  .selected_editor  .vim/     .w3m/
.bash_history  .bash_profile.ubuntu  .gnupg/  .hgrc      .mysql_history  .profile      .sc_history    .sqlite_history   .viminfo  .wakeup*
cecil@ifrit:~$ echo $PATH
/home/cecil/.gem/ruby/2.3.0/bin:/opt/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/bin:/opt/rubies/ruby-2.3.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
cecil@ifrit:~$ cd .local
cecil@ifrit:~/.local$ echo $PATH
/home/cecil/.gem/ruby/2.3.0/bin:/opt/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/bin:/opt/rubies/ruby-2.3.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
cecil@ifrit:~/.local$ cd /var
cecil@ifrit:/var$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
cecil@ifrit:/var$ ls -dF .*
./  ../
cecil@ifrit:/var$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
cecil@ifrit:/var$ cd ~
cecil@ifrit:~$ echo $PATH
/home/cecil/.gem/ruby/2.3.0/bin:/opt/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/bin:/opt/rubies/ruby-2.3.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
cecil@ifrit:~$

Пока я остаюсь под своим homedir (/home/cecil или любые другие пути внутри него), все работает нормально, и $ PATH включает в себя соответствующие пути к выбранной версии Ruby, а Ruby прекрасно работает из командной строки. Как только я перехожу на любой другой каталог в системе, пути из Ruby удаляются из моего $ PATH, и ни один из исполняемых файлов Ruby не может быть доступен.

Я понятия не имею, что может привести к такому изменению моего $ PATH. Я даже не знаю, какие уродливые зацепки потребовались бы для того, чтобы переменные среды могли самопроизвольно изменяться таким образом. Это какая-то причудливость Чруби, которую я не понимаю? Что тут происходит?

0