ruby-on-rails - bash:bundle:即使安装了捆绑器,也找不到命令
问题描述
我在 AWS EC2 实例上托管一个 Rails 应用程序,并使用 Capistrano 部署我的应用程序。在部署期间,我已经能够通过安装缺少的工具(如 Monit)来解决错误。但是,我被这个错误难住了:puma stderr: bash: bundle: command not found
. 我看到捆绑器已安装在服务器上,但是当我键入bundle
终端时显示Could not locate Gemfile
. 我什至尝试过重新安装 bundler gem install bundler
,但仍然无法识别 bundle 命令。我在下面列出了有关我的部署目标的详细信息。我不知道该怎么做,如果有任何帮助,我将不胜感激。
gem 环境返回:
RubyGems Environment:
- RUBYGEMS VERSION: 3.0.3
- RUBY VERSION: 2.6.5 (2019-10-01 patchlevel 114) [x86_64-linux]
- INSTALLATION DIRECTORY: /home/ubuntu/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0
- USER INSTALLATION DIRECTORY: /home/ubuntu/.gem/ruby/2.6.0
- RUBY EXECUTABLE: /home/ubuntu/.rbenv/versions/2.6.5/bin/ruby
- GIT EXECUTABLE: /usr/bin/git
- EXECUTABLE DIRECTORY: /home/ubuntu/.rbenv/versions/2.6.5/bin
- SPEC CACHE DIRECTORY: /home/ubuntu/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /home/ubuntu/.rbenv/versions/2.6.5/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /home/ubuntu/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0
- /home/ubuntu/.gem/ruby/2.6.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--no-document"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /home/ubuntu/.rbenv/versions/2.6.5/bin
- /home/ubuntu/.rbenv/libexec
- /home/ubuntu/.rbenv/plugins/ruby-build/bin
- /home/ubuntu/.rbenv/shims
- /home/ubuntu/.rbenv/bin
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/games
- /usr/local/games
- /snap/bin
echo $PATH
返回
/home/ubuntu/.rbenv/shims:/home/ubuntu/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
which gem
返回
/home/ubuntu/.rbenv/shims/gem
locate bundle
返回
/home/ubuntu/.gem/specs/rubygems.org%443/quick/Marshal.4.8/bundler-1.17.1.gemspec
/home/ubuntu/.rbenv/shims/bundle
/home/ubuntu/.rbenv/shims/bundler
/home/ubuntu/.rbenv/versions/2.6.5/bin/bundle
/home/ubuntu/.rbenv/versions/2.6.5/bin/bundler
/home/ubuntu/.rbenv/versions/2.6.5/lib/ruby/2.6.0/bundler
/home/ubuntu/.rbenv/versions/2.6.5/lib/ruby/2.6.0/bundler.rb
/home/ubuntu/.rbenv/versions/2.6.5/lib/ruby/2.6.0/bundler/build_metadata.rb
/home/ubuntu/.rbenv/versions/2.6.5/lib/ruby/2.6.0/bundler/capistrano.rb
/home/ubuntu/.rbenv/versions/2.6.5/lib/ruby/2.6.0/bundler/cli
/home/ubuntu/.rbenv/versions/2.6.5/lib/ruby/2.6.0/bundler/cli.rb
...
解决方案
似乎某些 puma 设置已被覆盖。我将以下行添加到deploy.rb
:set :rbenv_map_bins, %w{rake gem bundle ruby rails puma pumactl}
以克服此错误。
解决方案链接: https ://github.com/seuros/capistrano-puma/issues/206
推荐阅读
- angular - 无法在不更改字符串值的情况下将单个字符串推送到数组
- json - 以 json 格式将数据作为 http post 发送到外部 api
- javascript - JavaScript 将字符串转换为对象包含“:”
- svg - 如何在 svg 中使用剪辑路径而不解析错误?
- delimiter - 带分隔符的字符串的 PCRE 正则表达式
- java - 使用数据库输入主从数据的java表单
- dart - 将字符串列表转换为 int Dart 列表
- firebase - 使用 Cloud Functions/Admin SDK 在 Google Firestore 和 Google 表格之间同步数据
- veracrypt - Veracrypt 设备未准备好
- python - Pandas Dataframe 中的高效搜索