Команда не найдена после установки источника в bash-скрипте

Следуйте инструкциям здесь, и все отлично работает вручную. Однако, когда я использую инструкции в скрипте bash, я получаю rbenv command not found поскольку source ~/.bashrc не выполняется правильно. В чем дело? Чувствую, что я сталкивался с этим раньше на чем-то другом...

* Выполнен бит установлен, запускается dos2unix, и есть #!/bin/bash на вершине.

#!/bin/bash

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenv install 2.3.1

1 ответ

Решение

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

$HOME/.rbenv/bin/rbenv install 2.3.1

Обратите внимание, что для Космического и далее есть rbenv пакет в репозиториях.

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