【发布时间】:2016-05-23 17:48:16
【问题描述】:
我正在用 bash 编写一个安装脚本,它将在配置新服务器时以 root 身份运行。它将为部署用户安装 rbenv 并安装一些默认的 rubies/gems。我的脚本已完成设置 rbenv,但它无法以部署用户身份安装 rubies。我知道 rbenv 设置正确,因为当我作为部署用户 SSH 时,我可以像往常一样访问 rbenv。到目前为止,这是我所拥有的:
# install rbenv
git clone https://github.com/sstephenson/rbenv.git /home/deploy/.rbenv
# install ruby-build and auto-rehash plugins
git clone https://github.com/sstephenson/ruby-build.git /home/deploy/.rbenv/plugins/ruby-build
git clone https://github.com/sstephenson/rbenv-gem-rehash.git /home/deploy/.rbenv/plugins/rbenv-gem-rehash
# fix permissions since we've been running as root
chown -R deploy:deploy /home/deploy/.rbenv
# setup rbenv
echo "export PATH=\"~/.rbenv/shims:~/.rbenv/bin:$PATH\"" >> /home/deploy/.bashrc
echo 'eval "$(rbenv init -)"' >> /home/deploy/.bashrc
# now install default ruby
sudo -i -u deploy /bin/bash - <<-EOF
rbenv install $ruby_version
rbenv global $ruby_version
echo 'gem: --no-ri --no-rdoc' > ~/.gemrc
gem install bundler
EOF
我已经尝试了-i、-H、-l 的所有组合,我能想到但我不断得到:
/bin/bash: rbenv: 找不到命令
我做错了什么?
【问题讨论】:
-
This 可能会有所帮助。
-
@devnull 谢谢,但这不是问题。权限已经正确。
-
我已经添加了我的设置步骤来证明这一点。
-
sudo -i将模拟登录 shell。在那种情况下,~/.bashrc将不会被读取;尝试将变量添加到~/.profile或~/.login。 -
@devnull rbenv readme explicitly says to add it to
~/.bashrcon Ubuntu。这不会改变 rbenv 的正常使用吗?