问题描述
我正在运行 12.04 Precise beta(从 11.10 Oneiric 升级),我在 /etc/apt/source.list 中添加了以下行:
deb http://http.us.debian.org/debian unstable main contrib non-free
为了获得我需要但在精确存储库中不可用的更新版本的软件包(octave 3.6)。
这工作得很好,但是现在当我想升级时,有大量的包需要更新。我认为这是因为 sid 的许多软件包的版本比精确的要新。
我暂时禁用了 sid 存储库,这工作正常 – 但是我很想知道如果我允许所有这些升级通过会发生什么?它会破坏我的系统吗? Ubuntu Precise 和 Debian Sid 存储库的结构在某种程度上是否存在根本不同?
最佳方法
您将两个不同发行版的软件包混合在一起。由于各种原因,这是一个坏主意:
-
安全。
-
稳定。
-
您现在拥有的冲突更新。
-
如果你让上面的更新通过,你会遇到前两个问题,然后如果说,例如内核更新,你就会陷入困境!
此外,这使得获得准确的错误报告或堆栈跟踪几乎是不可能的,如果不是完全不可能的话。
简而言之,如果您需要 Debian sid,请运行 sid。否则,运行 Ubuntu,然后通过 PPA 或 backports 添加您想要的更新软件。
更多解释在这里:
次佳方法
如果您需要一个当前在您的 ubuntu 版本中不可用的包,这可能是必要的。
我的建议是使用 apt-pin 。
我用以下内容创建了 /etc/apt/preferences.d/unstable
Package: *
Pin: release v=12.04, l=Ubuntu
Pin-Priority: 1000
Package: *
Pin: release a=unstable
Pin-Priority: 600
这确保了基本分配始终优先。如果包不可用,则选择不稳定的。
第三种方法
如果你这样做,它最初似乎可以工作。这意味着您在 Ubuntu 自定义/更改内容之前获得了软件包。
使用其中的一部分和另一部分的一部分会剥夺双方解决问题的很多能力。 Debian 用户将无法为您提供太多帮助,因为您的大部分发行版都是 Ubuntu。 Ubuntu 用户将无法为您提供太多帮助,因为您的某些发行版是 Debian。
如果您尝试将包放入 ppa/repo 中,这是一件很棒的事情。分布广泛,在我看来这可能不是一个好主意。