Vine Linux バグトラッキングシステム - VineSeed
課題の詳細を表示
0002813VineSeed[全プロジェクト] カテゴリなし公開2014-09-17 14:502015-12-19 22:37
inagaki 
 
毎回 
新規実装済 
x86, x86_64
vbootstrap-0.1-2vl7
0002813: vbuilder 上で emacs のインストールに失敗する
vbuilder 上で emacs のインストールを行おうとすると、スクリプト実行時にエラーが発生してしまします。/usr/lib/emacsen-common/generate-flavors-list かと思われます。

(snip)
  emacs-24.3.93-1vl7.i686 ############################## [100%]
/usr/share/rubygems/rubygems/path_support.rb:78:in `path=': undefined method `+' for nil:NilClass (NoMethodError)
    from /usr/share/rubygems/rubygems/path_support.rb:34:in `initialize'
    from /usr/share/rubygems/rubygems.rb:324:in `new'
    from /usr/share/rubygems/rubygems.rb:324:in `paths'
    from /usr/share/rubygems/rubygems.rb:347:in `path'
    from /usr/share/rubygems/rubygems/specification.rb:858:in `dirs'
    from /usr/share/rubygems/rubygems/specification.rb:736:in `stubs'
    from /usr/share/rubygems/rubygems/specification.rb:924:in `find_inactive_by_path'
    from /usr/share/rubygems/rubygems.rb:185:in `try_activate'
    from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:132:in `rescue in require'
    from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:144:in `require'
    from <internal:abrt_prelude>:2:in `<compiled>'
/usr/share/rubygems/rubygems/path_support.rb:78:in `path=': undefined method `+' for nil:NilClass (NoMethodError)
    from /usr/share/rubygems/rubygems/path_support.rb:34:in `initialize'
    from /usr/share/rubygems/rubygems.rb:324:in `new'
    from /usr/share/rubygems/rubygems.rb:324:in `paths'
    from /usr/share/rubygems/rubygems.rb:347:in `path'
    from /usr/share/rubygems/rubygems/specification.rb:858:in `dirs'
    from /usr/share/rubygems/rubygems/specification.rb:736:in `stubs'
    from /usr/share/rubygems/rubygems/specification.rb:924:in `find_inactive_by_path'
    from /usr/share/rubygems/rubygems.rb:185:in `try_activate'
    from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:132:in `rescue in require'
    from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:144:in `require'
    from <internal:abrt_prelude>:2:in `<compiled>'
完了
sudo vbuilder clean build
sudo vbuilder install-rpm emacs
エラーを吐いている path_support.rb で参照されている変数を見たところ、vbuilder 環境上では反映されていない模様です。vbuilder のみでエラーとなるのはこのあたりが原因?

** 実機環境
[inagaki@munich specs]$ ruby -e 'puts Gem.default_path'
/home/inagaki/.gem/ruby/2.1.0
/usr/share/gems/2.1.0
/usr/local/share/gems/2.1.0

** vbuiler
[inagaki@munich specs]$ sudo chroot /var/local/vbootstrap/VineSeed_x86_64 /bin/sh -c -l 'cd /home/vbuilder/rpm && /usr/bin/ruby -e 'puts Gem.default_path''
[sudo] password for inagaki:

(↑実行結果として空行が出力されています)
設定されていません。
patch vbuilder-gempath.patch (1,271) 2015-01-29 16:24
http://mantis.vinelinux.org/file_download.php?file_id=370&type=bug
課題の履歴
2014-09-17 14:50inagaki新規課題
2014-10-26 13:45inagakiコメント追加: 0008947
2015-01-26 05:37inagaki追加情報更新bug_revision_view_page.php?rev_id=564#r564
2015-01-29 16:24inagaki添付ファイル追加: vbuilder-gempath.patch
2015-01-29 16:35inagakiパッケージ => vbootstrap-0.1-2vl7
2015-01-29 16:35inagakiコメント追加: 0009174
2015-01-29 16:35inagaki解決状況不明 => 実装済
2015-12-19 22:36tomopカテゴリ1 バグ => カテゴリなし
2015-12-19 22:37tomopプロジェクトVine Linux => VineSeed

コメント
(0008947)
inagaki   
2014-10-26 13:45   
Seed にある emacs-24.4 で試してみましたが、
vbuilder 内にはインストールできませんでした。
(0009174)
inagaki   
2015-01-29 16:35   
少し追いかけてみましたが、環境変数 GEM_PATH が(空であっても)存在すれば、chroot 環境下で ruby が動作することを確認しました(chroot 環境下でなぜこのような現象が起こるのかについてまでは追いかけていません)。

そこで、vbuilder 内で apt-get install 実行時に "GEM_PATH= " と強制的に環境変数を渡すことで、当該エラーは回避され、emacs 関連パッケージがインストールできるようになりました。

変更点をパッチファイルとして添付します。
アドホックな修正なので、これでよいのかも含めて適用の是非を判断いただきたく願います。

# もっとスマートな解決法はありそうな気はするのですが、、、