시작 스크립트의 일부로 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-https
및 libapt-pkg4.12
기타 필요한 항목입니다. (결국 둘 다 업그레이드해야 할 수도 있습니다 apt
.)
답변3
apt 패키지를 다운로드하기 위한 URL이 포함된 폴더에 텍스트 파일이 많이 있습니다./etc/apt/
이러한 텍스트 파일의 이름 예는 다음과 같습니다. /etc/apt/sources.list.d/mssql-release.list
Microsoft 서버에서 패키지를 설치하려는 경우.
그 내용은 /etc/apt/sources.list.d/mssql-release.list
다음과 같습니다:
deb [arch=amd64] https://packages.microsoft.com/debian/8/prod jessie main
때때로 파일 내용이 *.list
HTTP 대신 HTTPS를 통해 다운로드되지만, 패키지가 설치되어 있지 않으면 apt-transport-https
apt-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