古い共有ライブラリを使用するアプリケーションをどのように処理しますか?

古い共有ライブラリを使用するアプリケーションをどのように処理しますか?

libncurses.so.5を探しているLinuxローリングリリースバージョンでGDBを実行しようとしていますが、システムにバージョン6がインストールされています。人々がlnを使用してlibncurses.so.5をバージョン6にリンクするソリューションを見たことがありますが、これは良い習慣ではないようです(最新のエントリは廃止されたか削除された可能性があります)。

既存のライブラリを新しいライブラリにリンクすることは許可されていますか、それとも良い方法がありますか?

特定の問題の詳細:

  • カーネル5.8を使用したManjaro Linux
  • pacmanリポジトリにアプリケーション(STCubeIDE)がインストールされていません(手動インストール)。

ベストアンサー1

既存のライブラリを新しいライブラリにリンクすることは許可されていますか?

いいえ。

バイナリの非互換性により、プログラムがいつでも中断される可能性があります。通常、配布ツール(など)を使用することに加えて、システムファイル(以下のすべての項目)を操作するのは/usr愚かな考えです。aptyum

これを行うより良い方法はありますか?

古いライブラリ(以下のような/opt/oldlibs)を保持し、プログラムがLD_LIBRARY_PATH環境変数を介してそれを使用するようにします。詳しくはld.so(8)マンページ。

おすすめ記事