お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2021-12-15 18:31:16

beginner123456789
新しいメンバ
登録日: 2021-12-15

libcurl.so.4: version `CURL_OPENSSL_3' not foundが解決できない

ubuntuバージョンを18.04から20.04に変更しようとしたところ、エラーが出てしまいました。
状況は以下です。

■変更前のDockerfile 抜粋
FROM ubuntu:18.04
~~省略~~
RUN sed -i.bak -e "s%http://[^ ]\+%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list \
    && apt-get update && apt-get install -y \
        wget \
        gnupg \
        libcurl3 \
   ~~省略~~
    && cp /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0 /usr/lib/x86_64-linux-gnu/libcurl3.so.4.5.0 \
    && apt-get install curl -y \

以下を参考にしたとのこと。
https://qiita.com/yukpiz/items/43dc1eed8c918b99686c


■試したこと
1.DockerfileのFROM句をubuntu:20.04へ変更
  以下のエラー出力される
  E: Package 'libcurl3' has no installation candidate

2.install対象をlibcurl3からlibcurl4へ変更
  libcurl.so.4.5.0 がないため、以下をコメントアウト。
  #    && cp /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0 /usr/lib/x86_64-linux-gnu/libcurl3.so.4.5.0 \

  curl使用している箇所で、以下のログが出力されていることを確認
  /lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found

上記の事象に対して調べた結果、以下を参考にadd-apt-repository ppa:xapienz/curl34等を実行してみましたが、解決せずという状況です。
https://askubuntu.com/questions/1061431/how-to-have-both-libcurl3-and-libcurl4-installed-at-same-time
https://launchpad.net/~xapienz/+archive/ubuntu/curl34

解決策や調査方法など、ご存知でしたら教示お願いいたします。

オフライン

 

#2 2021-12-16 14:05:52

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: libcurl.so.4: version `CURL_OPENSSL_3' not foundが解決できない

beginner123456789 による投稿:

ubuntuバージョンを18.04から20.04に変更しようとしたところ、エラーが出てしまいました。
  /lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found
上記の事象に対して調べた結果、以下を参考にadd-apt-repository ppa:xapienz/curl34等を実行してみましたが、解決せずという状況です。
https://askubuntu.com/questions/1061431/how-to-have-both-libcurl3-and-libcurl4-installed-at-same-time
https://launchpad.net/~xapienz/+archive/ubuntu/curl34

Dockerも、なぜ、curl3が必要なのかも存じませんが、参考までに...
トンチンカンなことを言っていたら、無視してください。

小生の 20.04 を見てみますと、curl3と4では、依存するものが違います。

$ dpkg -l |grep curl
ii  curl                                          7.68.0-1ubuntu2.7                     amd64        command line tool for transferring data with URL syntax
ii  libcurl3-gnutls:amd64                         7.68.0-1ubuntu2.7                     amd64        easy-to-use client-side URL transfer library (GnuTLS flavour)
ii  libcurl4:amd64                                7.68.0-1ubuntu2.7                     amd64        easy-to-use client-side URL transfer library (OpenSSL flavour)

また、libcurl.so.4 のバージョンも、libcurl.so.4.6.0 となってます。

オフライン

 

#3 2021-12-17 11:42:33

beginner123456789
新しいメンバ
登録日: 2021-12-15

Re: libcurl.so.4: version `CURL_OPENSSL_3' not foundが解決できない

si による投稿:

Dockerも、なぜ、curl3が必要なのかも存じませんが、参考までに...

返信ありがとうございます。
”なぜcurl3が必要なのか”、そもそも、これを確認した方がよさそうですね。

オフライン

 

#4 2021-12-17 14:01:04

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: libcurl.so.4: version `CURL_OPENSSL_3' not foundが解決できない

beginner123456789 による投稿:

”なぜcurl3が必要なのか”、そもそも、これを確認した方がよさそうですね。

curl 3 と 4 を同居させるために、
ppa:xapienz/curl34 の作者のコメントを読むと、curl 3 と 4 を同居させるために
libcurl3-gnutls:amd64 7.68.0-1ubuntu2.7 (GnuTLS flavour)
libcurl4:amd64 7.68.0-1ubuntu2.7 (OpenSSL flavour)
こんなコトしてるように思われます。
それを、Ubuntu20.04 では、採用したように見えますが、どうでしょうか?

この推測が、当たっていれば、Ubuntu20.04 向けのパッケージを使うのであれば、
curl 3 とか 4 とかに依存するとかしないとか、気にせずとも良さそうに思われますが
如何でしょうか?

オフライン

 

#5 2021-12-17 20:24:16

beginner123456789
新しいメンバ
登録日: 2021-12-15

Re: libcurl.so.4: version `CURL_OPENSSL_3' not foundが解決できない

si による投稿:

この推測が、当たっていれば、Ubuntu20.04 向けのパッケージを使うのであれば、
curl 3 とか 4 とかに依存するとかしないとか、気にせずとも良さそうに思われますが
如何でしょうか?

たしかに、その通りだと思います。
見直したところ、そもそもの間違いに気付くことができました。

エラーを吐いていたのはCでコンパイルされた箇所だったのですが、
そのコンパイルしている開発環境が、Ubuntu16.04の環境でした。
開発環境を20.04にアップデートすることで解決いたしました。

コメント頂いたお陰で気付くことができました。
siさん、誠にありがとうございました。

オフライン

 

Board footer

Powered by FluxBB