如何在运行“稳定” Debian的计算机上从“不稳定” Debian安装一些软件包?


14

在运行“稳定” Debian的计算机上,当尝试使用aptitude install <package>/unstable命令安装Debian网站不稳定列表中的软件包时,我得到类似以下的输出:

Couldn't find any package whose name or description matched "<package>"
Couldn't find any package whose name or description matched "<package>"
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

我应该怎么做才能安装“不稳定”的软件包?(我想将存储库添加到中sources.list,但我不希望所有内容都从“不稳定”开始安装)。

因此:如何安装不稳定的软件包(/stable在软件包名称末尾使用)?


有关此问题的深入解答,请参见unix.stackexchange.com/q/112157/4671
Faheem Mitha 2014年

1
简短版:不。较长的版本:请勿执行此操作。如有必要,请使用反向端口,但不要混用稳定/不稳定的端口。
Shadur

我相信这被称为“ FrankenDebian”:“ Debian Stable不应与其他发行版结合使用。如果您要安装当前Debian Stable发行版中不提供的软件,则不宜添加用于以下版本的存储库其他Debian发行版。问题可能不会立即发生,而是在您下次安装更新时发生。” 从不要破坏Debian
马兰

Answers:


29

您确实需要在中unstable列出sources.list。否则,apt只会找不到包。

为避免unstable引入软件包,您有两种方法。

  • 简单的方法是在或(例如)下的文件中添加Default-Release子句。/etc/apt/apt.conf/etc/apt/apt.conf.d//etc/apt/apt.conf.d/my-default-release

    APT::Default-Release "stable";
    
  • 困难的方法是使用APT首选项。在/etc/apt/preferences

    Package: *
    Pin: release o=Debian,a=unstable
    Pin-Priority: 10
    

请注意,在Debian版本的整个生命周期的大部分时间里,从不稳定的系统上安装大多数软件包都是不切实际的,因为它们会从不稳定的系统中引入很多库,最终您将得到一个不稳定的系统。如果您要运行不稳定,则可以省去仅针对不稳定(或测试)的麻烦。最好坚持一个发行版,或者如果您感到胆怯,请偶尔进行测试。当然,在生产系统上,要保持稳定。

如果您运行稳定,但需要一个应用程序的较新版本,请首先查看它们是否存在反向端口。否则,如果要从不稳定的环境安装软件包,而不必获取其依赖关系,请尝试从不稳定的环境获取源代码并重新编译。

apt-get source foo=1.42
apt-get build-dep foo  # pulls the dependencies of foo in stable but that's often good enough
dpkg-source -x foo_1.42.dsc
cd foo-1.4210126#10126
dpkg-buildpackage -rfakeroot -us -uc -b -nc
dpkg -i ../foo_1.42_$(arch).deb

2
+1表示后向移植,但您确实应该更强调指出,稳定/不稳定的混合确实非常危险,如果您不知道自己在做什么,则不应在生产系统上进行
沙杜尔
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.