J'ai une installation 16.04 très récente (installée il y a seulement quelques semaines). Aujourd'hui, quand j'essaie de
$ Sudo apt update
$ Sudo apt install openssh-server
Je suis accueilli avec
The following NEW packages will be installed
ncurses-term openssh-server openssh-sftp-server ssh-import-id
0 to upgrade, 4 to newly install, 0 to remove and 2 not to upgrade.
Need to get 373 kB/633 kB of archives.
After this operation, 5,136 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Err:1 http://gb.archive.ubuntu.com/ubuntu xenial-updates/main AMD64 openssh-sftp-server AMD64 1:7.2p2-4ubuntu2.5
404 Not Found [IP: 91.189.88.152 80]
Err:2 http://gb.archive.ubuntu.com/ubuntu xenial-updates/main AMD64 openssh-server AMD64 1:7.2p2-4ubuntu2.5
404 Not Found [IP: 91.189.88.152 80]
E: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-sftp-server_7.2p2-4ubuntu2.5_AMD64.deb 404 Not Found [IP: 91.189.88.152 80]
E: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-server_7.2p2-4ubuntu2.5_AMD64.deb 404 Not Found [IP: 91.189.88.152 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Alors évidemment, j'ai essayé Sudo apt update --fix-missing
, qui n'a rien changé.
Clairement, mon système recherche une version du package qui n'existe plus ou un administrateur de serveur a supprimé quelque chose qu'ils n'auraient pas dû. Mon argent est sur l'ancien.
Quelqu'un at-il une idée de la façon dont je pourrais déboguer ou résoudre ce problème? J'aimerais m'attaquer à la cause fondamentale plutôt que de simplement disposer d'une solution de contournement pour openssh.
La seule différence importante sur mon système, qui peut avoir un impact sur les choses, est que j'ai un kit de développement logiciel NVIDIA qui, entre autres, ajoute l'architecture arm64
à apt afin de pouvoir télécharger certains packages pour la compilation croisée. J'utilise un système AMD64
(et non arm64
). Cela signifie que lorsque je apt update
, je reçois un tas d'erreurs relatives aux référentiels qui ne portent pas de paquets arm64, comme ceci:
E: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/xenial/main/binary-arm64/Packages 404 Not Found [IP: 91.189.88.162 80]
Ce n'est pas un problème (et je pense que c'est un mal nécessaire de travailler avec ce SDK). Je ne le mentionne que parce que cela pourrait avoir une incidence sur mon problème actuel.
Modifier:
La cause première du problème est liée à cela , mais le problème lui-même est différent.
Nous remercions @muru des commentaires et cette réponse .
Le problème racine:
apt ignorera toute source si une erreur survient lors de la mise à jour de sa liste de sources, même si cette erreur provient d’une architecture différente (et étrangère). Par conséquent, ajouter une architecture étrangère sans , puis restreindre les architectures pour toutes les sources de votre référentiel apt existantes les empêchera de se mettre à jour.
Pour référence future la solution, au moins pour ce cas:
Exécutez Sudo apt update
et notez les sources qui échouent. Vous cherchez des lignes comme
Err:19 http://security.ubuntu.com/ubuntu xenial-security/main arm64 Packages
404 Not Found [IP: 91.189.88.161 80]
Ouvrez /etc/apt/sources.list
pour le modifier dans votre éditeur de texte favori, par exemple. Sudo nano /etc/apt/sources.list
.
Pour chaque ligne 1) non commentée (ne commençant pas par #
) et si 2) correspond à l'une des lignes d'erreur que vous avez notées précédemment, ajoutez [Arch=AMD64,i386]
entre deb
et le URL Donc, pour l'exemple précédent,
deb [Arch=AMD64,i386] http://security.ubuntu.com/ubuntu xenial-security main restricted
Répétez ces étapes jusqu'à ce que Sudo apt update
s'exécute sans vous plaindre de l'absence de référentiels arm64
.