Beim Programmieren oder Entwickeln von Systemen mit Bash auf Linux-Computern/-Servern kann der Fehler “the repository does not have a release file” bei apt- oder apt-get-Befehlen auftreten.
Es gibt verschiedene Ursachen für Fehler mit apt, aber wenn Sie nur möchten, dass der Fehler verschwindet, ist der schnellste Weg, den entsprechenden Eintrag aus den Listendateien zu finden und zu löschen.
Das Folgende ist ein Fehler, der als Ergebnis eines fehlerhaften Versuchs auftrat, docker zu installieren.
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.
Um dies zu beheben, finden Sie die Datei, die http://get.docker.io/ubuntu enthält, löschen Sie diesen Teil und führen Sie dann sudo apt update aus.
Wechseln Sie zu /etc/apt, wo die Listendateien gesammelt sind, und durchsuchen Sie den gesamten Ordner mit ag oder ähnlichem.
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
Ich habe bestätigt, dass es in der Datei sources.list.d/docker.list geschrieben ist. Diese Datei ist für die Docker-Installation vorgesehen, also könnten Sie die Zeile löschen, aber es ist mühsam, also lösche ich dieses Mal die gesamte Datei.
[Vorsicht] Achten Sie darauf, sources.list nicht zu löschen. (Ich habe dies zuvor gelöscht und musste das Betriebssystem neu installieren. Wenn Sie es tun, machen Sie ein Backup)
yuis@yuis:/etc/apt$ sudo rm sources.list.d/docker.list*
Aktualisieren Sie die Listendateien.
sudo apt update
Wenn es geklappt hat, sollte der Fehler nicht mehr erscheinen.
Übrigens, wenn sich das Repository in sources.list befindet und Sie nicht die gesamte Datei löschen können, können Sie die Zeilennummer basierend auf der Ausgabe von ag löschen.
sudo sed -Ei '59s/.*//' sources.list sources.list.save
The repository ’…’ does not have a Release file. | DigitalOcean