Como corrigir o erro “apt-get install -f apt-transport-https”: 404 não encontrado?

3

Temos um par de VMs gerenciadas com balanceamento de carga que instalam o apt-transport-https como parte de um script de inicialização.

No entanto, recentemente, os servidores entraram em estado de erro porque na inicialização eles não podiam mais baixar a versão do pacote necessário (1.0.9.8.3) porque ela não está mais presente no espelho: link

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?

Tentar a sugestão de --fix-missing não ajuda.

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

Em seguida, baixei manualmente a versão superior do bug apt-transport-https (1.0.9.8.4). Não consegui instalá-lo diretamente devido a uma dependência da libapt-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.

Alguém pode me ajudar a resolver esse problema? É tão simples quanto atualizar o libapt-pkg4.12? Se sim, como faço para isso?

EDIT : Também não consigo executar apt-get update ... porque não tenho apt-transport-https instalado. Que eu acho que eles chamam de Catch-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?

É assim que meu /etc/apt/sources.list se parece:

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

Obrigado antecipadamente

    
por Richard Corfield 20.01.2017 / 17:18

3 respostas

4

Parece que consertei o problema ao criar um link simbólico para o https dir em /usr/lib/apt/methods para o http dir.

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

Como na verdade eu não tenho nenhuma fonte https:// configurada, parece inofensiva e quando apt-get install apt-transport-https é executado, ela sobrescreve o link simbólico com os arquivos corretos.

    
por 20.01.2017 / 18:12
5

A solução geral é atualizar os índices de apt para saber quais versões estão disponíveis:

apt-get update

Em seguida, instalar apt-transport-https encontrará as versões apropriadas nos repositórios.

Você deve fazer isso toda vez que quiser instalar um novo pacote, a menos que tenha feito isso recentemente (normalmente no último dia).

Se você não puder executar apt-get update porque precisa de apt-transport-https , poderá consertar as coisas (temporariamente) trocando as URLs https:// para http:// in /etc/apt/sources.list (e talvez arquivos em /etc/apt/sources.list.d ) . Usar HTTP para baixar pacotes não reduz sua segurança, apenas reduz sua confidencialidade (os sistemas entre o seu computador e os repositórios podem ver quais pacotes você está recuperando).

Se isso não funcionar, você pode tentar escolher um espelho específico, que deve evitar redirecionamentos para URLs HTTPS; olhe para a lista , escolha um espelho perto de você e use isso em vez de httpredir.debian.org em suas fontes.

Em seu caso específico, pode ser mais simples baixar manualmente os pacotes necessários (e enviá-los juntamente com seus scripts de configuração para que eles continuem funcionando): apt-transport-https , libapt-pkg4.12 e o que for necessário. (Você pode acabar precisando atualizar apt ao mesmo tempo.)

    
por 20.01.2017 / 17:26
-1

Você pode executar o seguinte comando:

apt-get update && apt-get -y install apt-transport-https curl
    
por 22.11.2018 / 13:22