2013-05-29 2 views
1

я пытаюсь написать Баш скрипт, который установит rbenv от начала до концаBash скрипт автоматизации rbenv установить

но есть нечто, что не работают в основном я меняюсь каталог, но только в субоболочке.

#!/bin/bash 
echo "installing rbenv ruby manager manager" 
cd ~ 
git clone git://github.com/sstephenson/rbenv.git .rbenv 
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile 
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile 
source .bash_profile 

echo "installing ruby build for rbenv" 
git clone https://github.com/sstephenson/ruby-build.git 
cd ruby-build 
sudo ./install.sh 

echo "rbenv and ruby-build have been installed, installing ruby now.." 
sleep 2 

read -p "would you like chronospere to install ruby 1.9.3 [y/n]" RESP 
if [ "$RESP" = "y" ]; then 
    rbenv install 1.9.3-p327 
    rbenv rehash 
    rbenv global 1.9.3-p327 
    ruby -v 
else 
    echo "alrigt skipping.. vagrant has rbenv installed you can install ruby it at your leisure " 
    echo "hold cmd, and double clck https://github.com/sstephenson/rbenv for more info" 
fi 

cd ~ 

поэтому похоже, что установка это работает. но большая часть моего дозатора кода запускается или не запускается в id места, как это.

[email protected]:/vagrant$ ruby -v 
ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux] 
[email protected]:/vagrant$ rbenv 
The program 'rbenv' is currently not installed. You can install it by typing: 
sudo apt-get install rbenv 

, как вы можете видеть его, как если бы не было установлено ничего только то, что случилось, что source .bash_profile не произошло

[email protected]:/vagrant$ cd  
[email protected]:~$ cd ~ 
[email protected]:~$ source .bash_profile 

после того, как я вручную подключим bash_profile

[email protected]:~$ rbenv 
rbenv 0.4.0-45-g060f141 
[email protected]:~$ rbenv versions 
    * system (set by /home/vagrant/.rbenv/version) 
    1.9.3-p327 
[email protected]:~$ rbenv global 1.9.3-p327 
[email protected]:~$ ruby -v 
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-linux] 

так, как вы можете см. его, как будто код работает, не переходя из одного каталога в другой. Я даже не знаю, возможно ли это. Я перехожу из ~/(HOME) в/ruby-build обратно до ~ then to/vagrant. возможно ли это в одном сценарии bash.

ответ

1

Я тоже столкнулся с этой проблемой. Ключ для меня заключался в том, чтобы добавить export RBENV_ROOT="/home/vagrant/.rbenv" прямо перед вызовом curl, чтобы захватить rbenv. Что-то вроде этого должно работать (протестировано с Ubuntu Precise 32 bit):

export RBENV_ROOT="/home/vagrant/.rbenv" 

curl https://raw.github.com/fesplugas/rbenv-installer/master/bin/rbenv-installer | bash 
Смежные вопросы