您如何告诉apt使用/etc/apt/sources.list.d中的文件


16

我通过将文件放入

 /etc/apt/sources.list.d 

然后我做了一个

 apt-get update.  

但是它对该仓库没有任何作用。然后,我注意到它似乎未在该目录中包含任何存储库。apt-get似乎只注意到/etc/apt/sources.list中的内容。目录中的所有文件都以.list结尾,并且包含以下内容:

 virtualbox.list

      deb http://download.virtualbox.org/virtualbox/debian oneiric contrib

 pj-assis-ppa-oneiric.list

      deb http://ppa.launchpad.net/pj-assis/ppa/ubuntu oneiric main
      deb-src http://ppa.launchpad.net/pj-assis/ppa/ubuntu oneiric main

我是否需要在/etc/apt/sources.list中放入某种include语句?

我正在使用kubuntu 11.10。


1
您可以使用来转储当前的apt配置apt-config dump。应该有一行这样写Dir::Etc::sourceparts "sources.list.d";。也许这有助于进一步调查。
phoibos 2012年

你做apt-get update还是sudo apt-get update?您如何注意到或确认未启用该存储库?
安瓦尔2012年

只需将行复制到中即可/etc/apt/sources.list
绿色的

所以问题似乎是我从一个普通的apt仓库中安装了一个软件包,我希望它使用新的仓库中的一个版本进行更新。显然这是不可能的。我必须卸载有问题的软件包,然后在注释掉所有常规存储库的情况下进行安装。我仍然不确定为什么当您执行apt-get更新时,这些新存储库都没有显示其URL。
Jistanidiot

Answers:


11

如果/etc/sources.list.d要将文件名.list包含为软件源,则文件名必须以结尾。

正如sources.list手册页所述

描述

   The package resource list is used to locate archives of the package
   distribution system in use on the system. At this time, this manual
   page documents only the packaging system used by the Debian GNU/Linux
   system. This control file is /etc/apt/sources.list.

   The source list is designed to support any number of active sources and
   a variety of source media. The file lists one source per line, with the
   most preferred source listed first. The format of each line is: type
   uri args The first item, type determines the format for args.  uri is a
   Universal Resource Identifier (URI), which is a superset of the more
   specific and well-known Universal Resource Locator, or URL. The rest of
   the line can be marked as a comment by using a #.

来源清单D

   The /etc/apt/sources.list.d directory provides a way to add
   sources.list entries in separate files. The format is the same as for
   the regular sources.list file. File names need to end with .list and
   may only contain letters (a-z and A-Z), digits (0-9), underscore (_),
   hyphen (-) and period (.) characters. Otherwise APT will print a notice
   that it has ignored a file if the file doesn't match a pattern in the
   Dir::Ignore-Files-Silently configuration list - in this case it will be
   silently ignored.

以此页面为例,假设您想安装Chef(从opscode),您将要做的是:

  • 创建并打开一个名为的文件opscode.list
    须藤vim /etc/apt/sources.list.d/opscode.list
  • 添加所需的行并保存文件:
    deb http://apt.opscode.com/ oneiric main

上述步骤可以组合成一个命令:

sudo /bin/sh -c 'echo "deb http://apt.opscode.com/ onereic main" > /etc/apt/sources.list.d/opscode.list'

注意:该命令onereic之所以包含,是因为您使用的Ubuntu的代号是Onereic。如果您一直在使用Precise(12.04),您将有writter precise


5
你看过OP吗?他做了所有这些步骤。
1

他没有指定添加的文件。
绿色的

1
他确实给出了两个名字(virtualbox.list和另一个)
1

3

所以问题似乎是我从一个普通的apt仓库中安装了一个软件包,我希望它使用新的仓库中的一个版本进行更新。显然这是不可能的。我必须卸载有问题的软件包,然后在注释掉所有常规存储库的情况下进行安装。我仍然不确定为什么当您执行apt-get更新时,这些新存储库都没有显示其URL。


1
您不会回答自己的问题。您在此处所做的操作不是很清楚,与您的问题无关,可能应该通过apt pinning完成。
约翰内斯

3
我只能告诉你,这解决了我提出问题时遇到的问题。另一个“答案”显然没有读我的问题,完全没有用。这对我有用。我不知道它是否对其他人也有用。我认为这是ubuntu 11中的某个错误,导致它不使用其他存储库中的更新包。在ubuntu 12或13中似乎不是问题
。– Jistanidiot
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.