
Ubuntu日本語フォーラム
ログインしていません。
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
解決策や調査方法など、ご存知でしたら教示お願いいたします。
オフライン
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 となってます。
オフライン
si による投稿:
Dockerも、なぜ、curl3が必要なのかも存じませんが、参考までに...
返信ありがとうございます。
”なぜcurl3が必要なのか”、そもそも、これを確認した方がよさそうですね。
オフライン
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 とかに依存するとかしないとか、気にせずとも良さそうに思われますが
如何でしょうか?
オフライン
si による投稿:
この推測が、当たっていれば、Ubuntu20.04 向けのパッケージを使うのであれば、
curl 3 とか 4 とかに依存するとかしないとか、気にせずとも良さそうに思われますが
如何でしょうか?
たしかに、その通りだと思います。
見直したところ、そもそもの間違いに気付くことができました。
エラーを吐いていたのはCでコンパイルされた箇所だったのですが、
そのコンパイルしている開発環境が、Ubuntu16.04の環境でした。
開発環境を20.04にアップデートすることで解決いたしました。
コメント頂いたお陰で気付くことができました。
siさん、誠にありがとうございました。
オフライン