我已经创建了一个用于运行 rails 应用程序的 vagrant box,并且我已设法手动创建它。
我的下一步是创建一个可以包含在 Vagrantfile 中的 shell 脚本,这样在创建新的框时,所有安装都会自动完成。
但当我到达那条线时:
source ~/.bash_profile
我收到这个错误
mkdir: cannot create directory `/home/vagrant/.rbenv/shims': Permission denied
mkdir: cannot create directory `/home/vagrant/.rbenv/versions': Permission denied
通过 CLI 运行良好
有任何想法吗?
更新
我已经修复了 mkdir 错误,并且脚本从头到尾运行没有明显的错误。
现在,当我vagrant ssh
检查我的主目录时,我没有找到我使用脚本下载和安装的任何 git 存储库,也没有找到 .bash_profile,因此我无法rbenv
知道为什么会发生这种情况吗?我做错了什么?
vagrant@precise64:~$ ls -a
. .bash_history .cache .profile .sudo_as_admin_successful .veewee_version
.. .bash_logout .bashrc postinstall.sh .ssh .vbox_version
vagrant@precise64:~$
这是setup.sh:
# Update sources:
sudo apt-get -y update
# Install development tools:
sudo apt-get -y install build-essential
# Packages required for compilation of some stdlib modules
sudo apt-get -y install tklib
# Extras for RubyGems and Rails:
sudo apt-get -y install zlib1g-dev libssl-dev
# Readline Dev on Ubuntu:
sudo apt-get -y install libreadline-gplv2-dev
# Install some nokogiri dependencies:
sudo apt-get -y install libxml2 libxml2-dev libxslt1-dev
# Install Git
sudo apt-get -y install git-core
# Install Sqlite
sudo apt-get -y install sqlite3 libsqlite3-dev
# Install Make
sudo apt-get -y install make
# Install NodeJS (Required for Rails)
sudo apt-get -y install python-software-properties
sudo add-apt-repository -y ppa:chris-lea/node.js
sudo apt-get -y update
sudo apt-get -y install curl nodejs
# Install RBENV
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
touch ~/.bash_profile
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
# Install Ruby 2.1.0
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
sudo sh ~/.rbenv/plugins/ruby-build/install.sh
rbenv install 2.1.0
rbenv rehash
rbenv global 2.1.0
# Install gems for Rails
# gem install rdoc
gem install bundler
# gem install rake
gem install sqlite3 -v '1.3.9'
gem install rails
rbenv rehash
提前谢谢了。
答案1
这对我来说看起来很熟悉。我为 Vagrant 配置编写了一些 shell 脚本,在运行它之前确实遇到了很多问题。
这可能与以下内容有关rbenv
,请检查以下内容
- 您不需要 sudo 来通过 rbenv + ruby-build 安装 Ruby(看到您是否收到权限错误?)
- 通过 rben 安装 Ruby 的正确方法是 ->
rbenv install 2.1.2 -v
- 通过 rbenv 安装 ruby 后,你可能必须重新启动 shell(我使用
exec $SHELL -l
它,它对我的脚本很有效) - 对于 ubuntu,你不应该使用
$HOME/.bash_profile
,根据 rbenv 文档,你应该使用$HOME/.bashrc
修复以上所有内容并查看是否有效。