当两个软件包有非常相似的版本号时,apt 固定

当两个软件包有非常相似的版本号时,apt 固定

我有一个precise安装,但我也从quantal和获取软件包raring。我的问题出在linux-image-*软件包上。

我想运行 3.5 内核,并跟踪我想要的该系列中的最新内核linux-image-genericquantal它想要安装linux-image-3.5.0-xx-genericlinux-image-extra-3.5.0-xx-generic。到目前为止一切顺利。

我的问题是precise-updates 包含一个linux-image-3.5.0-xx-generic具有相同版本号的版本,并添加了一个~precise1。这个版本与不兼容,因为和linux-image-extras-3.5.0-xx-generic中的包布局不同——将模块拆分为一个主包和一个包,但在只有一个大的主包。precisequantalquantal-extrasprecise

现在,我尝试quantal用这些行固定内核:

Package: linux-image-3.5*
Pin: release n=quantal
Pin-Priority: 600

Package: linux-image-generic
Pin: release n=quantal
Pin-Priority: 600

我以为这样可以解决问题,例如优先考虑而不是quantal。但实际上,固定似乎最终解析为版本,而不是档案( 似乎只是选择版本号的过滤器),并且这两个版本在某种意义上被视为同一版本。最后,它总是偏爱错误的软件包。3.5.0-21.32precise3.5.0-21.32~precise1Pin

$ apt-cache policy linux-image-3.5.0-21-generic
linux-image-3.5.0-21-generic:
  Installed: (none)
  Candidate: 3.5.0-21.32~precise1
  Package pin: 3.5.0-21.32
  Version table:
     3.5.0-21.32 600
        500 http://hk.archive.ubuntu.com/ubuntu/ quantal-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ quantal-security/main amd64 Packages
     3.5.0-21.32~precise1 600
        990 http://hk.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        990 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages

即使提供了特定Pinprecise并将其设置为,比如说-1precise包也会“劫持”quantal包的固定。

我猜对了造成这种混乱的原因了吗?有什么方法可以解决这个问题吗?还是我每次都必须逐字指定apt-get install linux-image-3.5.0-21-generic/quantal*,就像我现在这样来解决这个问题?这使得元包的使用变得有点无用,仅仅是手动安装的查找机制。

当然,precise-updates从等式中删除是可行的,但我更愿意继续指定档案。

* 为什么这个可以工作,而固定却不行?我以为它们都使用了相同的机制——临时为特定版本/blah设置优先级。很奇怪。990

答案1

看来最好的解决方法是运行apt-get -t quantal install linux-image-generic-t优先级设置似乎与固定首选项的工作方式不同,并且正确地选择quantal了 版本precise

相关内容