libSSL と libcrypto のケアをする

Posted on 2022-12-05 in zakki

アップデート後の再起動でアプリケーションが立ち上がらないことがあった。何だろうと思ってみてみると、libssl.so.1.1libcrypto.so.1.1がリンクされていなかった。

❯ ldd /home/paraselene92/QPeerCastYP/qpeercastyp
    linux-vdso.so.1 (0x00007ffecaff7000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f6158557000)
    libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0x00007f6157a00000)
    libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0x00007f61578bf000)
    :
    :
    libssl.so.1.1 => not found
    libcrypto.so.1.1 => not found
    :
    :

存在していたと思われる、/usr/lib32/libssl.so.1.1を見てもファイルが存在しないのでアップデートの余波で削除されてしまったのか。サーバ (Ubuntu) の方の OpenSSL はケアしたのだけど、この PC(ArchLinux) は全く考えていなかった。いつぞやのpacman -Syuのタイミングで置き換わったのだろうか。

find / -name "libssl.so.1.1" で探してみたら、steam のライブラリに同梱されていたのでとりあえずシンボリックリンクを貼って急場を凌いでみた。シンボリックリンクを貼ったあと、最後に ldconfig する。

sudo ln -s /home/paraselene92/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier/soldier_platform_0.20220927.0/files/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib32/libssl.so.1.1
sudo ln -s /home/paraselene92/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier/soldier_platform_0.20220927.0/files/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/lib32/libcrypto.so.1.1
sudo ldconfig

not foundが消えてリンクされていたようだった。このあとアプリケーションも動いたので急場は凌げたかたちになる。

❯ ldd /home/paraselene92/QPeerCastYP/qpeercastyp
    linux-vdso.so.1 (0x00007ffe17297000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fa9d65c0000)
    libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0x00007fa9d5a00000)
    libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0x00007fa9d58bf000)
    :
    :
    libssl.so.1.1 => /usr/lib32/libssl.so.1.1 (0x00007fa9d4c9e000)
    libcrypto.so.1.1 => /usr/lib32/libcrypto.so.1.1 (0x00007fa9d4800000)
    :
    :

と思っていたら、後日似たような事象が発生していて何だ何だと思ったら steam のディレクトリ名が変わっていて、シンボリックリンクが機能していないことになっていた。大人しくpacman -S openssl-1.1とかしたほうがよさそう。

OpenSSL