2017-03-07 6 views
0

私は実行可能ファイルで構築した宝石を持っています。実行可能ファイルは、私のレポのbinディレクトリの下にあり、それはgemspecファイルに定義されています。私はこれを追加するしかしパスに宝石のバイナリを設定するには?

$ 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のバージョンであり、ルビーは、バージョンをGEMS:ここ

$ 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とそれはうまく動作します。

更新:何らかの理由でこれをデバッグすると、bin/my_gemファイルの代わりにlib/my_gem.rbファイルが実行されています。

+0

あなたはには何も追加する必要はありませんあなた'gemspec'、これはすでに動作するはずです。あなたはRubyをどのようにインストールしましたか?これがうまく動作しない場合は、 '$ PATH'にgem binディレクトリがない可能性があります。 '$ gem env'の結果も役に立ちます。 – matt

+0

私はrbenvを知りませんが、gemをインストールした後に '$ rbenv rehash'を実行する必要があるかもしれません。 – matt

答えて

0

gemが正しくインストールされています。問題は実際には実行可能ファイルにあります。

私はこの共通のif文で終了作成された実行可能:私はちょうどこれにそれを変更しなければならなかった

if $PROGRAM_NAME == __FILE__ 
    main 
end 

はそれを修正する:

main 
関連する問題