Tag: 捆绑

Sinatra:使用bundle exec ruby​​ app.rb时未定义的方法’run’

我有模块化风格的sinatra应用程序,接近结尾的以下行,以便它可以独立运行: # … all code before this omitted run! if __FILE__ == $0 end # This is the end of the file 当我用ruby app.rb运行这个应用程序时,它工作正常,webrick启动。 但是,如果我使用bundle exec ruby app.rb运行它,我会收到此错误: >bundle exec ruby app.rb C:/Ruby200/lib/ruby/gems/2.0.0/gems/sinatra-1.4.4/lib/sinatra/base.rb:1488:in `start_server’: undefined method `run’ for HTTP:Module (NoMethodError) from C:/Ruby200/lib/ruby/gems/2.0.0/gems/sinatra-1.4.4/lib/sinatra/base.rb:1426:in `run!’ 是什么导致了这个错误?

bundle无法加载这样的文件bundler-1.17.1 / exe / bundle

我遇到了FileUtils的问题,我不得不卸载gem。 在这之后,我做了gem update –default并且一些gem已经更新。 这解决了FileUtils的问题,但现在,捆绑包已经死了。 如果我尝试bundle info xxx我收到此错误: Traceback (most recent call last): 1: from /Users/robin/.gem/ruby/2.5.1/bin/bundle:23:in `’ /Users/robin/.gem/ruby/2.5.1/bin/bundle:23:in `load’: cannot load such file — /Users/robin/.rubies/ruby-2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.17.1/exe/bundle (LoadError) ruby 2.5.1p57 gem 2.7.7 Rails 5.2.1 我正在使用chruby,我安装了Ruby 2.5.0和2.5.1。 我试图卸载bundler并重新安装它,但这不起作用。 现在,即使我尝试使用gem install bundler , ~/.rubies/ruby-2.5.1/lib/ruby/gems/2.5.0/gems/文件夹中也没有目录。 但是,我安装它时没有错误: gem install bundler Successfully installed bundler-1.17.1 Parsing documentation for bundler-1.17.1 Done installing documentation for […]

如何在开发gem时使用’debugger’和’pry’? (ruby)

我正在开发一个gem,我的Gemfile看起来像这样: source :rubygems gemspec group :development, :test do gem “pry” gem “debugger” gem “rake” end 但是,我不希望人们在运行测试时必须安装pry和debugger ,但我也希望能够在我的测试中要求它们(因为我正在运行带有bundle exec前缀的测试,我无法得到它们在我的加载路径中,如果他们不在Gemfile中)。 我该如何实现这一目标? 另外,何时将用于开发的gem放在gemspec中,何时将它们放入Gemfile中? 我真的不知道区别。

如何更改OS 10.6.6 Ruby 1.8和Rails 3上安装ruby gem的路径

无论我使用gem install还是bundle install我的gem,它们都不起作用。 有时sudo gem install会让gem工作。 我运行了gem list -d和which gem命令,似乎我的系统配置为所有gem都安装到“/Library/Ruby/Gems/1.8”但我的环境期望它们在“/ usr / bin /gem”。 我怎么能正确纠正这个? 我的印象是’bundle’应该能够安装gem的本地特定应用程序副本?

您的Ruby版本是2.3.0,但您的Gemfile指定为2.1.2

我正在尝试设置现有项目,在运行bundle install ,我遇到了以下错误。 我已经尝试了很多可能的解决方案,但没有为我工作,我也运行建议的命令,如gem pristine bcrypt –version 3.1.10但不适合我。 bipashant@bipashant-Inspiron-5537:~/sanokam$ bundle install Ignoring bcrypt-3.1.10 because its extensions are not built. Try: gem pristine bcrypt –version 3.1.10 Ignoring curb-0.9.3 because its extensions are not built. Try: gem pristine curb –version 0.9.3 Ignoring debug_inspector-0.0.2 because its extensions are not built. Try: gem pristine debug_inspector –version 0.0.2 Ignoring eventmachine-1.0.3 […]

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

我正在尝试供应我的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 […]

Bundler用geminabox释放耙子?

有没有办法配置捆绑器,这样当我做rake release它会将gem提交给我自己的gem服务器( 盒子实例中的gem )而不是rubygems? 理想情况下,这个配置可以从我的git存储库中省略。

Gem加载irb但不加载控制台

这个让我疯了。 我可以通过irb加载一个gem: steve@server:/var/www/listings$ irb irb(main):001:0> Gem.path => [“/home/steve/.gem/ruby/1.9.1”, “/usr/local/ruby/lib/ruby/gems/1.9.1”] irb(main):002:0> require ‘nokogiri’ => true 但是我无法通过rails控制台加载它: irb(main):001:0> Gem.path => [“/home/steve/.gem/ruby/1.9.1”, “/usr/local/ruby/lib/ruby/gems/1.9.1”] irb(main):002:0> require ‘nokogiri’ => false gem(nokogiri)已安装 steve@server:/var/www/listings$ gem which nokogiri /usr/local/ruby/lib/ruby/gems/1.9.1/gems/nokogiri-1.4.3.1/lib/nokogiri.rb 捆绑同意 steve@server:/var/www/listings$ bundle show nokogiri /usr/local/ruby/lib/ruby/gems/1.9.1/gems/nokogiri-1.4.3.1 但是,当然,rake spec失败了 /usr/local/ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.0.1/lib/active_support/dependencies.rb:304:in `rescue in depend_on’: No such file to load — Nokogiri (LoadError) 其他环境信息: steve@server:/var/www/listings$ ruby –version […]

捆绑器如何工作(一般情况下)?

我是Ruby / Rails的新手,但我正在看看bundler并且想知道它是如何工作的。 你是否安装了一整套gem,比如普通gem install XYZ ,然后使用Gemfile来拉取这些gem的某个子集以用于特定的应用程序? 或者你不再正常安装gem,只是将它们包含在Gemfile中,然后进行bundle install ,将它们全部包含在一个捆绑包中,然后与你的应用程序一起使用? 非常感谢您花时间回答这个问题,我对Bundler的function确切感到困惑。 – MAP

在gem中使用Pry而无需修改Gemfile或使用`require`

我正在尝试调试Rails应用程序使用的gem。 我在当地克隆了Gem以进行撬动(并且还允许我做一些好东西,比如git bisect等) # Gemfile gem “active_admin”, path: “~/dev-forks/active_admin” 但是,我经常坚持将Pry添加到Gemfile某处以便能够使用它,或者在代码中调用require “pry” ,即使我不想在那里使用它。 例如,我有时会忘记它,修复bug,然后在Gemfile中使用Pry提交项目。 如果我不这样做,会出现LoadError , cannot load such file — pry (LoadError) 。 我必须管理我在不同的上下文(Rails项目,Gem,本地Ruby)和实际的Gems(Gemfile,require,installed)之间有点迷失。 如何在没有Gemfiles干预的情况下在Rails中的Gem中使用binding.pry?