0
我有一個我用可執行文件構建的gem。可執行文件是bin
目錄我的回購下,它是在gemspec文件中定義:但是我想補充這如何在路徑中設置一個gem二進制文件?
$ ls /Users/myuser/.gems/gems/my_gem-1.0.0/
bin/ lib/
$ ls /Users/myuser/.gems/gems/my_gem-1.0.0/bin/
my_gem*
:
spec.executables << 'my_gem'
安裝寶石可執行也正確安裝後因此我可以沿着my_gem
或bundle exec my_gem
的行運行某些內容,以便從cli運行可執行文件。
我需要添加到我的gemspec文件才能做到這一點?
這裏是我的紅寶石版本和紅寶石寶石版本:
$ ruby -v
ruby 2.1.1p76
$ gem -v
2.2.2
這裏是我的寶石ENV:
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.2.2
- RUBY VERSION: 2.1.1 (2014-02-24 patchlevel 76) [x86_64-darwin15.0]
- INSTALLATION DIRECTORY: /Users/myuser/.gems
- RUBY EXECUTABLE: /Users/myuser/.rbenv/versions/2.1.1/bin/ruby
- EXECUTABLE DIRECTORY: /Users/myuser/.gems/bin
- SPEC CACHE DIRECTORY: /Users/myuser/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-15
- GEM PATHS:
- /Users/myuser/.gems
- /Users/myuser/.gem/ruby/2.1.0
- /Users/myuser/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["https://rubygems.org/", "https://my.org.url/artifactory/api/gems/gem-public/"]
- REMOTE SOURCES:
- https://rubygems.org/
- https://my.org.url/artifactory/api/gems/gem-public/
- SHELL PATH:
- /Users/myuser/.rbenv/versions/2.1.1/bin
- /usr/local/Cellar/rbenv/1.0.0/libexec
- /Users/myuser/.rbenv/shims
- /Users/myuser/.rbenv/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
奇怪的是,我已經嘗試這種具有不同的寶石,我用創建gem tutorial,這工作得很好。
更新:調試時由於某種原因,這個它的運行lib/my_gem.rb
文件,而不是bin/my_gem
文件。
你不需要任何東西添加到您的'gemspec',這應該已經工作了。你是如何安裝Ruby的?如果這不起作用,那麼你的'$ PATH'上可能沒有gem bin目錄。 '$ gem env'的結果也是有用的。 – matt
我不知道rbenv,但我_think_您可能需要在安裝gem後運行'$ rbenv rehash'。 – matt