web-dev-qa-db-ja.com

sudo apt-get update failed-「permission denied」によりリストファイルを「開けませんでした」

先週以上、Sudo apt-get updateを実行するとエラーになります:

Reading package lists... Done
E: Failed to fetch http://au.archive.ubuntu.com/ubuntu/dists/xenial/main/dep11/Components-AMD64.yml  
Could not open file /var/lib/apt/lists/partial/au.archive.ubuntu.com_ubuntu_dists_xenial_main_dep11_Components-AMD64.yml.gz - open (13: Permission denied) [IP: 202.158.214.106 80]
E: Failed to fetch http://au.archive.ubuntu.com/ubuntu/dists/xenial-backports/main/dep11/icons-64x64.tar  Could not open file /var/lib/apt/lists/partial/au.archive.ubuntu.com_ubuntu_dists_xenial-backports_main_dep11_icons-64x64.tar.gz - open (13: Permission denied) [IP: 202.158.214.106 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.

指定した2つのURLのいずれかをブラウザーのアドレスバーに入力すると、「ファイルが見つかりません」(404)エラーが発生しますが、.gzを両方のアドレスに追加すると、それぞれのファイルをダウンロードできます。

ただし、2つのファイルをダウンロードしたので、それらをどのように(または使用できるか)知りません。

最善の方法に関するアドバイスを求めています。

25
sisyphus

そのディレクトリの内容は部分的にダウンロードされたリスト(おそらくAPTが中断された?)であり、安全に削除できます。

ルートシェルを起動します。システムにあらゆる種類の損害を与える権限があることを認識しているため、注意してください(Sudo rmがエラーになるため、これを行う必要があります)

Sudo -i

ディレクトリの内容を削除し(慎重に入力して)、ルートシェルを終了します。

rm /var/lib/apt/lists/partial/*
exit  

次に、APTアップデートを実行してパッケージリストを再生成し、問題がなくなったことを確認します。

Sudo apt update
39
Zanna

@ Zanna answer に最も近いソリューションですが、APTリストフォルダーから部分ファイルを削除する前に、最初に古いAPTリストフォルダーをバックアップとして保存します。

最初のクリーンAPT

Sudo apt-get clean

バックアップAPTリストフォルダーを作成する

Sudo cp -r /var/lib/apt/lists /var/lib/apt/lists.old

APTリストフォルダーから部分的なフォルダーを削除します

Sudo rm -rf /var/lib/apt/lists/partial/

次に、APTを削除して更新します

Sudo apt-get clean
Sudo apt-get update

buntu form post からのソース

1
ahmed hamdy