2017-11-02 10 views
0

私はGeminaboxが運営するプライベートなgemserverを持っています。そこで宝石を公開するには、コマンドgem inabox my-gem.gem -g $HOSTがあります。ルビースクリプトからgemをインストールしてから使用してください

私は新しい宝石のバージョンを自動公開するためのスクリプトを作成しています。

だから私のようなものがあります:

`gem install geminabox --no-ri --no-rdoc` 
`gem inabox my-super-gem.gem` 

を問題は、それが次の値を返します:

Successfully installed reentrant_flock-0.1.0 
Successfully installed multipart-post-2.0.0 
Successfully installed faraday-0.13.1 
Successfully installed nesty-1.0.2 
Successfully installed httpclient-2.8.3 
Successfully installed builder-3.2.3 
Successfully installed mustermann-1.0.1 
Successfully installed rack-2.0.3 
Successfully installed rack-protection-2.0.0 
Successfully installed tilt-2.0.8 
Successfully installed sinatra-2.0.0 
Successfully installed geminabox-0.13.9 
12 gems installed 
ERROR: While executing gem ... (Gem::CommandLineError) 
    Unknown command inabox 

私はコンソールに手動で同じことを行うと、すべてが正常に動作します。

system('script/upload_gem.sh') 

I:私はルビーからこのスクリプトを呼び出す場合、それは同じエラー(Unknown command inabox)では動作しません、再び

#!/bin/bash 
set -e 
gem install geminabox --no-ri --no-rdoc 
gem inabox -g $RUBYGEMS_HOST my-awesome.gem 

しかし、私は.shスクリプトにこれらのコマンドを入れた場合と同じRubyから正確にスクリプトを使用する必要があります。なぜそれが動作しない任意のアイデア?結局のところ

+0

通常、 'rake release'を実行して宝石を公開するだけです。カスタムスクリプトを書く必要はありません。 –

+0

@TomLord 'rake-release'宝石のコードから判断できるように、' gem push'コマンドundercoverを使用しています。私の場合は動作しません。 – nattfodd

+0

なぜですか? 'gemfile'に宝石サーバーを定義するだけです。 –

答えて

0

、私はgemianbox宝石に掘り問題を解決した - アップロードが簡単なCURLコマンドを使用して達成することができ、それは、単純なPOSTリクエストで宝石をアップロードようなのでgem inaboxコマンドは全く必要ありません。

curl -F '[email protected]/some/file.gem' https://some.host/upload

関連する問題