为PPA分配更高的优先级


13

我试图弄清楚如何为一个PPA分配比另一个PPA更高的优先级。我在这个论坛上看了一堆答案,但是没有一个能解决我的问题。

我们的某些服务器上有两个PPA源,我们将它们粘贴到单独的文件中/etc/apt/sources.list.d。这些存储库中的某些提供相同的软件包(就名称而言),但是提供不同的版本以及可能不同的二进制文件。有没有一种方法可以使一个仓库优先于另一个仓库?

我阅读了apt_preferences教程,但它晦涩难懂,没有找到我的问题的答案。这是情况。我们有以下来源:

$ ls -l /etc/apt/sources.list.d 
total 12
-rw-r--r-- 1 root root 66 Jan  2 16:50 nginx-source.list
-rw-r--r-- 1 root root 84 Jan  2 16:49 ruby-ng-experimental-source.list

nginx-source.list内容在哪里:

deb     http://ppa.launchpad.net/nginx/stable/ubuntu precise main

ruby-ng-experimental-source.list内容是:

deb     http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu precise main

这两个资源都提供了不同版本的nginx-full包等。当我列出优先级ruby-ng-experimental-source.list在输出的顶部时,因此从该存储库安装了nginx-full:

$ apt-cache policy nginx-full                                 
nginx-full:
  Installed: 1:1.2.3-1~38~precise1
  Candidate: 1:1.2.6-1~43~precise1
  Version table:
     1:1.2.6-1~43~precise1 0
        500 http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu/ precise/main amd64 Packages
 *** 1:1.2.3-1~38~precise1 0
        100 /var/lib/dpkg/status
     1.4.1-1ppa0~precise 0
        500 http://ppa.launchpad.net/nginx/stable/ubuntu/ precise/main amd64 Packages
     1.1.19-1ubuntu0.1 0
        500 http://mirror.rackspace.co.uk/ubuntu/ precise-updates/universe amd64 Packages
     1.1.19-1 0
        500 http://mirror.rackspace.co.uk/ubuntu/ precise/universe amd64 Packages

我如何优先于nginx-source.list中列出的回购优先于现在列表顶部的回购?我尝试过这样的事情:

$ cat /etc/apt/preferences
Package: nginx-full
Pin: origin http://ppa.launchpad.net/nginx/stable/ubuntu
Pin-Priority: 1000

Package: nginx-full
Pin: origin http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu
Pin-Priority: 100

但这将两个来源的优先级更改为相同的数字-或类似的数字?因此,这并没有改变优先级,并且仍从Brightbox PPA安装了nginx-full

$ apt-cache policy nginx-full  
nginx-full:
  Installed: 1:1.2.3-1~38~precise1
  Candidate: 1:1.2.6-1~43~precise1
  Package pin: (not found)
  Version table:
     1:1.2.6-1~43~precise1 1000
        500 http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu/ precise/main amd64 Packages
 *** 1:1.2.3-1~38~precise1 1000
        100 /var/lib/dpkg/status
     1.4.1-1ppa0~precise 1000
        500 http://ppa.launchpad.net/nginx/stable/ubuntu/ precise/main amd64 Packages
     1.1.19-1ubuntu0.1 1000
        500 http://mirror.rackspace.co.uk/ubuntu/ precise-updates/universe amd64 Packages
     1.1.19-1 1000
        500 http://mirror.rackspace.co.uk/ubuntu/ precise/universe amd64 Packages

任何人都知道如何实现我的目标吗?

Answers:


15

这是一个例子 /etc/apt/preferences

mint@mint ~ $ cat /etc/apt/preferences
Package: *
Pin: release o=linuxmint
Pin-Priority: 700

Package: *
Pin: origin packages.linuxmint.com
Pin-Priority: 700

Package: *
Pin: release o=Ubuntu
Pin-Priority: 500

您可能必须apt-get update在创建文件后运行。


尽管/etc/apt/preferences.d/存在,但/ etc / apt / preferences在13.04上不存在,但是它是一个空目录。
另一个用户

1
文件不是存货,您只能创建它
GM-Script-Writer-62850

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.