构建gem,找不到可执行文件
我正在编写我的第一个rubygem,我对整个gem的结构有点新意。 我阅读本指南的理解是,为了为我的gem创建可执行文件,我需要执行以下操作:
-
在我的gemspec中添加一行,指定可执行文件的名称,如下所示:
s.executables << 'gemname'
-
用它构建gem
gem build gemname.gemspec
-
在本地安装gem(如果你每次最终不得不经常更改版本时尝试通过推送rubygems来安装)
gem install gemname-0.0.1.pre.gem
-
然后测试一下
gemname foo-arguments, --bar-options
如果我在#4上完成所有这些步骤,我会收到以下错误:
$ gemname zsh: command not found: gemname
假设可执行文件以shebang开头并位于gemname / bin / gemname
如果我导航到gem文件夹的根目录并运行bin / gemname来测试可执行文件,那么一切正常。
这是我当前gemspec的要点, 这里有github上的gem源。
您需要在spec.files
添加gem中需要包含的所有文件。 您错过了在bin
目录中添加的文件。
例如,我从我的一个gem中得到以下配置:
Gem::Specification.new do |spec| spec.files = Dir["{bin,lib}/**/*", "LICENSE", "README.md"] spec.test_files = Dir["spec/**/*"] spec.require_paths = ["lib"] spec.executables = ["yarr"] end
您的gemspec正在尝试更改加载路径。 我建议先修复它,因为你报告的内容似乎与gem无法找到它的文件一致。
查看您的gemspec以获取此代码:
lib = File.expand_path('../lib', __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
然后看http://guides.rubygems.org/patterns/
“Gems不应该改变$ LOAD_PATH变量.RubyGems会为你管理这个。像这样的代码不应该……”
有关使用现有加载路径加载的各种解决方案以及require_relative
等帮助程序,请参阅http://guides.rubygems.org/patterns/ 。
此外,您需要确保您的可执行文件是可执行的。
$ chmod a+x bin/gemname
否则,在构建gem之后命令将不可用。
- 无法激活机架(〜> 1.4.0,运行时)已激活rack-1.5.0
- WIN x64上的ruby-debug-base19-0.11.26.gem
- 耙子流产了! Gem :: LoadError:为数据库适配器指定’postgresql’
- 是否可以在不自动安装的情况下下载Ruby gem?
- Rails Installtion错误:’primefaces’本机gem需要安装构建工具
- gem安装指南针不工作
- gem虽然安装了但却找不到gem
- 无法安装mysql2 gem OS X Mountain Lion
- rspec –init not working /`mkd ir’:参数无效 – ./C :( Errno :: EINVAL)