1

在 Windows (7 x64) 上处理 Ruby on Rails 项目,我现在想更进一步,将 vagrant 与 VirtualBox 一起用于类似开发环境的产品。

基于专用的RailsCast教程,然后发现现在 Vagrant使用他们的安装程序而不是gem install vagrant

我的问题是,如果我vagrant halt在主机上做一个,下次我会做一个vagrant up(即使没有改变任何东西),加载的系统不再知道 Ruby 了!

这是我在安装所需的 apt-get 后所做的:

cd ~
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
echo 'eval "$(rbenv init -)"' >> ~/.profile
source .profile
git clone git://github.com/sstephenson/ruby-build.git
cd ruby-build/
sudo ./install.sh
rbenv install 1.9.3-p327
rbenv rehash
rbenv global 1.9.3-p327
ruby -v

我究竟做错了什么 ?

4

1 回答 1

0

Ubuntu 的 bash 手册页

当 bash 作为交互式登录 shell 或作为带有 --login 选项的非交互式 shell 调用时,它首先从文件 /etc/profile 中读取并执行命令(如果该文件存在)。读取该文件后,它会按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,并从第一个存在且可读的文件中读取并执行命令。当 shell 启动时,可以使用 --noprofile 选项来禁止这种行为。

如果你有~/.bash_profile~/.bash_login有,防止你~/.profile被阅读。rbenv 永远不会被初始化,所以 ruby​​ 似乎丢失了。

将它们放入~/.bash_profile应该使 ruby​​ 在后续登录时可见。

于 2014-01-07T20:13:38.590 回答