swa*_*psm 3 ruby rubygems ruby-on-rails ruby-2.0
我正在开发一个简单的红宝石宝石,我需要额外的课程.以下是我的gemname/lib目录的文件:
lib/
gemname/
base.rb
version.rb
gemname.rb
Run Code Online (Sandbox Code Playgroud)
我require "gemname/base"在我的gemname.rb中包含了该语句.
在本地构建和安装gem并转到irb和之后require gemname,我收到以下错误:
LoadError: cannot load such file -- ./gemname/base
from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require'
from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require'
from /home/swaroop/.rvm/gems/ruby-2.0.0-p0/gems/gemname-0.0.6/lib/gemname.rb:2:in `<top (required)>'
from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:116:in `require'
from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:116:in `rescue in require'
from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:122:in `require'
from (irb):1
from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/bin/irb:13:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
您的gemname.gemspec文件应包含这样的内容.
spec.files = `git ls-files -z`.split("\x0")
Run Code Online (Sandbox Code Playgroud)
您收到错误消息,因为您没有使用git版本文件.如果你rake install在使用之前运行git,那么如果你这样做
irb
require "gemname"
Run Code Online (Sandbox Code Playgroud)
这会引起错误.
这就是原因.看看它的安装路径.
gem list -d gemname # this should return something like this
gemname (0.0.1)
Author: your name
License: MIT
Installed at: /Users/your_name/.rbenv/versions/2.0.0/lib/ruby/gems/2.0.0
Run Code Online (Sandbox Code Playgroud)
打开位置并找到您的gem文件夹.你应该看到nothing那里.
现在,将您的文件添加到git并至少提交一次.
git init
git add .
git commit -m "init"
Run Code Online (Sandbox Code Playgroud)
然后做,rake install并要求它不应该引起错误.
irb
require "gemname" # no error, and you should see files in this gem's install folder.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4268 次 |
| 最近记录: |