如何添加存储库,但仅针对特定的包/版本及其依赖项?

如何添加存储库,但仅针对特定的包/版本及其依赖项?

我想使用 Natty Narwhal 存储库来存放 Puppet 包,但我不想升级整个服务器。可以吗?

我当前的解决方案是手动获取 .deb 包

答案1

固定是一种高级软件包管理技术,可让您在获取较新版本的软件包的同时保持稳定版本。不支持混合存储库,如果您想要的软件包是针对与系统上不同的库版本编译的,则可能会给您带来麻烦。如果可能,您应该尝试从向后移植存储库(或者可能是受良好支持的 PPA)。也就是说,您似乎已经知道puppetNatty 在您的系统上运行良好。

为了固定puppet到 natty 版本,我们必须编辑几个文件。首先,您需要设置您的默认版本/etc/apt/apt.conf.d/01ubuntu(我假设您使用的是 lucid,显然要替换实际版本):

APT
{
Default-Release "lucid";
};

接下来,您需要将 natty 添加到您的文件中或使用以下源/etc/apt/sources.list创建一个新文件:/etc/apt/sources.list.d/natty.sources.list

deb http://archive.ubuntu.com/ubuntu natty main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu natty main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu natty-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu natty-updates main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu natty-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu natty-security main restricted universe multiverse

然后,您需要将 Natty 软件包的“Pin-Priority”设置为puppet高于默认版本的优先级。在 设置默认版本/etc/apt/apt.conf.d/01ubuntu实际上会将源自该版本的所有软件包的优先级设置为 990。因此,在 中,/etc/apt/preferences我们需要使用更高的优先级覆盖此优先级,puppet例如:

Package: puppet
Pin: release n=natty
Pin-Priority: 995

现在你只需要运行apt-get update && apt-get upgrade

相关内容