적절한 오류“W : 대상 패키지…가 여러 번 구성되었습니다”를 어떻게 수정합니까?


127

방금 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. 화면에 나타나는 지시를 따르십시오.


과거의 오래된 솔루션

인라인 견적에 더 적합한 더 오래되고 더 짧고 간단한 버전입니다.

#!/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, 스위트 및 하나 이상의 구성 요소가 겹치는 경우 충분합니다.

모든 코너에서 평등 테스트가 올바른지 확신하지 못합니다 (예 : 다양한“옵션”문자열). GitHub에 의견과 포크 남겨주세요 .


터미널에서 wget " github.com/davidfoerster/aptsources-cleanup/releases/download/… " 명령으로 다운로드 할 수 있습니다
Sami

@Sami : 그렇습니다.하지만 다른 릴리스를 만들 때 더 이상 최신 릴리스를 가리 키지 않습니다.
David Foerster

우분투 18.04 사용자 : 매력처럼 작동합니다. 고마워요
알리

osboxes @ osboxes : /etc/apt/sources.list.d$ sudo python3 -OEs aptsources-cleanup.zip python3 : 'aptsources-cleanup.zip'파일을 열 수 없습니다 : [Errno 2] 해당 파일 또는 디렉토리가 없습니다
툴킷

@ 툴킷 : 사용 지침을 개정했습니다. 읽어보고 다시 시도하십시오. 명확성이 부족하여 죄송합니다.
David Foerster

79

나를 위해 (16.04 LTS)

시스템 설정 >> 소프트웨어 및 업데이트 >> 기타 소프트웨어 및 목록에서 각 중복 항목을 제거하면 정상적으로 작동했습니다.


6
자동화 된 방법을 요청하고있었습니다.
Tim

17
이 그것을 실행하기 전에 외국 python3 스크립트를 읽어보다 더 나은 솔루션입니다 ... 완벽하게 작동
최대

2
다른 유형의 "중복"을 삭제할 수 있습니까? 예를 들어 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial mainhttp://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main (source code). (소스 코드) 를 제거하기 위해 저장 됩니까? (이것은 다른 것과 대조적으로 확인되지 않습니다)?
Deruijter

1
@Tim 사실이지만 아마도 대부분의 사람들이이 질문에 나오는 이유는 아닙니다
Joel Berkeley

2
@Deruijter "소스 코드"라고 표시된 것은 다른 것과 중복되지 않습니다. 그러나 일부 패키지의 소스 코드를 다운로드하여 직접 컴파일하지 않는 한 "소스 코드"라는 코드가 필요하지 않습니다.
mchid

31

이처럼 리포지토리를 재설정하십시오.

  1. sudo rm /etc/apt/sources.list
  2. sudo software-properties-gtk
  3. 옵션을 선택하십시오
  4. 저장하기

(PS 우분투 15.10을 우분투 16.04로 업데이트 한 후 오늘 같은 문제가 발생했습니다.)


software-properties-gtk시스템에 실제로 설치되어 있는지 확인하고 확인한 후에 만이 작업을 수행 해야합니다. 이 글을 쓰게 된 이유를 묻지 마십시오.
Miloš Đakonović

5

오류가 문제의 위치를 ​​알려주고 모든 문제가 단일 중복 행으로 인한 것이므로 vim, nano 등과 같은 텍스트 편집기를 사용하여이 문제를 수동으로 쉽게 수정할 수 있습니다. 이것의 장점 중 하나는 정확하게 볼 수 있다는 것입니다 문제가 무엇인지, 그리고 문제를 해결하기 위해 무엇을하고 있는지.

귀하의 경우 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 mint가 설치된 Ubuntu 기반 시스템의 경우 소프트웨어 소스> 유지 관리> 중복 패키지 제거 로 이동 하십시오.


내가 중복이 발견되지 얻을하고 있지만, 여전히 같은 오류를 참조
cipricus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.