Câu hỏi Cách khắc phục “W: Mục nhập danh sách nguồn trùng lặp”?


Tôi tiếp tục nhận được cảnh báo này bất cứ khi nào tôi cố gắng chạy sudo apt-get update.

W: Duplicate sources.list entry http://archive.ubuntu.com/ubuntu/ precise-updates/main i386 Packages (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_precise-updates_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

Dưới đây là đầu ra từ /etc/apt/sources.list tập tin:

deb http://archive.ubuntu.com/ubuntu precise main restricted
deb-src http://archive.ubuntu.com/ubuntu precise main restricted

deb http://archive.ubuntu.com/ubuntu precise-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-updates main restricted

deb http://archive.ubuntu.com/ubuntu precise universe
deb-src http://archive.ubuntu.com/ubuntu precise universe
deb http://archive.ubuntu.com/ubuntu precise-updates universe
deb-src http://archive.ubuntu.com/ubuntu precise-updates universe

deb http://archive.ubuntu.com/ubuntu precise multiverse
deb-src http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-updates multiverse

deb http://archive.ubuntu.com/ubuntu precise-security main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-security main restricted
deb http://archive.ubuntu.com/ubuntu precise-security universe
deb-src http://archive.ubuntu.com/ubuntu precise-security universe
deb http://archive.ubuntu.com/ubuntu precise-security multiverse
deb-src http://archive.ubuntu.com/ubuntu precise-security multiverse

Làm thế nào để tôi sửa chữa nó?


186
2018-04-10 06:31


gốc




Các câu trả lời:


Sources.list của bạn thực sự có các mục trùng lặp.

Đầu tiên Hãy xem hình thức chính xác của một dòng kho hoặc dòng nguồn:

Định dạng đúng của dòng nguồn lưu trữ là

<type of repository>  <location>  <dist-name> <components> 

Ví dụ, một dòng repo có thể như thế này

  deb http://archive.ubuntu.com/ubuntu precise main

Ở đây, nó có nghĩa là, kho lưu trữ dành cho các gói nhị phân, được lưu trữ trong http://archive.ubuntu.com/ubuntu và kho lưu trữ này dành cho Ubuntu chính xác (12.04) và kho lưu trữ này chứa thành phần chính (phần mềm được chính thức hỗ trợ bởi Canonical).

  • Kiểu: Loại có thể deb và deb-src. deb có nghĩa là một kho lưu trữ nhị phân, deb-src có nghĩa là một kho lưu trữ nguồn

  • Vị trí:  http://archive.ubuntu.com/ubuntu vị trí của kho lưu trữ.

  • Tên địa phương: Tên phân phối của bản phát hành Ubuntu. Đối với Ubuntu 12.04 nó là precise, cho 11,10 nó là oneiric.
    Bạn có thể truy cập Ubuntu Wiki để xem cập nhật danh sách các bản phát hành Ubuntu và tên mã của chúng.

  • Thành phần: Nó có thể main, universe, multiverse và restricted. Những từ này cho biết mức độ hỗ trợ cho các gói và trạng thái cấp phép.

Xem trang này để biết thêm thông tin.

Xin lưu ý rằng, bạn có thể thêm một hoặc nhiều thành phần trong một dòng, do đó, "chính", "vũ trụ", "bị hạn chế" và "đa vũ trụ" có thể nằm trong một dòng. Cũng lưu ý, Mặc dù bạn thêm nhiều hơn một thành phần trong một dòng, hệ thống APT coi chúng là một dòng riêng biệt chỉ chứa một thành phần.

Vì vậy, nếu bạn sources.list có một dòng như thế này

deb http://archive.ubuntu.com/ubuntu precise universe

Sau đó, nó không thể có một dòng khác như dưới đây (mà các tập tin của bạn có)

deb http://archive.ubuntu.com/ubuntu precise main universe

tương đương với hai dòng này

deb http://archive.ubuntu.com/ubuntu precise main
deb http://archive.ubuntu.com/ubuntu precise universe

Bởi vì, bạn đang nhân bản vũ trụ hai lần, do đó sẽ có lỗi cho bản sao đó. Một lỗi sẽ được cung cấp cho mỗi bản sao được tìm thấy.

Dung dịch:

Sau khi phân tích sources.list file, tôi thấy rằng, nó là một cái cơ bản được cung cấp bởi Ubuntu theo mặc định. Bạn có thể xây dựng một tệp mặc định sau thủ tục:

  1. Mở một thiết bị đầu cuối và đổi tên đầu tiên sources.list tập tin để sources.list.bak tập tin. (chúng tôi có thể loại bỏ điều đó một cách an toàn, nhưng thận trọng là tốt).

     sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
  2. Sau đó mở software-properties-gtk để xây dựng một cái mới. Gõ lệnh dưới đây vào terminal hoặc dấu nhắc lệnh dấu gạch ngang với cách nhấn Alt+F2

    software-properties-gtk
    

    Lưu ý, đối với phiên bản Ubuntu 11.10 hoặc cũ hơn, bạn phải sử dụng gksu trước software-properties-gtk chỉ huy

  3. Sau khi cửa sổ mở ra,

    • Chọn tất cả bốn danh mục trong Phần mềm Ubuntu chuyển hướng
    • Lựa chọn bảo mật chính xác, cập nhật chính xác và chính xác-backports thể loại trong Cập nhật chuyển hướng.
    • Lựa chọn Đối tác Canonical và Độc lập danh mục từ Phần mềm khác chuyển hướng.

Đó là nó. Bây giờ bạn có một mặc định sources.listtệp không có lỗi. So sánh tệp này với tệp trước đó, nếu bạn muốn.


Cập nhật để xử lý sources.list.d tệp của dir

Đôi khi một mục trùng lặp có thể nằm trong một tệp trong /etc/apt/sources.list.d thư mục, cũng được sử dụng bởi APT. Vì vậy, bạn nên nhìn vào thư mục đó và xem liệu có bất kỳ bản sao nào trong các tệp đó hay không. Nó không phải là cần thiết cho các bản sao trong cùng một tập tin.

Ví dụ:

Người dùng có thông báo lỗi này hiển thị khi đang thực hiện sudo apt-get update.

W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages)
W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main i386 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems

Nhưng không có mục nhập với http://dl.google.com trong chính /etc/apt/sources.list tập tin. Hãy nhìn vào /etc/apt/sources.list.d/ chúng tôi tìm thấy các tệp này:

đầu ra của ls /etc/apt/sources.list.d/:

aims-sagemath-precise.list
aims-sagemath-precise.list.save
dropbox.list
dropbox.list.save
fossfreedom-packagefixes-precise.list
fossfreedom-packagefixes-precise.list.save
google-chrome.list
google-chrome.list.save
google.list
google.list.save
sagemath-monolithic-precise.list
sagemath-monolithic-precise.list.save

Tập tài liệu google-chrome.list và google.list là những ứng cử viên tốt cho việc chứa bản sao. Vì vậy, việc kiểm tra nội dung của cả hai tệp là cần thiết.

Đầu ra của cat /etc/apt/sources.list.d/google-chrome.list:

deb http://dl.google.com/linux/chrome/deb/ stable main  

và của cat /etc/apt/sources.list.d/google.list

deb http://dl.google.com/linux/chrome/deb/ stable main

Vì vậy, có một mục trùng lặp trong các nguồn của Apt. Vì google-chrome.list chỉ chứa một dòng apt và nó cũng được liệt kê trong google.list chúng tôi có thể xóa tệp này một cách an toàn bằng lệnh

sudo rm /etc/apt/sources.list.d/google-chrome.list

Sau đó, vấn đề đã được giải quyết.


225
2017-09-05 17:33



+1 Đây là một câu trả lời tuyệt vời. Đã khắc phục sự cố và giải thích đầy đủ lý do tại sao nó xảy ra. - akmad
Tôi đã làm gì để tạo ra các mục trùng lặp trong sources.list.d của mình? - Seanny123
Cảm ơn nhiều. Tôi đã tự hỏi giờ làm thế nào trùng lặp xảy ra. Cuối cùng, bạn đã hiển thị sources.list.d - Isura Manchanayake
Câu trả lời tốt đẹp và kỹ lưỡng. Trong của bạn Cập nhật để xử lý tệp sources.list.d dir bạn giải thích đó là các tập tin / dòng cho các bản sao. Bạn có thể giải thích tương tự mà là 6 cặp dòng (kể từ khi bạn nói "tập tin của bạn có 6 bản sao có") trong OP cung cấp cho bản sao? - sancho.s
Gợi ý để kiểm tra sources.list.d của tôi là điều đã giúp tôi giải quyết vấn đề này. - lcarsos


Đối với Ubuntu 12.04 

Đồ họa:

nhấn Alt + F2 và dán software-properties-gtk (hoặc bạn có thể mở "Trung tâm phần mềm", sau đó đi tới "Chỉnh sửa"> "Nguồn phần mềm"). Chuyển đến tab "Phần mềm khác", chọn mục nhập trùng lặp và nhấn nút "Xóa".

enter image description here


Nếu bạn cần một tùy chọn dòng lệnh, ở đây là:

cat /etc/apt/sources.list | perl -ne '$H{$_}++ or print' > /tmp/sources.list && sudo mv /tmp/sources.list /etc/apt/sources.list  

Lệnh này thực hiện điều này:

cat đọc tệp và chuyển nội dung đến perl loại bỏ các dòng trùng lặp. Kết quả sau đó được lưu > trong một tệp tạm thời, sau đó được di chuyển để thay thế tệp gốc /etc/apt/sources.list tập tin.


77
2018-05-04 22:27



Kịch bản của bạn hoạt động hoàn hảo. - Lucio
Chỉ cần làm thế nào để sửa chữa nó, mà không có sự nhầm lẫn và tất cả các chi tiết quá sâu. Cảm ơn bạn! - P.M
Nó thực sự hiệu quả! Không thể, vì một số lý do, cài đặt git trên một 12.04 hoặc. Thay vì xóa, tôi chỉ kiểm tra "đối tác Canonical" trùng lặp rõ ràng. - davidkonrad
Tôi chạy một lớp lót, nhưng sudo apt-get update vẫn than phiền về các mục trùng lặp như thể không có gì thay đổi. Nếu nó quan trọng, tôi vào ngày 12.04 (đặc biệt, hệ điều hành cơ bản Luna). - waldyrious
Các cat là vô ích và ngăn bạn sử dụng sudo perl -i - tripleee


Các mục trùng lặp trong sources.list có hại đến mức nào?

Tôi không biết nó xấu đến mức nào, nhưng tôi không thích sudo apt-get update hiển thị cho tôi các mục trùng lặp.

Bằng cách này nó không phải là xấu, nó chỉ cho bạn thấy rằng bạn có mục trùng lặp.

SourcesList

Tệp sources.list là một yếu tố quan trọng trong việc thêm hoặc nâng cấp các ứng dụng vào cài đặt Ubuntu của bạn. Điều này cũng được hệ thống của bạn sử dụng để cập nhật hệ thống. Các tập tin về cơ bản là lộ trình cho hệ thống của bạn để biết nơi nó có thể tải về các chương trình để cài đặt hoặc nâng cấp.

Nó giống như bản cập nhật Windows

Bạn có thể xóa các mục trùng lặp trong vài bước dễ dàng bằng Y PPA Manager

 sudo add-apt-repository ppa:webupd8team/y-ppa-manager -y
 sudo apt-get update
 sudo apt-get install y-ppa-manager -y

Mở y-ppa-manager hình thức Dấu gạch ngang

Nhập mật khẩu quản trị viên của bạn

enter image description here

Nhấp đúp vào nâng cao

enter image description here

Quét & loại bỏ trùng lặp PPA & bấm Ok

enter image description here

Nó sẽ mất một thời gian (1 hoặc 2 Mints) để quét và loại bỏ trùng lặp của PPA


22
2018-05-08 05:36



Trong trường hợp của tôi, Y PPA tiếp tục nói rằng không tìm thấy bản sao nào. Tôi đã tạo bản sao lưu của source.list đã xóa nó và chạy sudo apt-get update để tạo lại danh sách nguồn (ubuntu 12.04). Điều này làm việc cho tôi. - michel.iamit
Làm việc cho tôi trên Mint 17, cảm ơn người đàn ông! - spences10
Làm việc cho tôi trên ubuntu 14.04..Cảm ơn bạn thân .. :) - Rahul Singh
làm việc như người ở - vector
Trong trường hợp của tôi ngày 14.04, nó tiếp tục nói Không tìm thấy trùng lặp nào - Muhammad Omer Aslam


Kho lưu trữ đối tác được sao chép bên trong /etc/apt/sources.list và /etc/apt/sources.list.d/precise-partner.list.

Chỉ cần xóa các tệp "đối tác chính xác" đó làm kho lưu trữ đối tác đã có mặt trong sources.list.

sudo rm /etc/apt/sources.list.d/precise-partner.*

16
2017-09-01 19:20



tôi nhận được rm: cannot remove '/etc/apt/sources.list.d/precise-partner.*': No such file or directory - Dennis
Thử sudo rm /etc/apt/sources.list.d/*partner*. Ngoài ra, hãy kiểm tra /etc/apt/sources.list của bạn, tìm dòng trùng lặp. - Eric Carvalho
Không may mắn, tôi không có bất kỳ tệp nào có "đối tác" trong tên trong thư mục đó. Và /etc/apt/sources.list không chứa bất kỳ bản sao nào theo uniq. - Dennis


Tạo bản sao lưu của sources.list của bạn:

sudo cp /etc/apt/sources.list{,.backup}

Bây giờ xóa bản gốc và cập nhật:

sudo rm /etc/apt/sources.list && sudo apt-get update

10
2017-07-04 05:16



Làm sao anh ta có thể cập nhật mà không sources.list tập tin? - Anwar
Nó sẽ trở lại. =) - wojox
@ wojox Nó hoạt động, cảm ơn. - quantme
tôi đã không hồi sinh - conman253
Hoàn nguyên về bản sao bạn đã sao lưu - wojox


Tôi đã có cùng một vấn đề, mở các nguồn phần mềm. không được chọn "Đối tác Canonical". Xung đột giữa "Đối tác Canonical" và "Đối tác Canonical Được thêm bởi Trung tâm phần mềm"


8
2018-04-11 05:11





Nếu bạn không thể tìm ra nó trong source.list, sau đó thực hiện việc này:

  1. Nhấp chuột trái vào biểu tượng cài đặt (ở góc trên cùng của màn hình) và chọn Cài đặt hệ thống.
  2. Nhấp vào Nguồn phần mềm và chuyển sang Phần mềm khác.
  3. Bỏ chọn một trong các phần mềm Canonical Partners (Source Code) được Canonical đóng gói cho các tệp của đối tác của họ và một trong các 'Canonical Partners -oftware được đóng gói bởi Canonical cho các tệp của đối tác của họ và nhấp vào Đóng để thoát.
  4. Nhấn đồng thời CTRL + ALT + T chìa khóa để mở thiết bị đầu cuối và loại sudo apt-get update.

7
2018-04-11 06:15



Tôi đã làm theo đề xuất của bạn, nhưng tôi vẫn nhận được lỗi này. - hsinxh
Vui lòng đăng hình ảnh của 'Nguồn phần mềm' của bạn ở đây để biết thủ phạm. - all4naija
Vui lòng đăng hình ảnh của 'Phần mềm khác' của bạn tại đây. - all4naija


Dành cho Ubuntu 9.10 - 12.04

Có một ứng dụng được gọi là Y-PPA-Manager có thể làm điều đó và nhiều hơn nữa.

Bạn có thể cài đặt nó như thế từ Terminal:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get upgrade
sudo apt-get install y-ppa-manager

Sau đó, chỉ cần khởi động ứng dụng, vào menu Advanced.

enter image description here

Sau đó chọn "Quét và loại bỏ PPA trùng lặp" và nhấn OK.

enter image description here


5
2018-05-06 13:25



Đó là công cụ tuyệt vời nhưng nó không khắc phục được sự cố. Tôi đã lựa chọn này và sau đó có cùng cảnh báo. - nazar_art