我正在使用Ansible在我的VPS上安装Bundler。
我已经设置好了rbenv,全局ruby版本是2.1.0。
如果我以root身份通过SSH登录服务器并运行gem install bundler
,它将完美地安装。
我尝试了以下三种使用Ansible安装Bundler gem的方法,这三种方法都没有产生错误,但是当我通过SSH登录并运行gem list
时,找不到Bundler。
尝试1:
---
- name: Install Bundler
shell: gem install bundler
尝试2:
---
- name: Install Bundler
shell: gem install bundler
尝试三:
---
- name: Install Bundler
gem: name=bundler
state=latest
我还尝试了最后一次尝试,使用user_install=yes
和user_install=no
,但都没有任何区别。
有什么想法可以通过Ansible正确安装Bundler吗?
我已经在做了一段时间了,我安装了一个Ruby版本:2.1.0,并发现rbenv的shims目录中没有bundle
的虚拟链接。
bundle
的虚拟链接应该在那里吗?当我运行sudo gem list
时,它被列出,但当我运行gem list
时却没有被列出,所以我感到困惑为什么capistrano找不到bundle
命令。
root@weepingangel:/usr/local/rbenv/shims# echo $PATH
/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
root@weepingangel:/usr/local/rbenv/shims# gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 2.2.0
- RUBY VERSION: 2.1.0 (2013-12-25 patchlevel 0) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/local/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0
- RUBY EXECUTABLE: /usr/local/rbenv/versions/2.1.0/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/rbenv/versions/2.1.0/bin
- SPEC CACHE DIRECTORY: /root/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/local/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0
- /root/.gem/ruby/2.1.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://gems.rubyforge.org", "http://gems.github.com"]
- "gem" => "--no-ri --no-rdoc"
- REMOTE SOURCES:
- http://gems.rubyforge.org
- http://gems.github.com
- SHELL PATH:
- /usr/local/rbenv/versions/2.1.0/bin
- /usr/local/rbenv/libexec
- /usr/local/rbenv/shims
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/games
有任何想法吗?
所以,我认为我遇到的两个主要问题是:
为什么只有当我运行
sudo gem list
时,bundler 才可见?我的部署出现了以下错误信息:
INFO [18d5838c] Running /usr/bin/env bundle install --binstubs /var/rails_apps/neiltonge/shared/bin --path /var/rails_apps/neiltonge/shared/bundle --without development test --deployment --quiet on 188.226.159.96 DEBUG [18d5838c] Command: cd /var/rails_apps/neiltonge/releases/20140301205432 && ( PATH=$PATH /usr/bin/env bundle install --binstubs /var/rails_apps/neiltonge/shared/bin --path /var/rails_apps/neiltonge/shared/bundle --without development test --deployment --quiet ) DEBUG [18d5838c] /usr/bin/env: bundle: No such file or directory
这是我的
$PATH
:
为什么无法找到 bundle?/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
为什么无法找到 bundle?
gem list
命令无法显示 Bundler,但是使用sudo gem list
命令可以。为什么会这样?Bundler 应该放在哪里才能让 Capistrano 使用它? - rctneil