Ruby 正在生成gem,未找到可执行文件
我正在写我的第一个RubyGem,我对设置gems的整个结构有点陌生。我从阅读中了解到,为了为我的gem创建可执行文件,我需要执行以下操作:Ruby 正在生成gem,未找到可执行文件,ruby,gem,Ruby,Gem,我正在写我的第一个RubyGem,我对设置gems的整个结构有点陌生。我从阅读中了解到,为了为我的gem创建可执行文件,我需要执行以下操作: 在my gemspec中添加一行,指定可执行文件的名称,如下所示: s.executables您的gempec正在尝试更改加载路径。我建议首先解决这个问题,因为您报告的内容似乎与无法找到其文件的gem一致 请查看您的gempec以了解以下代码: lib = File.expand_path('../lib', __FILE__) $LOAD_PATH.un
s.executables您的gempec正在尝试更改加载路径。我建议首先解决这个问题,因为您报告的内容似乎与无法找到其文件的gem一致
请查看您的gempec以了解以下代码:
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
那就看
“Gems不应更改$LOAD_PATH变量。RubyGems会为您管理此变量。这样的代码应该是不必要的…”
有关使用现有加载路径加载的各种解决方案,请参阅,以及诸如require\u relative
等帮助程序。您需要在spec.files
中添加gem中需要包含的所有文件。您没有添加bin
目录中的文件
例如,我有以下来自的配置:
此外,您需要确保您的可执行文件是可执行的
$ chmod a+x bin/gemname
否则,在构建gem之后,命令将不可用。因此,问题在哪里?对我来说似乎可以正常工作(我收到一个加载错误,我认为您需要将commander
添加到依赖项中)。您会遇到什么错误?是否是shell中某种形式的“未找到命令”?如果是这样,您可能需要确保正确设置了Rubygems,以便gem可执行文件位于您的路径上。其他gem可以工作吗?@maxd啊抱歉,问题是最后一位gemname foo参数
不工作,因为它说没有该名称的可执行文件。我将编辑这个问题。@matt我编辑了这篇文章,以包含我得到的错误。我还注意到我收到了这样一条消息:rbenv:cannot rehash:/home/stephen/.rbenv/shimmes/.rbenv shim已成功安装get_freaky-0.1.2.pre
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
$ chmod a+x bin/gemname