Linuxパソコン・サーバーのBashでプログラミングやシステム開発をしている際に、aptやapt-getコマンドの”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
関連記事:
Linux・ubuntuのapt・apt-getでエラーになる
関連広告: