如何修复“W:重复的 sources.list 条目”?

如何修复“W:重复的 sources.list 条目”?

每当我尝试运行时我都会收到此警告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

以下是文件的输出/etc/apt/sources.list

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

我如何解决它?

答案1

您的 sources.list 确实有重复的条目。

首先让我们看看存储库行或源代码行的正确格式:

存储库源代码行的正确格式是

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

例如,repo 行可以像这样

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

这里的意思是,存储库用于二进制包,托管在http://archive.ubuntu.com/ubuntu这个存储库适用于 Ubuntu precise (12.04),并且该存储库包含主要(Canonical 官方支持的软件)组件。

  • 类型:类型可以是debdeb-srcdeb表示二进制存储库,deb-src表示源存储库

  • 地点: http://archive.ubuntu.com/ubuntu存储库的位置。

  • 地区名称:Ubuntu 版本的发行版名称。Ubuntu 12.04 为precise,Ubuntu 11.10 为oneiric
    您可以访问 Ubuntu Wiki 查看更新Ubuntu 版本及其代号列表

  • 成分:可以是main、、universe和。这些词表示对软件包multiverserestricted支持级别和许可状态。

这一页了解更多信息。

请注意,您可以在一行中添加一个或多个组件,因此“main”、“universe”、“restricted”和“multiverse”可以在一行中。另请注意,尽管您在一行中添加了多个组件,但 APT 系统会将它们视为仅包含一个组件的单独行。

所以,如果你sources.list有这样的一行

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

那么它就不能有另一行像下面这样(你的文件有)

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

相当于这两行

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

因为,你正在复制宇宙两次,因此该重复项将出现错误。每次发现重复项都会出现错误。

解决方案:

分析完你的sources.list文件后,我发现这是一个基本的文件,是 Ubuntu 默认提供的。你可以按照以下步骤构建一个默认文件:

  1. 打开终端并首先将现有sources.list文件重命名为sources.list.bak文件。(我们可以安全地删除它,但最好小心谨慎)。

     sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
  2. 然后打开software-properties-gtk以构建一个新的。在终端或 dash 命令提示符中输入以下命令并按Alt+F2

    software-properties-gtk
    

    注意,对于 Ubuntu 11.10 或更早版本,你必须在命令gksu前使用software-properties-gtk

  3. 窗户打开后,

    • 选择所有四个类别Ubuntu 软件标签
    • 选择 精确安全精确更新精确反向移植类别更新标签。
    • 选择规范合作伙伴独立的类别来自其他软件标签。

就是这样。现在您有一个sources.list没有错误的默认文件。如果需要,可以将该文件与前一个文件进行比较。


更新以处理sources.list.d目录的文件

有时,重复条目可能位于目录中的文件中/etc/apt/sources.list.d,而 APT 也会使用该目录。因此,您应该查看该目录并查看这些文件中是否有重复条目。重复条目不一定位于同一个文件中。

示例案例:

用户在执行时显示此错误消息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

http://dl.google.com但主文件中没有条目/etc/apt/sources.list。查看/etc/apt/sources.list.d/目录我们发现了这些文件:

输出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

文件google-chrome.listgoogle.list很可能包含重复项。因此,有必要检查这两个文件的内容。

输出cat /etc/apt/sources.list.d/google-chrome.list

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

cat /etc/apt/sources.list.d/google.list

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

因此,Apt 源中存在重复条目。由于google-chrome.list仅包含一行 apt,并且它也列在google.list文件中,因此我们可以使用以下命令安全地删除此文件

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

那么问题就解决了。

答案2

对于 Ubuntu 12.04

图形显示:

Alt+F2并粘贴software-properties-gtk(或者您可以打开“软件中心”,然后转到“编辑”>“软件源”)。转到“其他软件”选项卡,选择重复的条目并按“删除”按钮。

在此处输入图片描述


如果您需要命令行选项,这里是:

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

该命令执行以下操作:

cat读取文件并将内容传递给perl删除重复行的程序。然后将结果保存>在临时文件中,然后移动该文件以替换原始/etc/apt/sources.list文件。

答案3

sources.list 中的重复条目有多严重?

我不知道这有多糟糕,但我不喜欢sudo apt-get 更新显示重复的条目。

顺便说一句,情况并没有那么糟糕,它只是显示你有重复的条目。

来源列表

sources.list 文件是向 Ubuntu 安装添加或升级应用程序的关键因素。系统也会使用它进行系统更新。该文件基本上是系统路线图,可让系统知道在哪里可以下载程序进行安装或升级。

就像 Windows 更新一样

您可以通过几个简单的步骤删除重复的条目Y PPA 经理

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

打开y-ppa-经理形式短跑

输入您的管理员密码

在此处输入图片描述

双击高级

在此处输入图片描述

扫描并删除重复的 PPA 并点击确定

在此处输入图片描述

扫描并删除重复的 PPA 需要一些时间(1 到 2 分钟)

答案4

备份你的 sources.list:

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

现在删除原始版本并更新:

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

相关内容