如何在使用bundle install --deployment时包含bundler本身

2024-02-25

我正在尝试供应商化我的 ruby​​ 应用程序,这样我就不必在服务器上手动安装任何 gem,并且可以在我们的 puppet 设置中将我的应用程序部署为 rpm。

这几乎可以工作,除了尽管我向 Gemfile 添加了一个 require 'bundler',但没有任何痕迹将其添加到供应商目录中。所以,我的应用程序失败了

no such file to load -- bundler

正是在加载我们的依赖项的地方。

require 'bundler'
Bundler.setup 

我在这里遗漏了一些明显的东西,或者捆绑器实际上不能自行供应吗?

无论如何,我使用的是 jruby 1.7.8,并且相关应用程序具有以下 Gemfile:

# run with --local to use locally cached gems
# bundle install --full-index --without testing development

# vendorized setup for production
# bundle install --full-index --without testing development --deployment


source 'https://rubygems.org'

gem 'bundler' 
gem 'sinatra'
gem 'sinatra-flash'
gem 'sinatra-contrib'
gem 'rack-parser', :require => 'rack/parser'
gem 'dynamic_attributes', :github => 'joona/dynamic_attributes', :require => false
gem 'httparty'
gem 'haml'
gem 'json'
gem 'airbrake'
# gem 'rake'

#gem 'omniauth-google' # TO-DO: deprecate
gem 'bcrypt-ruby', :require => 'bcrypt'
gem 'oauth'
gem 'oauth2'
gem 'omniauth'
gem 'omniauth-dropbox'
gem 'omniauth-facebook'
gem 'omniauth-google-oauth2'
gem 'omniauth-linkedin'
gem 'omniauth-twitter'
gem 'omniauth-windowslive', :git => 'git://github.com/joona/omniauth-windowslive.git'

gem 'lumber'
gem "log4r-gelf"

gem "resque", :github => "resque/resque", :branch => '1-x-stable'
gem "resque-pool"

gem 'tux', :require => false

gem 'actionmailer'
gem 'actionpack', '4.0.1'
gem 'activesupport', '4.0.1', :require => false
gem 'activerecord', '4.0.1'

platforms :jruby do
  gem 'activerecord-jdbc-adapter' #, :github => 'jruby/activerecord-jdbc-adapter'
  gem 'jdbc-mysql'
  gem 'activerecord-jdbcmysql-adapter'
end

platforms :ruby do
  gem 'mysql2'
end

group :testing do
  gem 'shoulda-matchers', :require => false
  gem 'webmock', '1.8.0', :require => false
  gem 'database_cleaner', '1.0.1'
  gem "sequel", "~> 4.3.0", :require => false
  gem 'rspec'
  gem 'capybara'
  #gem 'vcr'
  gem 'simplecov', :require => false
  gem 'launchy'
  gem 'rack-test', :require => false
  gem 'faker'
  gem 'fabrication'
  gem 'sinatra-sessionography', :require => false
  platforms :ruby do
    gem 'sqlite3'
  end
  platforms :jruby do
    gem 'jdbc-sqlite3'
  end
end
# 
group :development do
  gem 'guard', "1.8.3", :require => false
  gem 'guard-sass', '1.3.2', :require => false
  gem 'guard-less', '0.1.2', :require => false
  gem 'guard-process', '1.0.6', :require => false
  gem 'guard-rspec', '3.1.0', :require => false
  gem 'juicer'
  gem 'foreman', :require => false
  # shotgun with logging quickfix!
  #gem 'shotgun', :github => 'joona/shotgun'
  gem 'guard-shotgun', :git => 'https://github.com/rchampourlier/guard-shotgun.git'

  gem 'capistrano', '~> 2'
  gem 'rvm-capistrano'
end

group :production do
  platforms :ruby do
    gem 'passenger'
  end
  platforms :jruby do
    gem 'fishwife'
  end
end

这不起作用的原因是因为Bundler.setup是实际设置加载路径以查找供应的宝石的代码。如果 Bundler 是供应商提供的,它将无法找到它来进行该设置。

您可以执行以下两项操作之一:

  1. 安装 Bundler 作为系统 gem。这是最常见的解决方案。您可以构建一个单独的 RPM 来安装它(或者可能已经有一个可供您使用)并在应用程序的 RPM 中依赖它。

  2. 使用捆绑器独立模式 http://myronmars.to/n/dev-blog/2012/03/faster-test-boot-times-with-bundler-standalone。这将为您提供一个完全不依赖于 Bundler 的应用程序。在这种情况下,您应该删除require 'bundler' and Bundler.setup来自您的应用程序的行,而是添加require_relative 'bundle/bundler/setup'(如果您从项目根目录以外的文件调用它,则调整路径)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在使用bundle install --deployment时包含bundler本身 的相关文章

随机推荐

  • 屏幕阅读器无法读取 Firefox 中的 Aria-Live

    我遇到一个问题 屏幕阅读器无法读取 FireFox 中 aria live 部分中更改的文本 这是一个简单的页面示例 在 Chrome 中 屏幕阅读器会读取更改 而在 FireFox 中则不会 div div 难道我做错了什么 除了人们在
  • MySQL查询选择过去N天的记录

    我有一张桌子 上面有date added列的格式为2014 09 30 20 39 17我有一个网页 其中包含供用户使用的过滤器选项 基本上我想使用变量来选择不同的日期范围 如下所示 SELECT FROM table WHERE date
  • Pandas:如何将多索引数据帧与单个索引数据帧连接起来,以及自定义排序

    我有一个 MultiIndex pandas DataFramedf multi like import pandas as pd df multi pd DataFrame A A1 0 234 2002 A A1 1 324 2550
  • 添加角度为 10 的 swagger-UI

    如何添加招摇的用户界面在你的角度应用程序中 我已经多次搜索这个问题 发现只有一个解决方案 并且它是使用完成的swagger ui dist包 但在最新版本的https www npmjs com package swagger ui告诉使用
  • NSTextField 优于 NSOpenGLView

    我用 NSOpenGLView 创建了一个窗口 将 openGL 内容渲染到其中 我想向视图添加一些按钮和文本字段 我可以使用界面生成器 或代码 添加 NSTextFields 和 NSButtons 但它们不会出现 NSOpenGLVie
  • 如何修改Eclipse代码辅助中非活动行的颜色?

    首先 已经有类似的问题 https stackoverflow com questions 4402087 how to change the color of the currently selected line in a code a
  • 如何强制安装软件包?

    我正在尝试通过以下方式安装以下软件包composer https packagist org packages cartalyst sentry dev feature laravel 5 https packagist org packa
  • 为什么 JAXB 2 RI 的 XJC 简单模式会更改集合名称?

    JAXB简单绑定模式将集合名称修改为其复数 版本 例如 附加数据 变为 附加数据 有什么解决方案可以改变这种行为吗 我需要一个与 XSD 字段名称相同的 Java 字段名称和方法名称 我的绑定文件
  • 忠实地保留已解析 XML 中的注释

    我希望在操作 XML 时尽可能忠实地保留注释 我设法保留了注释 但内容正在被 XML 转义 usr bin env python add host to tomcat py import xml etree ElementTree as E
  • 如何获取 Laravel 中已注册的路由路径列表?

    我希望找到一种方法来创建一个包含 Laravel 4 中注册的路由路径的数组 本质上 我希望得到一个类似这样的列表 login join password 我确实遇到了一个方法Route getRoutes 它返回一个包含路由信息和资源的对
  • 如何解决 RASA NLU 中未对齐的实体注释错误

    我正在尝试将 LUIS 架构模型导入 RASA 并尝试使用 spacy scikit 管道对其进行训练 我正在使用 RASA NLU v0 10 4 但是当我尝试加载 LUIS 模型架构时 ner crf 组件会抛出实体注释未对齐警告 尽管
  • 垂直滚动的整页背景图像

    我正在尝试创建一个页面 其中背景图像响应浏览器的屏幕尺寸 但是 我需要该图像下的内容 这样如果该人向下滚动 背景图像就会结束 这很难解释 所以我尝试创建一个图像以使其更清晰 尝试这个Fiddle http jsfiddle net Uwt6
  • 即使测试通过,鼻子测试跑步者也会显示日志记录

    我在用nosetests test py运行单元测试 import unittest import logging class Test unittest TestCase def test pass self logging getLog
  • Twitter Bootstrap 导航栏的按钮可以左对齐吗?

    我希望该按钮出现在移动设备上菜单的左侧 Twitter Bootstrap 可以实现这一点吗 这是我的标记
  • 如何使用 log4net 记录 Trace 消息?

    我正在使用 log4net 将写入日志消息记录到滚动日志文件中 现在我还将重定向所有跟踪消息System Diagnostics Trace到该日志文件 我该如何配置呢 我试图在 log4net 文档中找到任何相关内容 但没有成功 有可能吗
  • 如何在 Python Shell 中换行?

    在 IDLE 中 假设我想用两行编写以下内容 x 3 print x 5 但是当我输入 x 3 并按 Enter 时 它会执行分配 如何让它在两行都输入后执行 已阅读 Python 教程的第一页 但没有回答这个 有趣 的问题 Use the
  • Django 按向后外键排序

    我目前有以下型号 class ChatRoom models Model creator models ForeignKey User points to the initial user class Message models Mode
  • 使用 Flash 或 Silverlight 进行语音识别

    我正在开发一个网络用户界面来输入一些不是很复杂但需要实时加载的信息 我认为该应用程序可以利用语音识别来促进任务 该界面的核心是使用 Javascript 和 jQuery 构建的 但可以轻松包含 flash 或 silverlight 组件
  • 如何避免读取 pandas.read_excel 中的空行

    我有一个包含一百万行的 Excel 工作表 只有前一百行左右有数据 其余行都是空的 pandas read excel 内部使用 xlrd 来读取数据 反过来 xlrd 会读取整张纸并花费大量时间 大约 65 秒 我尝试了下面的代码 但无法
  • 如何在使用bundle install --deployment时包含bundler本身

    我正在尝试供应商化我的 ruby 应用程序 这样我就不必在服务器上手动安装任何 gem 并且可以在我们的 puppet 设置中将我的应用程序部署为 rpm 这几乎可以工作 除了尽管我向 Gemfile 添加了一个 require bundl