Linux

Ubuntu 18.04 (WSL) で curl がインストールエラーになったので対応しました

投稿日:2019年2月25日 更新日:

Ubuntu 18.04 LTS (WSL) の環境で curl コマンドをインストールしようとしたところ、エラーになりました。

この時の対応方法を説明します。

1. 状況

以下のコマンドを実行すると、その下に表示したエラーが表示されインストールできません。

$ sudo apt install curl

以下は日本語環境での結果です。

$ sudo apt install curl
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 curl : 依存: libcurl3-gnutls (= 7.47.0-1ubuntu2.12) しかし、7.58.0-2ubuntu3.6 はインストールされようと
しています
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

以下は英語環境での結果です。

$ LANG=C sudo apt install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
curl : Depends: libcurl3-gnutls (= 7.47.0-1ubuntu2.12) but 7.58.0-2ubuntu3.6 is to be installed
E: Unable to correct problems, you have held broken packages.

curl パッケージが依存している libcurl3-gnutls というパッケージに問題があるようです。

2. 対応手順

apt – Unmet dependencies when trying to install curl on Ubuntu 16.04 – Ask Ubuntu に書いてあった内容を元に以下の手順を実行しました。

まず libcurl3-gnutls パッケージについての情報を確認します。

$ apt-cache showpkg libcurl3-gnutls

実行結果は以下になります。

$ apt-cache showpkg libcurl3-gnutls
Package: libcurl3-gnutls
Versions:
(省略)
Reverse Depends:
(省略)
Dependencies:
(省略)
Provides:
7.58.0-2ubuntu3.6 -
7.47.0-1ubuntu2.12 -
7.47.0-1ubuntu2 -
Reverse Provides:

先程のエラーに含まれていた 7.58.0-2ubuntu3.6 の次のバージョンとして、7.47.0-1ubuntu2.12 というバージョンも提供されているようです。こちらをインストールすることにします。

$ sudo apt-get install libcurl3-gnutls=7.47.0-1ubuntu2.12

この状態であれば、以下のコマンドで正常に curl パッケージをインストールすることができました。

$ sudo apt install curl

参考

📂-Linux

執筆者:labo


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

CentOS

CentOS 8 で Snap から certbot パッケージをインストールする

CentOS 8 で Snap から certbot パッケージをインストールする方法について説明します。

Let's Encrypt

Let’s Encrypt を使ってみました

無料でSSL証明書が発行できる Let’s Encrypt を使ってみました。 その時の操作手順を紹介します。 本記事執筆時に存在していた「Let’s Encrypt 総合ポー …

docker

CentOS 上の Docker にウェブサーバーを入れて80番以外のポートで公開することができない問題【未解決】

CentOS 7 上の Dockerコンテナ にウェブサーバーを入れた場合、80番以外のポートで公開することはできないようです。 例えば、 まず、firewall-cmd コマンドで 8080番ポート …

Linux

指定した条件にマッチするファイルを検索する find コマンド

find コマンドについて説明します。 ※ 本ページで扱うのは、find (GNU findutils) 4.7.0-git です。 目次1. find コマンドの使い方式 (EXPRESSION)式 …

Linux

コマンドラインからメールを送信する方法

Linux (や Mac) のターミナルエミュレータ上からメールを送信するコマンドを紹介します。 目次1. sendmail2. mail3. telnet4. おわりに 1. sendmail se …