「W:ターゲットパッケージ...が複数回構成されています」というaptエラーを修正するにはどうすればよいですか?


128

Ubuntu Gnome 16.04をインストールしました。文書を保存するように指示しましたが、うまくいきました。一部のソフトウェアを再インストールする必要がありました。今実行するsudo apt-get updateと、これが表示されます:

W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (main/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (main/i18n/Translation-en_GB) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (main/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11 (main/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11-icons (main/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (restricted/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (restricted/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (restricted/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (restricted/i18n/Translation-en_GB) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (restricted/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11 (restricted/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11-icons (restricted/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (multiverse/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (multiverse/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (multiverse/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (multiverse/i18n/Translation-en_GB) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (multiverse/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11 (multiverse/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11-icons (multiverse/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: The repository 'http://extras.ubuntu.com/ubuntu xenial Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg: Signature by key 4CCA1EAF950CEE4AB83976DCA040830F7FAC5991 uses weak digest algorithm (SHA1)
W: http://repo.sinew.in/dists/stable/InRelease: Signature by key B6DA722E2E65721AF54B93966F7565879798C2FC uses weak digest algorithm (SHA1)
E: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/xenial/main/source/Sources  404  Not Found [IP: 91.189.92.152 80]
E: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/xenial/main/binary-amd64/Packages  404  Not Found [IP: 91.189.92.152 80]
E: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/xenial/main/binary-i386/Packages  404  Not Found [IP: 91.189.92.152 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.
W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (main/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (main/i18n/Translation-en_GB) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (main/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11 (main/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11-icons (main/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (restricted/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (restricted/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (restricted/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (restricted/i18n/Translation-en_GB) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (restricted/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11 (restricted/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11-icons (restricted/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (multiverse/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (multiverse/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Packages (multiverse/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (multiverse/i18n/Translation-en_GB) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target Translations (multiverse/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11 (multiverse/dep11/Components-amd64.yml) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87
W: Target DEP-11-icons (multiverse/dep11/icons-64x64.tar) is configured multiple times in /etc/apt/sources.list:33 and /etc/apt/sources.list:87

これを修正する自動化された方法はありますか?

回答:


161

最新の最新ソリューション

このタスクを自動化するPythonスクリプトを作成しました。最新バージョンはこちらで見つけることができます。

インストール:

  1. 前提条件をインストールします。

    sudo apt install python3-apt
    
  2. 最新のリリースから ZIPバンドル(aptsources-cleanup.zip)をダウンロードしてください。

使用法:

  1. ZIPバンドルのダウンロード場所(上記の手順2を参照)から実行します。

    sudo python3 -OEs aptsources-cleanup.zip
    
  2. 画面に表示される指示に従います。

問題報告したり、コメントを残したり、ソースコードをフォークしたい場合は、GitHubで行っください。


歴史的で時代遅れのソリューション

これは、インライン引用に適した、より古く、短く、シンプルなバージョンです。

#!/usr/bin/env python3
"""
Detects and interactively deactivates duplicate Apt source entries.

Usage: sudo python3 apt-remove-duplicate-source-entries.py
"""

from __future__ import print_function
import aptsources.sourceslist

EMPTY_COMPONENT_LIST = (None,)

def get_duplicates(sourceslist):
    """
    Detects and returns duplicate Apt source entries.
    """

    sentry_map = dict()
    duplicates = list()
    for se in sourceslist.list:
        if not se.invalid and not se.disabled:
            for c in (se.comps or EMPTY_COMPONENT_LIST):
                key = (se.type, se.uri, se.dist, c)
                previous_se = sentry_map.setdefault(key, se)
                if previous_se is not se:
                    duplicates.append((se, previous_se))
                    break

    return duplicates


if __name__ == '__main__':
    try:
        input = raw_input
    except NameError:
        pass

    sourceslist = aptsources.sourceslist.SourcesList(False)
    duplicates = get_duplicates(sourceslist)

    if duplicates:
        for dupe, orig in duplicates:
            print(
                'Overlapping source entries:\n'
                '  1. {0}: {1}\n'
                '  2. {2}: {3}\n'
                'I disabled the latter entry.'.format(
                    orig.file, orig, dupe.file, dupe),
                end='\n\n')
            dupe.disabled = True

        print('\n{0} source entries were disabled:'.format(len(duplicates)),
            *[dupe for dupe, orig in duplicates], sep='\n  ', end='\n\n')
        if input('Do you want to save these changes? (y/N) ').upper() == 'Y':
            sourceslist.save()

    else:
        print('No duplicated entries were found.')

パラメーターは必要なく/etc/apt/sources.list*python3-aptパッケージの助けを借りてすべてに機能します。行は完全に重複している必要はありませんが(正規化後でも)、タイプ、URI、スイート、および少なくとも1つのコンポーネントが重複していれば十分です。

すべてのコーナーケースで等式テストが正しいかどうかはわかりません(たとえば、さまざまな「オプション」文字列)。


ターミナルからは、コマンドwget " github.com/davidfoerster/aptsources-cleanup/releases/download/… "でダウンロードできます
Sami

@Sami:現時点ではそうですが、別のリリースを作成しても、最新リリースを指すことはありません。
デビッドフォースター

ubuntu 18.04ユーザー:チャームのように機能します。ありがとう。
アリ

osboxes @ osboxes:/etc/apt/sources.list.d$ sudo python3 -OEs aptsources-cleanup.zip python3:ファイル「aptsources-cleanup.zip」を開けない:[Errno 2]そのようなファイルまたはディレクトリはありません
ツールキット

@Toolkit:使用説明書を改訂しました。それらを読んでもう一度試してください。明快さの欠如で申し訳ありません。
デビッドフォースター

80

私(16.04 LTS)に行く

システム設定>>ソフトウェアと更新>>その他のソフトウェア、およびリストから各重複エントリを削除することは問題なく機能しました。


6
自動化された方法を要求していました。
ティム

17
これは完全に働いた...それを実行する前に、外国のpython3スクリプトを読んでより良いソリューションです
マックス

2
タイプが異なる「重複」を削除できますか?たとえば、とがhttp://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial mainありhttp://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main (source code)ます。(ソースコード)の 1つ(他の1つとは対照的に、この1つもチェックされませんを削除しても大丈夫ですか?
-Deruijter

1
@ティムは本当ですが、それはおそらくほとんどの人がこの質問に来る理由ではないでしょう
ジョエル・バークレー

2
@Deruijter「ソースコード」と言うものは、他のものの複製とは見なされません。ただし、一部のパッケージのソースコードをダウンロードして独自にコンパイルする場合を除き、「ソースコード」と表示されるものは必要ありません。
mchid

31

このようにリポジトリをリセットします

  1. sudo rm /etc/apt/sources.list
  2. sudo software-properties-gtk
  3. オプションを選択してください
  4. セーブ

(PS Ubuntu 15.10をUbuntu 16.04にアップデートした後、今日同じ問題が発生しました。)


実際にsoftware-properties-gtkシステムにインストールしたことを確認して確認した後にのみ、これを行う必要があることに注意してください。これを書いたきっかけを聞かないでください。
ミロシュチャコノヴィッチ

5

エラーは問題の場所を示し、すべての問題は単一の重複行によるものであるため、vim、nanoなどのテキストエディターを使用して手動で簡単に修正できます。この利点の1つは、正確に確認できることです問題が何であり、それを修正するために何をしているのか。

あなたの場合、sudoで、またはrootとして、テキストエディターで/etc/apt/sources.listを開きます。33行目または87行目を削除します。最初にそれらが重複していることを視覚的に確認できます。

vimが好きなら...

$ sudo vim /etc/apt/sources.list
33 [Shift]+g    # to goto line 33
87 [Shift]+g    # to goto line 87, don't need a duplicate of line 33
dd              # to delete the line you're on
:wq             # to write the file and quit

または、間違えた場合に抜け出すために...

:q!             # to quit without saving any changes

4

Linuxミントを使用したUbuntuベースのシステムの場合は、[ソフトウェアソース]> [メンテナンス]> [重複パッケージの削除]に移動します


それを行うと重複が見つかりませんが、同じエラーが表示されます
cipricus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.