如果通过Chef安装,则捆绑包无法找到/执行Ruby应用程序的宝石

伊姆兰·泰利(Imran Teli)

我正在尝试通过厨师部署一个ruby应用程序。我已经通过rvm安装了ruby和rubygems。

当我在外壳上手动安装捆绑软件--deployment时,我将所有捆绑软件下载到供应商/捆绑软件位置,并且一切正常。

但是,当我对使用bash资源的厨师执行相同操作时,会收到以下错误消息。我觉得PATH或环境变量有些问题。它也通过厨师下载所有宝石,但是当我打开外壳并检查是否出现错误时。请注意-厨师食谱执行无任何错误。

*bundle exec rake db:create RAILS_ENV=production
(in /home/xyz)
rake aborted!
undefined method `[]' for nil:NilClass
/home/xyz/Rakefile:4:in `require'
(See full trace by running task with --trace)*

# ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]

# gem -v
1.8.1

bundle -v
Bundler version 1.0.15

# gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.1
  - RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/local/rvm/gems/ruby-1.9.2-p290
  - RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ruby-1.9.2-p290/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/local/rvm/gems/ruby-1.9.2-p290
     - /usr/local/rvm/gems/ruby-1.9.2-p290@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

    bash "bundle install" do
     user "root"
     cwd "/home/xyz/"
     code <<-EOH
     source /etc/profile.d/rvm.sh 
     rvm use 1.9.2-p290 --default 
     /usr/local/rvm/gems/ruby-1.9.2-p290/bin/bundle install --path  vendor/bundle
     /usr/local/rvm/gems/ruby-1.9.2-p290/bin/bundle exec rake db:create RAILS_ENV=production
     EOH
    end

这是我第一次部署任何ruby应用程序,我在Google上搜索了很多,并尝试了许多解决方案,但是却收到了越来越多的错误,但没有解决方案。任何形式的帮助将不胜感激。

谢谢,伊姆兰

马尔科姆·琼斯(Malcolm Jones)

因此,我相信您对RVM安装的ruby遇到一些问题的原因与linux + shell的性质有关。RVM当它为您提供可以在系统上安装的ruby构建列表时,掩盖了很多复杂的底层功能。简单的答案是RVM(类似于rbenv)通过连接到您的环境中而起作用PATH。...这是Sam Stephenson在这里提供的非常详细的解释:RVM和rbenv实际如何工作?但是我离题了。我的猜测是您的RVM安装是针对单个用户(例如,具有home目录的用户)进行的/home/xyz/在这一点上,我认为您的问题如下:

您是通过单用户安装来安装RVM的(此处详细信息:https : //rvm.io/rvm/install)。安装RVM时,他们可能会让您在这里执行此步骤:echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile此步骤向您添加命令,.bash_profile以便在每个新的会话/终端窗口上,您的用户(在本例中为user xyz)读取有关如何运行/使用RVM的信息。Chef中的bash资源实际上没有使用用于连接和运行命令的shell。我的想法是,如果您运行以下命令:

bash 'install_ruby_stuff' do cwd ::File.dirname(/home/xyz) code <<-EOH source /home/xyz/.rvm/scripts/rvm bundle exec rake db:create RAILS_ENV=production EOH end

我觉得它可能会更好一些。如果这不起作用,请运行which bundle并找出rvm将bundle存根(stub)安装在哪里的确切位置,然后bundle/path/to/bundle替换上面的内容,这也可能会有所帮助。Chef中的每个bash资源调用在本质上都被视为一个单独的shell,因此需要在调用bash资源的同一上下文中定义所需的任何变量PATHENV变量。

希望这对您有所帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Installfest | Railsbridge |部署Rails应用程序| heroku推送已拒绝| 无法通过捆绑器安装宝石

来自分类Dev

在Mac上通过捆绑包之外的共享库安装应用程序

来自分类Dev

无法在新的 Rails 应用程序中捆绑安装

来自分类Dev

宝石安装在Rails应用程序本地测试中的供应商/捆绑下

来自分类Dev

现有红宝石应用程序的捆绑安装失败。我怀疑libv8

来自分类Dev

Qt Mac应用程序无法创建独立的应用程序捆绑包(Qt Creator构建)

来自分类Dev

捆绑包未安装的宝石

来自分类Dev

使用RVM安装Ruby后,Ubuntu无法找到“宝石”软件包

来自分类Dev

如果应用程序进程终止,捆绑包如何发送到onCreate?

来自分类Dev

如果应用程序进程终止,捆绑包如何发送到onCreate?

来自分类Dev

使用Chef安装Windows应用程序

来自分类Dev

使用Chef安装Windows应用程序

来自分类Dev

如何从Android应用程序捆绑包生成的Google Play控制台中安装APK?

来自分类Dev

我可以在本地测试从捆绑包部署的免安装应用程序吗?

来自分类Dev

iOS On Demand资源下载很好-但是在我需要使用它们的时候,应用程序无法在主捆绑包中找到它们

来自分类Dev

可以通过带有sylius的应用程序/控制台生成捆绑包吗?

来自分类Dev

无法通过软件中心安装应用程序,“使用此解决方案”按钮无法执行任何操作

来自分类Dev

如果应用程序是通过捆绑发布的,Expo中的OTA更新是否有效?

来自分类Dev

“应用程序安装失败:无法检查应用程序包”

来自分类Dev

由于未捕获的异常“ NSInternalInconsistencyException”而终止应用程序,原因:“无法在捆绑包中加载NIB

来自分类Dev

“路径..将导致应用程序捆绑包之外的文件,无法使用。”错误,单点触摸/ Xamarin

来自分类Dev

无法为Netbeans RCP应用程序构建OSGi捆绑包

来自分类Dev

elementaryOS无法通过PPA安装应用程序

来自分类Dev

通过Windows应用程序打包项目创建应用程序包无法复制dll

来自分类Dev

捆绑包安装后Jekyll无法找到gem

来自分类Dev

无法通过运行Ruby in Rails应用程序打开localhost

来自分类Dev

通过运行Ruby in Rails应用程序无法打开localhost

来自分类Dev

无法安装应用程序错误:无效的捆绑软件-没有Apple Watch Binary

来自分类Dev

如何找到程序包名称以使用终端安装应用程序?

Related 相关文章

  1. 1

    Installfest | Railsbridge |部署Rails应用程序| heroku推送已拒绝| 无法通过捆绑器安装宝石

  2. 2

    在Mac上通过捆绑包之外的共享库安装应用程序

  3. 3

    无法在新的 Rails 应用程序中捆绑安装

  4. 4

    宝石安装在Rails应用程序本地测试中的供应商/捆绑下

  5. 5

    现有红宝石应用程序的捆绑安装失败。我怀疑libv8

  6. 6

    Qt Mac应用程序无法创建独立的应用程序捆绑包(Qt Creator构建)

  7. 7

    捆绑包未安装的宝石

  8. 8

    使用RVM安装Ruby后,Ubuntu无法找到“宝石”软件包

  9. 9

    如果应用程序进程终止,捆绑包如何发送到onCreate?

  10. 10

    如果应用程序进程终止,捆绑包如何发送到onCreate?

  11. 11

    使用Chef安装Windows应用程序

  12. 12

    使用Chef安装Windows应用程序

  13. 13

    如何从Android应用程序捆绑包生成的Google Play控制台中安装APK?

  14. 14

    我可以在本地测试从捆绑包部署的免安装应用程序吗?

  15. 15

    iOS On Demand资源下载很好-但是在我需要使用它们的时候,应用程序无法在主捆绑包中找到它们

  16. 16

    可以通过带有sylius的应用程序/控制台生成捆绑包吗?

  17. 17

    无法通过软件中心安装应用程序,“使用此解决方案”按钮无法执行任何操作

  18. 18

    如果应用程序是通过捆绑发布的,Expo中的OTA更新是否有效?

  19. 19

    “应用程序安装失败:无法检查应用程序包”

  20. 20

    由于未捕获的异常“ NSInternalInconsistencyException”而终止应用程序,原因:“无法在捆绑包中加载NIB

  21. 21

    “路径..将导致应用程序捆绑包之外的文件,无法使用。”错误,单点触摸/ Xamarin

  22. 22

    无法为Netbeans RCP应用程序构建OSGi捆绑包

  23. 23

    elementaryOS无法通过PPA安装应用程序

  24. 24

    通过Windows应用程序打包项目创建应用程序包无法复制dll

  25. 25

    捆绑包安装后Jekyll无法找到gem

  26. 26

    无法通过运行Ruby in Rails应用程序打开localhost

  27. 27

    通过运行Ruby in Rails应用程序无法打开localhost

  28. 28

    无法安装应用程序错误:无效的捆绑软件-没有Apple Watch Binary

  29. 29

    如何找到程序包名称以使用终端安装应用程序?

热门标签

归档