バグ #1576
closedLoadErrorで起動しない
Description
1月5日頃から、developブランチが、
<internal:/usr/local/lib/ruby/3.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- delayer (LoadError) from <internal:/usr/local/lib/ruby/3.0/rubygems/core_ext/kernel_require.rb>:85:in `require' from /home/ksmakoto/mikutter/core/boot/delayer.rb:3:in `<top (required)>' from <internal:/usr/local/lib/ruby/3.0/rubygems/core_ext/kernel_require.rb>:85:in `require' from <internal:/usr/local/lib/ruby/3.0/rubygems/core_ext/kernel_require.rb>:85:in `require' from mikutter.rb:17:in `<main>'
のように、LoadErrorで起動しなくなった
再現手順
developブランチを起動しようとすると起きる
Updated by Izumi Tsutsui over 3 years ago
- Assignee set to Makoto Kishimoto
/usr/local/lib/ruby/
という文字列からしてたぶん FreeBSD + ports 環境ではないかと思うのですが
- ports の mikutter は ubygem-delayer>=1.0.0:devel/rubygem-delayer とバージョン指定なし
https://cgit.freebsd.org/ports/tree/net-im/mikutter/Makefile?id=305f148f482daf30dcf728039d03d019f88344eb#n19 - ports の delayer は 1.1.2
https://cgit.freebsd.org/ports/tree/devel/rubygem-delayer/Makefile?id=cf118ccf875508b9a1c570044c93cfcc82bd455c - mikutter 5.0 は明示的に delayer 1.2.1 以降が必要 #1550
a2ce7a6f
- bundler で gem をローカルで入れて起動する
- FreeBSD はわかりませんが ubuntu だと https://gist.github.com/tsutsui/c89604b824c7cbc67cac118babfcc3df
- ports の delayer その他のバージョンを上げる(もしくは上げてもらうようレポートを出す)
Updated by Makoto Kishimoto over 3 years ago
追いかけたところ、コミット dee446e04984103069092c00fbe19c5dc8c16196 が起点のようです
Updated by toshi_a 初音 over 3 years ago
- Related to 提案 #1484: CLIコマンドのプラグインサポート added
Updated by toshi_a 初音 over 3 years ago
Updated by Izumi Tsutsui over 3 years ago
delayer が system gem で入っている場合は問題なくて、 gem をすべて bunder を使って入れたときのみに発生するという気がしますが
from /home/ksmakoto/mikutter/core/boot/delayer.rb:3:in `<top (required)>'
の通り source:mikutter.rb@dee446e0 のrequire 'boot/delayer'
の呼び出しが
if !ENV['DISABLE_BUNDLER_SETUP'] || ['', '0'].include?(ENV['DISABLE_BUNDLER_SETUP'].to_s)
begin
ENV['BUNDLE_GEMFILE'] = File.expand_path(File.join(File.dirname($0), "Gemfile"))
require 'bundler/setup'
rescue LoadError, SystemExit
# bundlerがないか、依存関係の解決に失敗した場合
# System の gem を使ってみる
end
end
の bundler のブロックより後ろにないとダメ、という気はします。
Updated by Shibafu Midorino over 3 years ago
手元の環境で試してみましたが、ruby mikutter.rb
や実行権限付けての mikutter.rb
直接起動で再現できました。
私もbundlerを使用してセットアップしているのですが、普段 bundle exec ruby mikutter.rb
で起動しているので気づいていませんでした。
Updated by Shibafu Midorino over 3 years ago
- Status changed from 実装待ち to レビュー待ち
- ブランチ set to topic/1576-require-bundler-setup-first
ブランチ topic/1576-require-bundler-setup-first
に修正をpushしました。起動できるか確認をお願いできますか?
Updated by Makoto Kishimoto over 3 years ago
起動できました。
(なお、bundle exec ruby mikutter.rb で個人的には解決です)
Updated by Makoto Kishimoto over 3 years ago
developがruby mikutter.rbで起動できることを確認しました。