问题标签 [bundler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
17094 浏览

ruby-on-rails - “gem install bundler --version=0.8.1”不安装捆绑可执行文件

尝试在 Ubuntu 机器上安装 Bundler 0.8.1 时,它安装得很好,但是找不到可执行的“bundle”。其他 gem 安装成功,包括它们的可执行文件。

使用:gem install bundler --version=0.8.1

路径/home/ahammad/gems/bin已添加PATH,问题是没有捆绑exe。

有任何想法吗?

0 投票
3 回答
4190 浏览

ruby-on-rails - Rails 3 app server 启动时间长

更新 2这是 Ruby 1.9.2 加载文件方式的一个已知错误/功能。 http://twitter.com/#!/rails/status/72801149769621504

更新:这开始是一个问题,但经过一段时间的研究后,我认为它可能无法修复。我想我会发布这个,以防其他人看到同样的事情并且想知道 rails 和 bundler 内部发生了什么。

还有其他人在他们的 Rails 3 应用程序中看到很长的加载时间吗?我在 environment.rb、application.rb、boot.rb 和 railties/lib/rails/initializable.rb 中放置了计时器。时间以秒为单位,经过的时间是自上次记录时间以来的时间。生产加载时间需要更长的时间。部分原因是硬件较少,也来自 eager_load!(也许来自 Thin vs Mongrel)。看起来 Bundler 占用了很大一部分加载时间,我想这是可以预料的。我在 dev 和 prod 中测试了一个应用程序,在 dev 中测试了一个空白应用程序。我测试了 2 个应用服务器只是为了看看它是否是 Thin 导致的。我在产品中也看到了与乘客类似的事情(这使得它在 2.2.15 中无法使用产卵行为)。我针对 edge Rails 进行了测试,开发中的性能在 14.5 秒和 14.2 秒之间稍差。如果我删除我的测试依赖项,它可以节省 2-3 秒,但这在我运行测试时没有帮助。我想在我的测试运行之前等待 5 分钟让我的所有瘦实例重新启动并等待 15 秒只是有点烦人,但在这一点上这是一个可以接受的权衡,因为我在 Rails 3 中获得了生产力。如果有人有任何有助于加快速度的想法,我全神贯注。以下是测试结果:

注意:我在 Rails 2.3 中的应用程序在 dev 中加载不到 3 秒(尽管自从迁移到 rails3 后,我已经将一些代码转换为引擎并添加了 haml 和 twitter_oauth gem)

**使用 Rails 3RC 和 Ruby 1.9.2rc2 进行的所有测试

Prod with Thin - CentOS 5.5,Rackspace 云服务器 2GB 实例
测试应用程序 #1,具有 24 个 gem 依赖项

Dev with Mongrel - Max OSX 10.5.8, 2.66 Core2duo, 4GB RAM
Test App #1 与 24 个 gem 依赖项

使用 Mongrel Test App #2 进行开发,具有 2 个 gem 依赖项

0 投票
2 回答
4455 浏览

ruby-on-rails - 如何让 Rails 从插件加载中排除一些捆绑的 gem?

我有一个使用 Bundler 进行依赖管理的 Rails 应用程序。我有以下内容Gemfile

我在我的初始化程序中调用Bundler.setup(:default, RAILS_ENV.to_sym)and 。Bundler.require(:default, RAILS_ENV.to_sym)

问题在于,由于 Bundler 将 gem 放入vendor/bundle/,Rails 会初始化所有具有 的 gem init.rb,而不仅仅是当前环境的那些。如何防止 Rails 自动加载 Foo 的init.rb

0 投票
2 回答
4853 浏览

git - 捆绑器:带有 :git 源的“捆绑包”

我正在尝试让我的应用程序在部署之前打包我的 gem(到 heroku) 我的 Gemfile 中的一个 gem 是我编写的自定义 gem,我正在使用 bundler 的 :git 选项来使用特定标签我感兴趣的是:

但是,当我运行bundle package时,这个 gem 不包含在我的 vendor/cache 目录中。这是一个已知问题吗,即 Bundler 不打包使用 git 源而不是打包的 .gem 文件的 gem?

我在文档中没有找到任何说明这两种方式的内容,但我真的希望使用这个 :git 选项可以省去我必须实际构建 gem 并将其托管在某个地方的麻烦。(所有这些代码都不是开源的或以任何方式公开的,所以我不想将它推送到 gemcutter)

另请注意,我需要先打包我的 gem,因为由于公钥问题,heroku 在部署时无法访问 git 源。

0 投票
3 回答
2660 浏览

ruby - Ruby Bundler 权限问题

所以,我很肯定我曾经sudo bundle install绝望地做了一次,我现在明白这是一个禁忌。但是现在,当我尝试运行时bundle install,出现以下错误:

我尝试删除 ~/.bundle ~/.gem .bundle Gemfile.lock 中的所有内容以及 /Library/Ruby (OSX 10.6) 中对 culerity 或 capybara 的任何引用。我还检查以确保在这个项目中的所有文件上都正确设置了权限(不是 root)。我还清除了 gem 缓存。

我的宝石文件:

另外,我的系统上有 rvm,但我正在为这个项目使用系统 ruby​​。

关于导致许可问题的任何想法?当然,我并没有坚持使用sudo bundle install.

谢谢。

0 投票
6 回答
28162 浏览

ruby-on-rails - Rails 3:乘客找不到捆绑程序安装的 git gem

Rails 3.0.0,乘客 2.2.15:

  • 创建一个新的 Rails 项目
  • 添加gem 'paperclip', :git => 'git://github.com/lmumar/paperclip.git', :branch => 'rails3' 到您的 Gemfile
  • bundle install
  • 一切正常,从rails/script server& 开始访问也可以
  • 但是,当使用乘客访问时,它会说:

git://github.com/lmumar/paperclip.git(在 rails3 上)未检出。请运行bundle install(Bundler::GitError)

我已经尝试bundler pack(没有帮助)并将 BUNDER_HOME 设置为 ~/.bundler(Paperclip git 通过bundler install.htaccess 和 config/*.rb 的各个位置安装在那里),但这也没有成功。

~/.bundler 与 Rails 项目属于同一用户(Passenger 在此用户下运行),因此它不会是权限问题。sudo 由bundle install.

有什么提示吗?

0 投票
1 回答
270 浏览

ruby - 具有灵活 gem 依赖项的 Ruby Gems?

我即将将一个更大项目的主要功能提取到一个 ruby​​ gem 中。

我创建的小框架使用了一些额外的 gem,用于不同的导入/导出选项。IE。

  • FasterCSV(用于 ruby​​ 1.8)用于 csv 导入/导出
  • 用于 csv 导入/导出的 Nokogiri
  • GraphViz 用于图形...
  • PDF格式
  • ...

我不希望 gem 的用户在不需要时安装和加载所有 gem。

这有可能吗?

0 投票
2 回答
917 浏览

ruby-on-rails - Rails 3,捆绑器,LoadError

我正在编写一个应用程序,它将在指定文件夹中运行脚本,然后记录数字并绘制它们。

我的问题是,如果脚本是 ruby​​ 文件,则脚本内部的 require 语句会失败,因为 bundler 似乎对加载路径做了一些时髦的事情。

运行rails runner Datasource.run_jobs失败:

0 投票
11 回答
30155 浏览

ruby-on-rails - 让 bundler 为不同的平台使用不同的 gem

我正在将我们的 Rails 2.3.8 应用程序之一升级到 Rails 3,并且遇到了一个令人讨厌的捆绑器和部署问题。我在 Windows 机器上开发应用程序,但生产环境运行的是 Ubuntu Linux。现在,我的问题是捆绑器忽略了mysql生产环境中的 gem,Passenger 吐出:“!!!缺少 mysql gem。将它添加到您的 Gemfile:gem 'mysql', '2.8.1'”

这是我的Gemfile

如您所见,mysqlgem 已指定。但是,在部署时,bundler 会忽略它。为什么?原因是 Bundler 生成以下内容Gemfile.lock(仅包括相关部分):

请注意,它包括特定于平台的 gem。这显然不是我想要的,因为当在 Linux 下运行时,该 gem 不适合(并且似乎被忽略)。

那么,Bundler 是否有任何方法来处理这些问题?或者我是否必须记住Gemfile.lock每次在我的开发机器上运行 bundle install 时手动更改生成的 mysql gem 版本?

先感谢您!

更新

捆绑器团队似乎意识到了这个问题

0 投票
3 回答
20991 浏览

ruby-on-rails - Rails 3中Gemfile中的组?

在我在 Rails 中的 Gemfile 中,我有这些组:

这是什么意思?