如何防止软件包被其他 repo 更新?

如何防止软件包被其他 repo 更新?

我创建了一个存储库,用于存放自己创建的包和来自其他来源的不需要的包。例如

# apt-cache policy facter
facter:
  Installed: 1.7.2-1puppetlabs1
  Candidate: 1.7.2-1puppetlabs1
  Version table:
 *** 1.7.2-1puppetlabs1 0
        500 ftp://example.com/ ./ Packages
        100 /var/lib/dpkg/status
     1.6.5-1ubuntu1 0
        500 http://dk.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages

问题是 Ubuntu 也有这个特定软件包的版本,虽然我的版本比 Ubuntu 的版本高,但我不怀疑 Ubuntu 的版本被安装了。但是当 Ubuntu 的版本比我的新时会发生什么?如何防止 Ubuntu 被安装,然后软件包从我的存储库安装?

答案1

你可以尝试这个方法:

要禁用来自存储库“your_repo”的自动更新(您不希望软件包从中自动更新),请添加文件 /etc/apt/preferences.d/your_repo,其中包含以下内容:

Package: facter*
Pin: release n=repo
Pin-Priority: 50

这将使该存储库中的 facter* 包的优先级低于已安装的包(有 100 个)。

答案2

这称为固定。Ubuntu 有一些高级文档可用这里建议阅读手册页以获取有关该配置文件的特定语法的更多信息。

相关内容