#author("2020-03-31T13:36:21+09:00","default:Miyashita","Miyashita") #author("2022-05-13T16:48:28+09:00","default:Miyashita","Miyashita") *curl 関係のエラー [#q364e7ed] **An unknown option was passed in to libcurl [#pd7b7a1d] ある時 curl: (48) An unknown option was passed in to libcurl というエラーが発生した.~ curlは GitHub のソース等からビルド・インストールしたのに対して,libcurl は apt-get 経由でインストールしたりすると,それぞれのバージョンが一致せずこのエラーが起こり得る.~ curlは ソース等からビルド・インストールしたのに対して,libcurl は apt-get 経由でインストールしたりすると,それぞれのバージョンが一致せずこのエラーが起こり得る.~ 自分の環境で試してみた. #codeprettify{{ $ curl -V curl 7.61.1 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.0.2n zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 }} あとは [[Qiita - curlをソースコードからコンパイルしたときの備忘録>https://qiita.com/riffrain@github/items/74594fe358ac76c72f5a]]~ を参考に,書いてある事と同様な修正を行った.~ まずは curl が参照する libcurl のパスを確認する. #codeprettify{{ $ which curl /usr/bin/curl $ ldd `which curl` linux-vdso.so.1 (0x00007ffeba39b000) libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f1617043000) }} /usr/lib/x86_64-linux-gnu にある場合は,apt upgrade で更新されてしまう可能性がある.~ 一度 libcurl4 をパージして,curl とその動的ライブラリが関係するソフトウェアをソースからビルドしてインストールし直すのが一つの方法.~ ~ その場しのぎの方法としては,適切な libcurl.so.4 があるところから libcurl の参照場所へコピーするという方法がある. #codeprettify{{ $ cd /usr/lib/x86_64-linux-gnu $ sudo cp libcurl.so.4.5.0 libcurl.so.4.5.0.bak # バックアップ $ sudo cp /usr/lib/libcurl.so.4.5.0 . # 適切なファイルのコピー $ sudo ln -fs libcurl.so.4.5.0 libcurl.so.4 # シンボリックリンク作成 }} 最終的に,curl と libcurl のバージョンが一致していればOK. #codeprettify{{ $ curl -V curl 7.61.1 (x86_64-pc-linux-gnu) libcurl/7.61.1 OpenSSL/1.1.0g zlib/1.2.11 libssh2/1.8.0 }} 一度修正しても,update & upgrade で更新する度に同じことが発生してしまうのなら,curl も libcurl も apt 経由にした方が良いかも.~ ~ **no version information available [#kb6fb8fe] 上記のように libcurl.so を変更すると cmake で依存関係のエラーが出た. /usr/lib/x86_64-linux-gnu/libcurl.so.4: no version information available (required by /usr/bin/cmake) この場合は cmake もこの新しい libcurl のバージョンに対応するよう再インストールする.~ CMake に限らず curl が関係しているものは同様.