web-dev-qa-db-ja.com

「apt-get install -f apt-transport-https」エラーを修正する方法:404 Not Found?

起動スクリプトの一部として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のアップグレードと同じくらい簡単ですか?もしそうなら、どうすればいいですか?

[〜#〜] edit [〜#〜]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

前もって感謝します

5

/usr/lib/apt/methodshttpsディレクトリを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を実行すると、正しいファイルでシンボリックリンクが上書きされます。

12

一般的な解決策は、aptのインデックスを更新して、利用可能なバージョンを認識させることです。

__コード__

次に、apt-get update をインストールすると、リポジトリに適切なバージョンが見つかります。

最近(通常は最終日以内に)行っていない限り、新しいパッケージをインストールするたびにこれを行う必要があります。

apt-transport-httpsapt-get updateを必要とするために実行できない場合は、(一時的に)apt-transport-httpshttps://http://(および/etc/apt/sources.listのファイル)を(一時的に)/etc/apt/sources.list.dに切り替えることで修正できます。 HTTPを使用してパッケージをダウンロードしても、セキュリティは低下しません。機密性が低下するだけです(コンピューターとリポジトリの間のシステムは、取得しているパッケージを確認できます)。

thatが機能しない場合は、特定のミラーを選択してみてください。これにより、HTTPS URLへのリダイレクトが回避されます。 list を見て、近くにあるミラーを選択し、ソースでhttpredir.debian.orgの代わりにそれを使用します。

特定のケースでは、apt-transport-httpslibapt-pkg4.12などの必要なパッケージを、手動でダウンロードして、セットアップスクリプトと一緒に出荷する方が簡単な場合があります。 (あなたは同時にaptをアップグレードする必要があるかもしれません。)

7
Stephen Kitt

フォルダ/etc/apt/内にaptパッケージをダウンロードするためのURLを含むテキストファイルがたくさんあります

これらのテキストファイルの名前の例:/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/1

1
XValidated