我已经开始了一个简单的rails应用程序.我尝试安装Compass和Haml,(使用gem install)并运行'bundle install'.捆绑器重新安装了所有gem,并将它们放在rails应用程序主目录中的新文件夹"/ haml"中.
Your bundle is complete! It was installed into ./haml
Run Code Online (Sandbox Code Playgroud)
这是预期的吗?这些宝石不应该放在rvm目录中,而不是放在应用程序目录中吗?
在Rails 3应用程序中使用我自己的修改来获取现有gem并运送它的最佳方法是什么?现在,我只是将目录从本地rvm缓存中复制出来,并修改了需要修改的源代码.我可以把它放入vendor/并添加:pathGemfile.问题是,我必须编写自己的gemspec并担心这一点.有没有一个工具可以让这更容易?另一种解决这个问题的方法?
我是一个红宝石/铁杆新手.
这是我的gemfile:
source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0
gem 'rails', '4.0.0'
group :development do
gem 'sqlite3', '1.3.8'
gem 'ruby-debug-ide'
end
gem 'sass-rails', '4.0.0'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.0'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'
gem 'wash_out', :git => 'git://github.com/inossidabile/wash_out.git'
gem 'haml'
gem "railties", "~> 4.0.0"
group :doc do
gem 'sdoc', '0.3.20', require: false
end
Run Code Online (Sandbox Code Playgroud)
在捆绑更新,我得到这个:
Bundler could not find compatible versions for gem "railties":
In Gemfile:
rails (= 4.0.0) ruby depends on
railties (= 4.0.0) ruby
sass-rails …Run Code Online (Sandbox Code Playgroud) 我想在本地使用 Ruby gem(而不是为整个机器安装它)以在单个脚本中使用。我知道如何使用带有 Gemfile 和bundle install. 但是对于一个简单的脚本来说,设置打包器似乎有点过分。
有没有办法将 gem 安装到我的脚本的子文件夹中并使用它,类似于 npm 在 中安装 Node.js 包的方式node_modules?
这是我迄今为止尝试过的。
gem install -i ruby plist将plistgem安装在ruby/gems/plist-3.1.0
我试图extract.rb通过这样做在我的脚本中要求它,require './ruby/gems/plist-3.1.0/lib/plist但失败了require: cannot load such file: plist/generator( plist/generator.rbis required by lib/plist.rb) 。
OSX 上的 Ruby 2.0
我rake尝试安装时遇到一个奇怪的错误,这就是它所说的
$ rake bundle_install
/usr/local/bin/rake:23:in `load': cannot load such file -- /usr/share/rubygems-integration/1.9.1/gems/rake-10.0.4/bin/rake (LoadError)
from /usr/local/bin/rake:23:in `<main>'
Run Code Online (Sandbox Code Playgroud)
当我尝试导航到目录时,我什么也没找到:
$ ls /usr/share/rubygems-integration/1.9.1/
specifications/
Run Code Online (Sandbox Code Playgroud)
Ruby版本:
$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
Run Code Online (Sandbox Code Playgroud)
为什么它试图加载错误的版本以及如何解决这个问题?
我已经下载了我需要的旧版 bundler,但我不确定如何让我的 bundler 命令行命令使用这个旧版本的 gem?我该怎么做?
背景
命令行
Gregs-MacBook-Pro:weekends Greg$ gem list bundler
*** LOCAL GEMS ***
bundler (1.9.2, 1.0.22, 1.0.0)
Gregs-MacBook-Pro:weekends Greg$ bundler -v
Bundler version 1.9.2
Run Code Online (Sandbox Code Playgroud) 我不熟悉 Ruby,但无论如何我都在尝试安装和测试 iQvoc ( https://github.com/innoq/iqvoc )。在一些最初的问题之后,我设法用 heroku 安装了它。我现在正在尝试导出一个小的测试同义词库,但我在使用 Ruby 时遇到了一些问题。我使用这个命令:
rake --trace iqvoc:export TYPE=ttl NAMESPACE='http://namespace.example.fr/'
Run Code Online (Sandbox Code Playgroud)
结果如下:
rake aborted!
Bundler::GemRequireError: There was an error while trying to load the gem 'pry-rails'.
Gem Load Error is: uninitialized constant Pry::Prompt
Backtrace for gem load error is:
/home/nicola/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/pry-rails-0.3.5/lib/pry-rails/prompt.rb:36:in `<module:PryRails>'
/home/nicola/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/pry-rails-0.3.5/lib/pry-rails/prompt.rb:1:in `<top (required)>'
/home/nicola/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/pry-rails-0.3.5/lib/pry-rails.rb:10:in `<top (required)>'
/home/nicola/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:91:in `require'
/home/nicola/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:91:in `block (2 levels) in require'
/home/nicola/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `each'
/home/nicola/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `block in require'
/home/nicola/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `each'
/home/nicola/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `require'
/home/nicola/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.14.6/lib/bundler.rb:107:in `require'
/home/nicola/iqvoc_2/config/application.rb:23:in `<top (required)>'
/home/nicola/iqvoc_2/Rakefile:20:in `require'
/home/nicola/iqvoc_2/Rakefile:20:in `<top (required)>'
/home/nicola/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rake-12.0.0/lib/rake/rake_module.rb:28:in …Run Code Online (Sandbox Code Playgroud) 更新到 High Sierra 后,安装 Bundler 出现以下错误
-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud) 我能够安装这个
~/workspace $ gem install bundler
Successfully installed bundler-1.16.2
1 gem installed
Run Code Online (Sandbox Code Playgroud)
但是,当我进行捆绑安装时,我不断收到
Could not locate Gemfile
Run Code Online (Sandbox Code Playgroud)
我尝试更新和 cd 到我的工作区,但我仍然遇到同样的问题
在我的 rails 项目中,当我尝试运行时bundle install,出现以下错误:
Your Ruby version is 2.3.7, but your Gemfile specified 2.5.3
但是,当我运行时,ruby --version我得到:
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin18]
...跑步rbenv version给了我:
2.5.3 (set by /Users/jamesmulholland/proj/repo-name/.ruby-version)
是什么导致此处使用了错误的 Ruby 版本,我该如何解决?
跑步rbenv versions给出:
system
2.5.3 (set by /Users/jamesmulholland/proj/repo-name/.ruby-version)`
这个问题发生在从 Ruby 2.5.1 到 Ruby 2.5.3 的迁移过程中。同时,我从 rvm 转移到了 rbenv。我怀疑我可能在运行时错误地卸载了 rvmrm -rf ~/.rvm而不是rvm implode但它/etc/rbenv/是空的并且运行rvm命令失败。rvm已从我的.zshrc. 当我在使用这种卸载 rvm 的方法后继续遇到此问题时,我重新安装了 rvm 并使用该rvm implode …