プログラミング

apt “the repository does not have a release file” エラーを解決する

aptでエラーが出る原因は色々ありますが、とりあえずエラーをでなくしたいという場合は、listファイルから該当のものを探して削除してやるのが手早いです。

以下はdockerを間違った方法でインストールしようとした結果出てきてしまったエラーです。

Reading package lists... Done
E: Failed to fetch http://get.docker.io/ubuntu/dists/docker/InRelease  403  Forbidden [IP: 99.86.199.99 443]
E: The repository 'http://get.docker.io/ubuntu docker InRelease' is not signed.

これを解決するには、http://get.docker.io/ubuntuが記述されているファイルを探し、その部分を削除してからsudo apt updateをします。

listファイルの集まっている/etc/aptへ移動し、agなどでフォルダ全体を検索してやります。

yuis@yuis:/etc/apt$ ag "get.docker.io"
sources.list.d/docker.list
1:deb http://get.docker.io/ubuntu docker main

sources.list.d/docker.list.save
1:deb http://get.docker.io/ubuntu docker main
yuis@yuis:/etc/apt$ cat sources.list.d/docker.list*
deb http://get.docker.io/ubuntu docker main
deb http://get.docker.io/ubuntu docker main

sources.list.d/docker.listファイルに記述されていることを確認しました。このファイルはdockerインストールの専用のファイルなので、行を消してやってもいいですが、面倒なので今回はファイルごと消してしまいます。

[注意] sources.listは消さないように気をつけましょう。 ( 僕も以前これを削除してOS再インストールを余儀なくされました。やるならバックアップしておきましょう )

yuis@yuis:/etc/apt$ sudo rm sources.list.d/docker.list*

listファイルをアップデートします。

sudo apt update

うまくいっていれば、これで件のエラーはでなくなるはずです。

ちなみに当該のリポジトリがsources.listに入っていてファイルごと消せないという場合は、agの出力を参考にして行数を削除してやればいいでしょう。

sudo sed -Ei '59s/.*//' sources.list sources.list.save

The repository ‘…’ does not have a Release file. | DigitalOcean