【发布时间】:2015-03-03 15:37:19
【问题描述】:
我正在尝试使用http://guides.rubygems.org/make-your-own-gem/ 的说明构建一个 Ruby gem。以下似乎工作正常,并生成了一个 *.gem 文件。
gem build mygem.gemspec
以下似乎也是成功的(仅当以 sudo 开头时):
sudo gem install mygem-0.0.1.gem
但是,当我尝试在 irb 中 require 'mygem' 时,我收到以下错误:
LoadError: cannot load such file -- mygem
我在 Stackoverflow 上看到过类似的错误,但无法弄清楚在我的具体情况下出了什么问题。我可以毫无问题地要求其他宝石(不是我的)。我的 gem 确实出现在 gem list 的输出中,但它不会被 require 加载。
FWIW 我正在使用 rbenv,这对我来说是全新的。
这是gem env的输出:
-
RUBYGEMS 版本:2.4.5
RUBY 版本:2.1.5(2014-11-13 补丁级别 273)[x86_64-darwin14.0]
安装目录:/Users/speersj/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0
RUBY 可执行文件:/Users/speersj/.rbenv/versions/2.1.5/bin/ruby
可执行目录:/Users/speersj/.rbenv/versions/2.1.5/bin
SPEC 缓存目录:/Users/speersj/.gem/specs
系统配置目录:/Users/speersj/.rbenv/versions/2.1.5/etc
RUBYGEMS 平台:
红宝石
x86_64-darwin-14
-
宝石路径:
/Users/speersj/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0
/Users/speersj/.gem/ruby/2.1.0
-
宝石配置:
:update_sources => 真
:verbose => true
:backtrace => 假
:bulk_threshold => 1000
-
远程源:
-
外壳路径:
/Users/speersj/.rbenv/versions/2.1.5/bin
/Users/speersj/.rbenv/libexec
/Users/speersj/.rbenv/plugins/ruby-build/bin
/Users/speersj/.rbenv/shims
/Users/speersj/.rbenv/bin
/Library/Frameworks/Python.framework/Versions/3.4/bin
/usr/local/bin
/usr/local/sbin
/usr/local/heroku/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/usr/local/smlnj/bin
宝石规格:
Gem::Specification.new do |spec|
spec.name = 'mygem'
spec.version = '0.0.1'
spec.date = '2015-01-05'
spec.summary = "mygem"
spec.description = "Attempting to build a gem"
spec.authors = ["speersj"]
spec.email = # my email here
spec.files = ['lib/command.rb', 'lib/connection.rb']
spec.homepage = ''
spec.license = 'MIT'
end
【问题讨论】:
-
lib目录的内容是什么?您的 gem 是否有一个名为mygem的文件? -
lib 包含几个定义类的文件,还包括一个 mygem.rb 文件,它需要 lib 中的其余文件。
-
尝试在没有
sudo的情况下安装gem? -
你的
gemspec是什么样的? -
不要使用
sudo来安装带有 rbenv(或 RVM)的 gem。这样做会导致 gem 安装在默认系统 Ruby 中,而不是 rbenv 管理的 Ruby 中。