[ruby-list:49757] Re: Ruby 2.0 以降で自前 gem サーバーからインストールできない
From:
"5.5" <5.5@...>
Date:
2014-02-25 03:29:55 UTC
List:
ruby-list #49757
5.5 です。
その後,もう少し分かりました。
まず,特定のウェブサーバーでしか起こらないことが分かりました。
具体的にはさくらインターネットの共用サーバーです。最近契約し
た複数のサーバーで同じ状況でした。とくに変わった設定はしてい
ないと思います。
もう一つ分かったのは,specs.4.8.gz を取得した際に Ruby 2.0
以上ではバイナリーで取れていないために,Gem.gunzip が失敗し
ている,ということです。
以下のようなスクリプトを実行します。
uri=URI.parse("http://XXXXX.sakura.ne.jp/gemsource/specs.4.8.gz")
data=Gem::RemoteFetcher.new.fetch_http uri
p data.encoding
Ruby 1.9.3 では,data が ASCII-8BIT であるのに対し,2.0 以
降では UTF-8 になっていました。バイト数も全然違いました。
ブラウザーから specs.4.8.gz をダウンロードしたときは,さくら
のサーバーも他のサーバーも正常なファイルが得られました。
これ以上は調べられていません。
(14/02/24 23:12), 5.5 wrote:
> 5.5 と申します。
>
> 【概要】
>
> 自作 gem をウェブサーバー上に置き,Gemfile に source 指定
> して bundle install する,というやり方が,Ruby 2.0 以降で
> うまくいかなくなりました。
>
>
> 【詳細】
>
> ローカルで
> gem generate_index
> を使って,gem サーバーとして必要なファイル群を生成しました。
>
> これをウェブサーバーにアップロードします。
>
> その URL を Gemfile に
>
> source "http://XXXXX.sakura.ne.jp/gemsource/"
>
> のように書きました。
> (ドメイン名は架空のものに差し替えてあります)
>
> この状態で
> bundle install
> すると,Ruby 1.9.3 ではうまくインストールできていたのですが,
> Ruby 2.0 以降では,以下のようなエラーが出てインストールでき
> ません。
>
>> bundle install
> Fetching source index from http://XXXXX.sakura.ne.jp/gemsource/
> Retrying source fetch due to error (2/3): Bundler::HTTPError Could not
> fetch specs from http://XXXXX.sakura.ne.jp/gemsource/
> Retrying source fetch due to error (3/3): Bundler::HTTPError Could not
> fetch specs from http://XXXXX.sakura.ne.jp/gemsource/
> Could not fetch specs from http://XXXXX.sakura.ne.jp/gemsource/
>
> いくつかの Ruby で試してみたところ,インストールできたのは
> 次のものでした:
>
> [OK] ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
> [OK] ruby 1.9.3p484 (2013-11-22) [i386-mingw32]
>
> インストールできなかったのは以下のものでした:
>
> [NG] ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]
> [NG] ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
> [NG] ruby 2.0.0p353 (2013-11-22) [i386-mingw32]
> [NG] ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
> [NG] ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin10.0]
>
> これを見ると,プラットフォームに関係なく 2.0.0 以降でできなく
> なったように見えます。
>
>
> RubyGems と Bundler のバージョンは以下のとおりです:
>
> RubyGems 2.2.2
> Bundler version 1.5.3
>
>
> なお,ウェブサーバーのログを見ると,インストールに成功する
> 場合も失敗する場合も,存在しない
>
> http://XXXXX.sakura.ne.jp/gemsource/api/
>
> にアクセスしているみたいです。
>
--
5.5@moji.gr.jp