致命的 #583
完了プラグインが独自のgemをrequireしていると起動しない
0%
説明
bundlerはrubygemsが追加するLOAD_PATHを消すため,プラグインがGemfileにないgemを使っているとそのgemが読み込めなくてmikutterが起動しません.
ぺんぎんさんのmikutter_shell_post(https://github.com/penguin2716/mikutter_shell_post )やmikutter_update_with_media(https://github.com/penguin2716/mikutter_update_with_media )がその例です.
Osamu Koga さんが11年以上前に更新
補足です.
これはユーザがGEM_HOMEを自分で定義して,システムディレクトリ以外に設定しているときのみ発生します.
(システムディレクトリはbundlerによって消されないため)
toshi_a 初音 さんが11年以上前に更新
pushしわすれがあったのでしましたがこれとは関係無さそうですね。GEM_HOMEが上書きされていると確かに起動できないと思います。
一応、bundlerでプラグインのGemfileを読み込む仕組みを仮実装してみましたが、あんまり現実的じゃないかもしれませんね。この土日はあんまり時間取れなさそうなので検証はちょっと後になりそうです。なにかよい方法ないですかね。
toshi_a 初音 さんが11年以上前に更新
- ステータス を 新規 から レビュー待ち に変更
- 担当者 を Osamu Koga にセット
現在の開発版では、mikutterのGemfileがプラグインのGemfileを読むようになっているので、プラグインをインストールしてbundleを実行するとプラグインが依存しているgemをインストールすることができます。
bundlerがGEM_HOMEを書き換えてしまう挙動は、変更する方法が特に見つかりませんでしたし、プラグインのために入れたgemが使えないことだと思うので、上記の仕様があれば、この挙動を止めるメリットも無いと思いますが、どうでしょうか。
Osamu Koga さんが11年以上前に更新
- ステータス を レビュー待ち から 解決 に変更
プラグイン側でGemfileを書くと正常に動作することを確認しました.
プラグインがGemを要求するならプラグイン側で依存をちゃんと管理させる,という今の方法で問題ないと思います.