我怎样才能使 apt-pin 稳定?

我怎样才能使 apt-pin 稳定?

安装后不久我改变了主意,对于这个特定的系统,我更愿意使用稳定版而不是测试版。不幸的是,我目前有旧测试版的软件包。我需要强制降级才能让它们回到紧缩轨道,同时保留一两个(加上依赖项)的测试版本。遗憾的是我的首选项文件与其他文件无法很好地兼容。我尝试了 、 等的许多变version n=version a=

bash# cat /etc/apt/preferences.d/pinstable
Package: *
Pin: release a=testing
Pin-Priority: -10

Package: *
Pin: release a=stable
Pin-Priority: 1010

我已将默认版本设置为稳定版本:

bash# cat /etc/apt/preferences.d/apt.conf.d/99release
APT::Default-Release "stable";

下面是一个使用具有几个可能版本的随机包的示例:

bash# apt-cache policy libapache2-mod-php5
libapache2-mod-php5:
  Installed: 5.3.6-13
  Candidate: 5.3.6-13
  Version table:
     5.3.9-1 0
        -10 http://mirror.rit.edu/debian/ testing/main i386 Packages
 *** 5.3.6-13 0
        100 /var/lib/dpkg/status
     5.3.3-7+squeeze7 0
        990 http://security.debian.org/ squeeze/updates/main i386 Packages
     5.3.3-7+squeeze3 0
        990 http://mirror.rit.edu/debian/ squeeze/main i386 Packages

为什么压缩版本的优先级不是 1010?

答案1

这里的问题是您的/etc/apt/apt.conf.d/99release文件。

人 5 apt_preferences

   If the target release has been specified then APT uses the following
   algorithm to set the priorities of the versions of a package. Assign:

   priority 990
       to the versions that are not installed and belong to the target
       release.

似乎 APT 中提到的明确版本将覆盖任何 pin 设置。我设置了一个测试系统,使用类似的99release文件和pinstable文件,我看到的值与 apt-cache 中的完全相同。但如果我删除该99release文件,就会得到这个。

# apt-cache policy libapache2-mod-php5
libapache2-mod-php5:
  Installed: (none)
  Candidate: 5.3.3-7+squeeze8
  Version table:
     5.3.3-7+squeeze8 0
       1010 http://security.debian.org/ squeeze/updates/main amd64 Packages
     5.3.3-7+squeeze3 0
       1010 http://ftp.us.debian.org/debian/ squeeze/main amd64 Packages

相关内容