AmazonLinux2023 でゆえあって mod_auth_openidc を make したんだけど、 httpd の LoadModule でエラーになる、と相談されていた。
TLDR
make
した際に libcjose.so.0
が ldconfig で認識されているパス以下にコピーされていなかったので、make したディレクトリから cp
して解決した。
cp /home/ec2-user/cjose-0.4.1/src/.libs/libcjose.so.0 /usr/lib64/
ライブラリのパス
以下のようにして確認する方法と、 LD_LIBRARY_PATH
に追加して認識させる、という概ね2つの方法がある。
とはいえ基本的にシステムが期待するのは /usr/lib
/usr/lib64
以下のいずれか対応する bit 数によってパスが変わる、くらいなので、困ったらこのディレクトリ以下へ cp で放り投げてしまうのが早い。 放り込んだ後はエラー吐いた対象を ldd
で再度確認して、依存先のライブラリに not found がついていないか程度確認するとよいだろう。
ダメそうなら雑に ldconfig
を実行しておくといいかもしれない。
StackOverflow でも言及されている。
make の良し悪し
RPM などは依存するパッケージが固定されているので、環境に応じてある程度諦めを出しつつフィットさせるには make 使う必要があるのは仕方ない、という感じだが、一周回って最近はこの手の技術が必要だなあ、と感じつつある。
特にコンテナ環境などで極限まで容量を減らしたい、などの場合はビルドの複雑さを引き換えに手に入れることが可能なので。
スジが良いか否かはまた別の話だけど、いわゆる一つの GentooInstallBattle みたいなもんだと思っている。