何の話か
ArchLinuxでopensslをアップデートした直後からpacmanがタイトルのエラーで動かなくなった。 どう直したかというお話。
解決法
まず足りていない動的ライブラリをlddコマンドで洗い出す。 今回はこんな感じ。
$ ldd /usr/bin/pacman linux-vdso.so.1 (0x00007fff89ddd000) libalpm.so.13 => /usr/lib64/libalpm.so.13 (0x00007f3294631000) libarchive.so.13 => /usr/lib64/libarchive.so.13 (0x00007f329456a000) libc.so.6 => /usr/lib64/libc.so.6 (0x00007f3294383000) libcrypto.so.1.1 => not found libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00007f32942bf000) libgpgme.so.11 => /usr/lib64/libgpgme.so.11 (0x00007f329426b000) libcrypto.so.1.1 => not found libacl.so.1 => /usr/lib64/libacl.so.1 (0x00007f3294261000) libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f3294236000) liblzma.so.5 => /usr/lib64/liblzma.so.5 (0x00007f329420c000) libzstd.so.1 => /usr/lib64/libzstd.so.1 (0x00007f3294163000) liblz4.so.1 => /usr/lib64/liblz4.so.1 (0x00007f329413f000) libbz2.so.1.0 => /usr/lib64/libbz2.so.1.0 (0x00007f329412c000) libz.so.1 => /usr/lib64/libz.so.1 (0x00007f3294112000) /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f3294696000) libnghttp2.so.14 => /usr/lib64/libnghttp2.so.14 (0x00007f32940e6000) libidn2.so.0 => /usr/lib64/libidn2.so.0 (0x00007f32940c4000) libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x00007f3294083000) libpsl.so.5 => /usr/lib64/libpsl.so.5 (0x00007f329406e000) libssl.so.1.1 => not found libcrypto.so.1.1 => not found libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00007f329401a000) libbrotlidec.so.1 => /usr/lib64/libbrotlidec.so.1 (0x00007f329400c000) libassuan.so.0 => /usr/lib64/libassuan.so.0 (0x00007f3293ff5000) libgpg-error.so.0 => /usr/lib64/libgpg-error.so.0 (0x00007f3293fcf000) libunistring.so.2 => /usr/lib64/libunistring.so.2 (0x00007f3293e23000) libssl.so.1.1 => not found libcrypto.so.1.1 => not found libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00007f3293d4b000) libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00007f3293d1b000) libcom_err.so.2 => /usr/lib64/libcom_err.so.2 (0x00007f3293d15000) libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00007f3293d07000) libkeyutils.so.1 => /usr/lib64/libkeyutils.so.1 (0x00007f3293d00000) libresolv.so.2 => /usr/lib64/libresolv.so.2 (0x00007f3293cee000) libbrotlicommon.so.1 => /usr/lib64/libbrotlicommon.so.1 (0x00007f3293ccb000)
libssl.so.1.1とlibcrypto.so.1.1が足りていない。
wget等も軒並みこれらのライブラリが足りなくて動かない。
この2つはopenssl-1.1パッケージに含まれるものなので、ブラウザから適当なミラーにアクセスしてopenssl-1.0-1.0.2.u-1-x86_64.pkg.tar.zstをダウンロード後、tarコマンドで展開。
中に欲しいライブラリがあるので、それらを/usr/libあたりにコピー。
ルート権限が必要だが、sudoが使えなかったのでsuでユーザを切り替えてコピーした。
以上を終えて再度lddを見るとnot foundが解消された。
カテゴリー:Linux
記事作成日:2022-12-04