2

自分のgemを提供し、rdocを表示する独自のプライベートgemサーバーをセットアップしようとしています。私が読んだように、デフォルトのgemサーバーはそれを行うことができるはずです。そして、自分以外のすべてのgemをgemサーバーに表示したくないので、次のことを行っています。

gem install -i /some/dir --ignore-dependencies my-special.gem
gem server -d /some/dir # -d should let me set my gem dir

ただし、まず第一に、gemサーバーはインストールされているすべてのシステムgemを表示し、内部の内容は表示しませんsome/dir。そして第二に、次のことを行おうとすると:

gem install --source http://localhost:8808 my-special.gem

次のメッセージしか表示されません。

ERROR:  Could not find a valid gem 'my-special' (>= 0) in any repository
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
        bad response Gateway Time-out 504 (http://localhost:8808/latest_specs.4.8.gz)

そして、作成されたgemサーバーページに表示されるgemについても、

http://localhost:8808

私は何が間違っているのですか?一部のブログでは、インデックスを更新することに言及していますgem generate_indexが、このツールは*.gemファイルがサブディレクトリにあることを想定しているため、これは意味がありません/gemsが、デフォルトではファイルはになります/cache

4

1 に答える 1

0

私はこれをかなり簡単に解決しました。

専用のgemサーバーも使用していません。

私は次のことをしました:

  1. サービス可能なApacheWebサーバー上にディレクトリを作成し、その中にサブディレクトリを作成しgemsます。例えば: mkdir -p /var/www/rubygems/gems

  2. 提供するすべてのgemを作成したgemsサブディレクトリに配置します。cp /my/gems/dir/*.gem /var/www/rubygems/gems

  3. gemインデックスを生成します。 gem generate_index -d /var/www/rubygems

  4. Webサーバーがコンテンツを読み取れるように、アクセス権を調整することを忘れないでください

情報:インデックスは、ディレクトリ自体gemsではなく、サブディレクトリを含むディレクトリに生成する必要があります。gemsこの場合は/var/www/rubygemsです。

今、あなたはhttp://<my-gem-server>.domain/rubygemsあなたの宝石のソースに追加することができます

于 2012-08-28T11:36:46.003 に答える