我在ruby(第一个ruby应用程序)中构建了一个小型Cli应用程序,但我无法实际运行它。
我用bundle gem
启动了该项目。我一直在运行bundle exec bin/konstruct
在我的apps文件夹中测试它,一切正常。
我想在本地安装它并在提交之前对其进行测试,因此我在更新gemspec文件中的所有信息后运行bundle exec rake install
。它给出了成功的输出:
konstruct 0.1.1 built to pkg/konstruct-0.1.1.gem.
konstruct (0.1.1) installed.
但是当我通过输入$ konstruct
来运行应用时,它会给我一个Could not locate Gemfile or .bundle/ directory
错误,除非我从应用的根文件夹中运行它。
我曾尝试使用Google,但我无法将结果归结为与我相同的问题。即使在开发过程中我也遇到过这个问题(How can I test my Ruby CLI app while still in development?)
我有一个Gemfile,它包含:
source 'https://rubygems.org'
# Specify your gem's dependencies in konstruct.gemspec
gemspec
我没有.bundle /文件夹。我不确定该文件夹的生成位置和方式。我现在多次运行bundle
和bundle install
。
我有一个konstruct.gemspec文件,其中包含:https://github.com/konstruct/konstruct.cli/blob/master/konstruct.gemspec
该文件的大部分内容都是生成的。我只是把它填满了。
对不起,如果这是一个愚蠢的问题,但我被困了。
答案 0 :(得分:0)
您的gemspec中有以下行:
./main
我认为这意味着如果您将可执行文件移动到spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
目录而不是exe
目录,它将按预期工作。
http://guides.rubygems.org/specification-reference/#executables
答案 1 :(得分:0)
事实证明我是一流的白痴。前段时间我在我的.path文件中添加了Konstruct,显然它现在覆盖了正确的konstruct命令。那时我做了什么工作,所以我忘了它。
所以这个问题的答案是:它没有被打破。 OP是个白痴。 : - /