Bagaimana saya bisa memperbaiki kesalahan apt "W: Paket Target ... dikonfigurasi beberapa kali"?

128

Saya baru saja menginstal Ubuntu Gnome 16.04. Saya mengatakannya untuk menyimpan dokumen saya - yang berhasil. Beberapa perangkat lunak harus diinstal ulang. Sekarang ketika saya menjalankan sudo apt-get updatesaya melihat ini:

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

Apakah ada cara otomatis untuk memperbaikinya?

Tim
sumber

Jawaban:

161

Solusi terkini dan terkini

Saya menulis skrip Python untuk mengotomatiskan tugas ini. Anda dapat menemukan versi terbaru di sini .

Instalasi:

  1. Instal prasyarat:

    sudo apt install python3-apt
    
  2. Unduh bundel ZIP ( aptsources-cleanup.zip) dari rilis terbaru .

Pemakaian:

  1. Dari lokasi unduhan bundel ZIP (lihat langkah 2 di atas) jalankan:

    sudo python3 -OEs aptsources-cleanup.zip
    
  2. Ikuti instruksi yang muncul di layar.

Jika Anda ingin melaporkan masalah , meninggalkan komentar, atau bercabang-cabang dengan kode sumber, silakan lakukan di GitHub .


Solusi historis dan ketinggalan jaman

Ini adalah versi yang lebih lama, lebih pendek dan lebih sederhana yang lebih cocok untuk kutipan inline:

#!/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.')

Tidak memerlukan parameter dan berfungsi /etc/apt/sources.list*dengan bantuan python3-aptpaket. Garis tidak harus duplikat persis (bahkan setelah normalisasi) tetapi cukup jika jenis, URI, suite dan setidaknya satu komponen tumpang tindih.

Saya tidak yakin tes kesetaraan benar dalam semua kasus sudut (misalnya berbagai string "opsi").

David Foerster
sumber
Dari terminal Anda dapat mengunduhnya dengan perintah wget " github.com/davidfoerster/aptsources-cleanup/releases/download/… "
Sami
@Sami: Saat ini ya, tapi itu tidak akan menunjuk ke rilis terbaru lagi ketika saya membuat rilis lain.
David Foerster
pengguna ubuntu 18.04: bekerja seperti pesona. Terima kasih sobat.
Ali
osboxes @ osboxes: /etc/apt/sources.list.d$ sudo python3 -OEs aptsources-cleanup.zip python3: tidak dapat membuka file 'aptsources-cleanup.zip': [Errno 2] Tidak ada file atau direktori tersebut
Toolkit
@Toolkit: Saya merevisi petunjuk penggunaan. Harap baca dan coba lagi. Maaf karena kurang jelas.
David Foerster
80

Bagi saya (16,04 LTS) akan

Pengaturan sistem >> Perangkat Lunak dan Pembaruan >> Perangkat Lunak Lain dan menghapus setiap entri duplikat dari daftar berfungsi dengan baik.

pelajar
sumber
6
Saya meminta metode otomatis.
Tim
17
ini adalah solusi yang lebih baik daripada membaca skrip python3 asing sebelum menjalankannya ... bekerja dengan sempurna
Max
2
Bisakah Anda menghapus "duplikat" yang memiliki tipe berbeda? Misalnya saya punya http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial maindan http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main (source code). Apakah menyimpan untuk menghapus (kode sumber) satu (yang ini tidak dicentang juga, yang bertentangan dengan yang lain)?
Deruijter
1
@Tim benar tapi itu mungkin bukan alasan kebanyakan orang datang ke pertanyaan ini
Joel Berkeley
2
@Deruijter Yang mengatakan "kode sumber" tidak dianggap duplikat dari yang lain. Namun, Anda tidak perlu yang mengatakan "kode sumber" kecuali Anda ingin mengunduh kode sumber untuk beberapa paket untuk dikompilasi sendiri.
mchid
31

Setel ulang repositori Anda seperti ini

  1. sudo rm /etc/apt/sources.list
  2. sudo software-properties-gtk
  3. Pilih opsi Anda
  4. Menyimpan

(PS Saya memiliki masalah yang sama hari ini setelah memperbarui Ubuntu 15.10 ke Ubuntu 16.04.)

Andrew
sumber
Berhati-hatilah bahwa Anda hanya harus melakukan ini setelah Anda memeriksa & memastikan bahwa Anda benar-benar telah software-properties-gtkmenginstal pada sistem Anda. Jangan tanya saya apa yang membuat saya menulis ini.
Miloš Đakonović
5

Karena kesalahan memberi tahu Anda di mana masalahnya, dan bahwa semua masalah disebabkan oleh satu baris duplikat, Anda dapat dengan mudah memperbaikinya secara manual dengan editor teks seperti vim, nano, dll. Salah satu manfaatnya adalah Anda dapat melihat dengan tepat apa masalahnya dan apa yang Anda lakukan untuk memperbaikinya.

Dalam kasus Anda, dengan sudo atau sebagai root, buka /etc/apt/sources.list dalam editor teks. Hapus baris 33 atau baris 87. Anda dapat secara visual memeriksa apakah itu duplikat terlebih dahulu.

Jika Anda suka 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

Atau, untuk keluar jika Anda membuat kesalahan ...

:q!             # to quit without saving any changes
mungkin
sumber
4

Untuk sistem berbasis Ubuntu dengan Linux mint, pergi ke Sumber Perangkat Lunak> Pemeliharaan> Hapus paket Duplikat

Mario Olivio Flores
sumber
melakukan itu saya tidak mendapatkan duplikat ditemukan, tetapi masih melihat kesalahan yang sama
cipricus