[#49756] Ruby 2.0 以降で自前 gem サーバーからインストールできない — "5.5" <5.5@...>

5.5 と申します。

10 messages 2014/02/24
[#49757] Re: Ruby 2.0 以降で自前 gem サーバーからインストールできない — "5.5" <5.5@...> 2014/02/25

5.5 です。

[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

In This Thread