Arch Linuxとオプションの依存関係

Arch Linuxとオプションの依存関係

Arch LinuxシステムにXChatをインストールしました。実行するたびに、次のエラーメッセージが表示されます。

Python interface loaded
Perl interface loaded
AutoLoad failed for: /usr/lib/xchat/plugins/tcl.so
libtcl8.5.so: cannot open shared object file: No such file or directory

したがって、PythonとPerlプラグインは正しくロードされますが、Tclプラグインはロードされません。実際にはシステムにパッケージがインストールされていますが、python2パッケージはインストールされていません。インストールすると問題が解決します。perltcltcl

インストールする前に、tcl以下を入手してください。

ldd /usr/lib/xchat/plugins/tcl.so | grep tcl
    libtcl8.5.so => not found

インストール後、tcl次のようになります。

ldd /usr/lib/xchat/plugins/tcl.so | grep tcl
    libtcl8.5.so => /usr/lib/libtcl8.5.so (0x00007fceba533000)

tclこれは必須の依存関係ではありませんが、オプションのxchat依存関係のようです。

pacman -Qi xchat
...
Optional Deps  : enchant: for spell checking support
                 tcl: for tcl plugin
                 python2: for python plugin
...

なぜですか?つまり、tclこのパッケージがデフォルトでインストールされていないのはなぜですかxchat?そうでなければxchat壊れていませんかtcl

抜け穴2年以上のことでしたが、アーチLinuxの分野でなぜこのようなことが起こったのか全く理解できませんでした。このバグは古いですが、私はこのディストリビューションを数ヶ月間毎日実行してきたので、Arch Linux初心者です。

Arch Linuxフォーラムやメーリングリストに質問することもできますが、他のLinuxディストリビューションユーザーの視点を聞きたいです。もちろん、Arch Linuxユーザーも大歓迎です。


編集する。

  1. インストールせずにXChatを実行したときに表示されるエラーメッセージは、tclメッセージが表示されるのと同じ場所のGUIに明確に表示されます。
  2. 私の質問は、次のように言い換えることもできます。 XChatが明らかにスクリプトまたは--enable-tclスクリプトに渡された同等のものを使用して構築されたにもかかわらず、パッケージへの依存関係を強制configureせずにtclXChatをインストールできるのはなぜですか?人が望まない場合はtclそれを使用する必要があります--disable-tcl

編集する。一つ開いたワイヤーArch Linuxフォーラムに登場しましたが、満足のいく答えが得られませんでした。それでDebianとGentooを確認してみると、この問題はないようです。

答え1

これは主に複雑さと人々が時間を投資する方法に関する問題です。

欠落しているプラ​​グインライブラリに関連する警告/エラーを表示しないXChatバイナリパッケージが必要な場合は、基本的に2つのオプションがあります。

  • 「重要な」プラグインのみを含める/設定し、これらのプラグインに必要なハード依存関係を追加します。
  • 利用可能なすべてのプラグインを含め、これらのエントリに必要なハード依存関係を追加します。

最初のオプションは、ほとんど機能を持たないXChatパッケージを提供します。その後、xchat-perlパッケージ、パッケージxchat-tcl、パッケージが必要ですxchat-gtk。すべてメンテナンス、パッチ、アップグレードなどが必要です。これには多くの作業が必要です。

2番目のオプションは、一般ユーザーがまったく使用していない他の多くの項目を含む膨大なXChatパッケージを提供します。 Archのようなディストリビューションにはあまり満足できません。

2つの間の最適点を見つけようとすることはできますが、完全に合う点を見つけることができない可能性があります。

Arch開発者がこのパッケージを使用して行ったことは、ユーザーに依存関係をインストールすることを強制することなく、一般的に使用されるプラグインをリリースしたことです。これは(今はエラーメッセージを無視します)、実際にはユーザーにとって非常に良いです。 TCLを望んでいない人や必要としない人は、XChatを取得するためにTCLをインストールする必要はありません。 TCLとXChat TCLプラグインのみをインストールすると機能します。
だから良い妥協ですね。後でTCLを使用してXChatをスクリプトするには、TCLをインストールするだけです。 XChatのアップデートや他のパッケージのインストールについて心配する必要はありません。

エラーメッセージは純粋に見えます。修正できますか?おそらく。
簡単に修正でき、TCLのインストール後にプラグインがすぐに動作を開始できるかどうか(追加のパッケージまたは構成の変更なし、逆依存性チェック...):まだわかりません。
アーチ開発者/メンテナンス者は、この外観上の問題を解決するために時間を費やす必要がありますか?これは議論の余地があります。ソフトウェアの動作を考慮すると、これはかなり低い優先順位でなければなりません。

できるあなたどのような方法で問題を解決しますか?それがあなたにとって十分に重要であれば、おそらくそうです。試してみてください。これらのプラグインと依存関係を処理するためのより良い方法を見つけて、バグや機能リクエストを送信したり、適切なフォーラム/メーリングリストに掲載してみてください。
オープンソースのディストリビューションが魔法のように良くなるわけではありません。十分に興味があれば参加してみてください。

答え2

--enable-tclまたは設定スクリプトに渡された同等のエントリを使用して構築されたXChatをtclパッケージへの依存関係を強制せずにインストールできるのはなぜですか?

Arch Linuxを使用しています。 FAQで -アーチがなぜそんなにユニークなのか...:

アーチ包装は最小限に設計されており、任意に選択できるパッケージの依存関係自動的にインストールしない。代わりに、ユーザーはパッケージのインストール中にのみそのパッケージの存在に関する情報を提供するため、システムがさらに簡素化されます。

Xチャットパッケージの詳細:

dbus-glib
gtk2
hicolor-icon-theme libnotify
openssl
enchant(オプション) - スペルチェックのサポート
python2(オプション) - Python プラグイン用
チクル(任意に選択できる) - tclプラグインの場合

編集:以下のコメントに答えてください。

どういう意味なのかわかりません...オプションの依存関係は、アプリケーションの特定の機能にのみ使用されます。上記の機能を使用しない場合は、これらの依存関係は必要ありません。オプションの依存関係は、さまざまな理由でパッケージをサブモジュールに分割することが物理的に不可能な場合によく使用されます(サブモジュールを使用するにはそのモジュールがすべて必要なため、サブモジュールには非選択的な依存関係のみがあります)。パッケージ+サブモジュールの例は次のとおりです。エクセル

これで、あなたが受け取っている特定のエラー/警告メッセージについて... Mattが自分の投稿にまとめたようですが、実際に追加するものはありません。

関連情報