【发布时间】:2015-05-13 15:24:02
【问题描述】:
我正在编写我的第一个 ruby gem,我对设置 gem 的整个结构有点陌生。我从阅读 this guide 中了解到,为了为我的 gem 创建可执行文件,我需要执行以下操作:
-
在我的 gemspec 中添加一行,指定可执行文件的名称,如下所示:
s.executables << 'gemname' -
用
构建gemgem 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 来测试可执行文件,一切都会正常工作。
【问题讨论】:
-
那么,问题出在哪里??
-
对我来说似乎可以正常工作(我收到加载错误,我认为您需要将
commander添加到您的依赖项中)。你得到了什么错误——是不是你的shell中出现了某种形式的“找不到命令”?如果是这样,您可能需要确保正确设置了 Rubygems,以便 gem 可执行文件在您的路径上。其他宝石可以吗? -
@maxd 抱歉,问题是最后一位
gemname foo-arguments不起作用,因为它说没有该名称的可执行文件。我将编辑问题。 -
@matt 我编辑了帖子以包含我得到的错误。我也刚刚注意到我收到了这条消息:
rbenv: cannot rehash: /home/stephen/.rbenv/shims/.rbenv-shim exists Successfully installed get_freaky-0.1.2.pre