"apt-get install -f apt-transport-https" 오류 수정 방법: 404 찾을 수 없음?

"apt-get install -f apt-transport-https" 오류 수정 방법: 404 찾을 수 없음?

시작 스크립트의 일부로 apt-transport-https를 설치하는 부하 분산 호스팅 VM 쌍이 있습니다.

그러나 최근 서버는 시작 시 미러에 더 이상 존재하지 않기 때문에 필요한 패키지 버전(1.0.9.8.3)을 더 이상 다운로드할 수 없기 때문에 오류 상태가 되었습니다.http://httpredir.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?

내가 시도한 제안은 --fix-missing도움이 되지 않았습니다.

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

다음으로 apt-transport-https(1.0.9.8.4)의 상위 버전을 수동으로 다운로드했지만 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.

누구든지 이 문제를 해결하도록 도와줄 수 있나요? libapt-pkg4.12를 업그레이드하는 것만큼 간단합니까? 그렇다면 어떻게 해야 합니까?

편집하다: 아직 설치 apt-get update하지 않았기 때문에 실행할 수 없습니다 . apt-transport-https나는 그들이 그것을 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?

/etc/apt/sources.list모습은 이렇습니다.

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

미리 감사드립니다

답변1

https디렉토리를 디렉토리 /usr/lib/apt/methods에 심볼릭 링크 하여 http문제를 해결한 것 같습니다.

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

실제로 소스를 구성하지 않았기 때문에 https://무해해 보이지만 apt-get install apt-transport-https런타임에는 실제로 심볼릭 링크를 올바른 파일로 덮어씁니다.

답변2

일반적인 해결책은 apt사용 가능한 버전을 알 수 있도록 인덱스를 업데이트하는 것입니다.

apt-get update

그러면 설치 시 apt-transport-https저장소에서 적절한 버전을 찾습니다.

최근(보통 마지막 날)에 설치하지 않은 경우를 제외하고 새 패키지를 설치할 때마다 이 작업을 수행해야 합니다.

apt-get update필요해서 실행할 수 없는 경우 (일시적으로) URL을 in (또는 in 의 파일 ) 로 전환하여 apt-transport-https문제를 해결할 수 있습니다 . HTTP를 사용하여 패키지를 다운로드하면 보안이 저하되지 않고 기밀만 저하됩니다(컴퓨터와 저장소 사이의 시스템에서 검색 중인 패키지를 확인할 수 있음).https://http:///etc/apt/sources.list/etc/apt/sources.list.d

만약에저것작동하지 않습니다. 특정 미러를 선택해 보세요. 이렇게 하면 HTTPS URL로의 리디렉션을 피할 수 있습니다.목록httpredir.debian.org, 소스가 아닌 가까운 미러를 선택하여 사용하세요 .

특정 경우에는 필요한 패키지를 수동으로 다운로드하는 것이 더 간단할 수 있습니다(계속 작동하도록 설치 스크립트와 함께 패키지를 보냅니다). apt-transport-httpslibapt-pkg4.12기타 필요한 항목입니다. (결국 둘 다 업그레이드해야 할 수도 있습니다 apt.)

답변3

apt 패키지를 다운로드하기 위한 URL이 포함된 폴더에 텍스트 파일이 많이 있습니다./etc/apt/

이러한 텍스트 파일의 이름 예는 다음과 같습니다. /etc/apt/sources.list.d/mssql-release.listMicrosoft 서버에서 패키지를 설치하려는 경우.

그 내용은 /etc/apt/sources.list.d/mssql-release.list다음과 같습니다:

deb [arch=amd64] https://packages.microsoft.com/debian/8/prod jessie main

때때로 파일 내용이 *.listHTTP 대신 HTTPS를 통해 다운로드되지만, 패키지가 설치되어 있지 않으면 apt-transport-httpsapt-get 패키지 관리자를 업데이트할 수 없습니다. HTTPS 소스를 사용할 수 없다는 경고가 지속적으로 표시됩니다.

그런 다음 HTTPS 링크를 사용하여 문제의 파일을 찾아 *.list이름을 바꾸는 것입니다. 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 그러면 수행하려는 모든 apt-get 작업을 진행할 수 있습니다.

이 답변에 도달하기 위한 참고 자료 https://community.c9.io/t/installing-apt-transport-https-issue/10994/10

답변4

다음 명령을 실행할 수 있습니다.

apt-get update && apt-get -y install apt-transport-https curl

관련 정보