2日前、私はCalamaresを編集しました。翌朝に実行しようとすると、次の結果が表示されます。
/usr/bin/calamares: 共有ライブラリの読み込みエラー: libkpmcore.so.11: 共有オブジェクトファイルを開けません。そのファイルまたはディレクトリはありません。
私のディストリビューションManjaroがkpmcoreをlibkpmcore.so.12に更新したことを確認しました。
私の初心者の質問は次のとおりです。私のCalamaresパッケージでこれを防ぐための最良の機会は何ですか?
ご協力ありがとうございます。
答え1
calamares
または何が何であるかわかりませんlibkpmcore
。ただし、存在しないライブラリを解決しようとすると問題が発生します。
Unix ライブラリの命名は通常規則に従いますlib{name}.so[.major[.minor[.patch]]]
(括弧は[]
オプションを表します)。
この命名スキームの問題は、lib{name}.so.0.1.0
たとえばにリンクしてからライブラリをに更新すると、ファイルが0.1.1
に変わるため、もはや存在しないことですlib{name}.so.0.1.1
。
この問題を解決するために、ライブラリには実際の共有ライブラリへのシンボリックリンクがあります。
lib{name}.so.0.1 -> lib{name}.so.0.1.0
したがって、ライブラリが更新されると、0.1.1
シンボリックリンクはまだ存在しますが、新しいバージョンを指すため、古いバージョンを使用するプログラムは引き続き機能します。
lib{name}.so.0.1 -> lib{name}.so.0.1.1
あなたの場合は、ライブラリではなくシンボリックリンクにリンクする必要があります。