web-dev-qa-db-fra.com

Comment corriger l'erreur "apt-get install -f apt-transport-https": 404 non trouvé?

Nous avons une paire de VMS gérée par équilibre équilibrée qui installent APT-Transport-HTTPS dans le cadre d'un script de démarrage.

Cependant, les serveurs ont récemment entré dans un état d'erreur car lors du démarrage, ils ne pourraient plus télécharger la version du package requis (1.0.9.8.3) car il n'est plus présent sur le miroir: http: // httpédir. Debian.org/debian/pool/main/a/apt

root@validator-dev-group-c2v4:/etc# apt-get install -f apt-transport-https
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  apt-transport-https
0 upgraded, 1 newly installed, 0 to remove and 27 not upgraded.
Need to get 138 kB of archives.
After this operation, 195 kB of additional disk space will be used.
Err http://httpredir.debian.org/debian/ jessie/main apt-transport-https AMD64 1.0.9.8.3
  404  Not Found
E: Failed to fetch http://httpredir.debian.org/debian/pool/main/a/apt/apt-transport-https_1.0.9.8.3_AMD64.deb  404  Not Found
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Essayer la suggestion de --fix-missing n'aide pas.

root@validator-dev-group-c2v4:/etc# apt-get install --fix-missing apt-transport-https
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  apt-transport-https
0 upgraded, 1 newly installed, 0 to remove and 27 not upgraded.
Need to get 138 kB of archives.
After this operation, 195 kB of additional disk space will be used.
Err http://httpredir.debian.org/debian/ jessie/main apt-transport-https AMD64 1.0.9.8.3
  404  Not Found
E: Failed to fetch http://httpredir.debian.org/debian/pool/main/a/apt/apt-transport-https_1.0.9.8.3_AMD64.deb  404  Not Found
E: Internal Error, ordering was unable to handle the media swap

Ensuite, je téléchargeai manuellement la version la plus élevée de APT-Transport-HTTPS (1.0.9.8.4) BOGI, je n'ai pas pu l'installer directement en raison d'une dépendance à la libaptation-pkg4.12.

root@validator-dev-group-c2v4:/home/<user># Sudo dpkg -i ./apt-transport-https_1.0.9.8.4_AMD64.deb 
Selecting previously unselected package apt-transport-https.
(Reading database ... 26719 files and directories currently installed.)
Preparing to unpack .../apt-transport-https_1.0.9.8.4_AMD64.deb ...
Unpacking apt-transport-https (1.0.9.8.4) ...
dpkg: dependency problems prevent configuration of apt-transport-https:
 apt-transport-https depends on libapt-pkg4.12 (>= 1.0.9.8.4); however:
  Version of libapt-pkg4.12:AMD64 on system is 1.0.9.8.3.

Quelqu'un peut-il m'aider à résoudre ce problème? Est-ce aussi simple que la mise à niveau de libaptation-pkg4.12? Si oui, comment puis-je y aller?

[~ # ~] éditer [~ # ~] : aussi je suis incapable de courir apt-get update ... parce que je n'ai pas apt-transport-https installée. Ce que je pense qu'ils appellent attraper-22!

root@validator-dev-group-c2v4:/home/<user># apt-get update
E: The method driver /usr/lib/apt/methods/https could not be found.
N: Is the package apt-transport-https installed?

C'est ce que mes /etc/apt/sources.list ressemble à:

deb http://httpredir.debian.org/debian/ jessie main
deb-src http://httpredir.debian.org/debian/ jessie main
deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main
deb http://httpredir.debian.org/debian/ jessie-updates main
deb-src http://httpredir.debian.org/debian/ jessie-updates main

Merci d'avance

5
Richard Corfield

Je semble avoir corrigé le problème en liant le Dir https dans /usr/lib/apt/methods à la Dir http.

root@validator-dev-group-c2v4:~# cd /usr/lib/apt/methods
root@validator-dev-group-c2v4:/usr/lib/apt/methods# ln -s http https

Puisque je n'ai pas réellement d'https:// Sources configurées, il semble inoffensif et alors quand apt-get install apt-transport-https La fonctionne effectivement écrase le symbolique avec les fichiers corrects.

12
Richard Corfield

La solution générale consiste à mettre à jour les index des apt de sorte qu'il sache quelles versions sont disponibles:

apt-get update

Puis installant apt-transport-https trouvera les versions appropriées sur les référentiels.

Vous devriez le faire à chaque fois que vous souhaitez installer un nouveau paquet, à moins que vous ne l'ayez pas fait récemment (dans le dernier jour typiquement).

Si vous ne pouvez pas courir apt-get update parce qu'il a besoin apt-transport-https, vous pouvez réparer les choses par (temporairement) commuter votre https:// URL à http:// dans /etc/apt/sources.list (et peut-être des fichiers dans /etc/apt/sources.list.d). L'utilisation de packages HTTP pour télécharger ne réduit pas votre sécurité, elle ne réduit que votre confidentialité (les systèmes entre votre ordinateur et les référentiels peuvent voir quels packages vous récupérent).

Si que ne fonctionne pas, vous pouvez essayer de choisir un miroir spécifique, ce qui devrait éviter toutes les redirections aux URL HTTPS; Regardez le liste , choisissez un miroir près de vous et utilisez-le au lieu de httpredir.debian.org Dans vos sources.

Dans votre cas spécifique, il pourrait bien être plus simple de télécharger manuellement les packages requis (et de les expédier à côté de vos scripts de configuration afin qu'ils continuent de travailler): apt-transport-https, libapt-pkg4.12 et tout ce qui est nécessaire. (Vous pouvez finir par avoir besoin de mettre à niveau apt en même temps.)

7
Stephen Kitt

Il existe un tas de fichiers texte contenant l'URL pour télécharger des packages apt dans le dossier /etc/apt/

Un exemple de nom pour ces fichiers texte peut être: /etc/apt/sources.list.d/mssql-release.list Si vous essayez d'installer des packages à partir d'un serveur Microsoft.

Et le contenu de /etc/apt/sources.list.d/mssql-release.list pourrait être :

deb [Arch=AMD64] https://packages.Microsoft.com/debian/8/prod jessie main

Parfois, le contenu de *.list Les fichiers sont téléchargés via https au lieu de http mais si vous n'avez pas installé le package apt-transport-https, vous ne seriez pas en mesure de mettre à jour votre gestionnaire de paquets APT-GET. Il vous empêchera de ne pas pouvoir utiliser les sources HTTPS.

Ce que vous pouvez faire alors est de localiser l'incroyable *.list Fichier (s) avec les liens HTTPS et le renommer: Sudo mv /etc/apt/sources.list.d/mssql-release.list /etc/apt/sources.list.d/mssql-release.list1 Sudo apt-get update Sudo apt-get install -y apt-transport-https Sudo mv /etc/apt/sources.list.d/mssql-release.list1 /etc/apt/sources.list.d/mssql-release.list Sudo apt-get update Ensuite, vous devriez être capable de procéder à toutes les opérations APT-GET que vous souhaitez effectuer.

Référence pour venir avec cette réponse https://community.c9.io/t/installing-apt-transport-https-issue/10994/1

1
XValidated