Archlinuxを実行しています。最近、名前の付いたパッケージの1つicu
が更新されました。ただし、Firefoxはに依存しlibicuuc.so.56
、Rはに依存しlibicuuc.so.55
ます。この問題を解決するにはどうすればよいですか?
注:RパッケージはIntel MKL
libiary に対してビルドされているため、新しいバージョンの依存関係では機能しません。私はRを再構築しようとしました-それはまだ古いものに依存しますlibicuuc.so.55
Archlinuxを実行しています。最近、名前の付いたパッケージの1つicu
が更新されました。ただし、Firefoxはに依存しlibicuuc.so.56
、Rはに依存しlibicuuc.so.55
ます。この問題を解決するにはどうすればよいですか?
注:RパッケージはIntel MKL
libiary に対してビルドされているため、新しいバージョンの依存関係では機能しません。私はRを再構築しようとしました-それはまだ古いものに依存しますlibicuuc.so.55
回答:
古いライブラリで特定の実行可能ファイルを実行したいと思います。実行可能ファイルを呼び出しましょうmyprogram
。
たとえば、次のようなコマンドで古いライブラリを使用するように指示できるlibicuuc.so.55
ため、別のディレクトリに配置した場合:/opt/oldlibs/libicuuc.so.55
myprogram
LD_LIBRARY_PATH=/opt/oldlibs myprogram
ライブラリファイルは、パッケージファイルから抽出できます(おそらくで見つけることができます/var/cache/pacman/pkg
)。
これでアプリケーションの使用方法の問題が解決しない場合は、代わりにchrootまたはコンテナーで実行することを検討できます。
/opt/oldlibs/
に/etc/ld.so.conf.d/R.conf
。(R.conf
ファイルは既にそこにあり、R
標準のlibパスが含まれています。)
Arch Linuxの私の経験
systemctl start mongodbはプロセス開始エラーを与えます
私は単にヒット journalctl -xeを現在のログをチェックします
不足しているlibboost_system.so.1.64.1(古いもの)を表示します
それは私がそれを使って解決するsumlinkです
readlink -f /lib/libboost_system.so.1.65.1 (new one)
readlinkは/usr/lib/libboost_system.so.1.65.1へのシンボリックリンクポイントを教えてくれます
/ var / cache / pacman / pkgからboost-libs 1.64を抽出し、すべての/ libファイルを/ usr / libに貼り付けて、古いファイルを上書きするためにスキップする
これは私が依存関係を壊すことを解決します解決しない場合はさらに作業が不足しているようなシンボリックリンクを作成します
ln -s /lib/libboost_system.so.1.64.1 /usr/lib/libboost_system.so.1.64.1
経験の増加
パッチを検索しないでください。何かをインストールするには、常にpacman -Suy && pacman -S package_nameを使用し てください。部分的な更新はサポートされていません(archの場合)