如何在FreeBSD上更新软件包和端口的组合


18

我主要在FreeBSD上使用软件包,因为其中大多数都适合我。但是,有些不适合我的东西,例如vim不包含图形化的软件包gvim

没问题。我可以使用portmaster editors/vim并选择GTK2选项来安装端口。这很好。

但是,pkg upgrade一段时间后,我看到以下内容:

        Reinstalling vim-7.4.110_3 (options changed)

是什么赋予了?我没有更改任何选项,也没有新版本(也没有端口)。是否将我安装的端口与没有的远程版本进行比较GTK2

当然,我可以让它pkg upgrade工作,然后再重新安装端口,但这很愚蠢。建议使用哪种方式来更新软件包和端口的组合?


使用pkg lock推荐的解决方案吗?它可以工作,但是我希望可以像自动操作一样简单。
Ricardo Buring 2014年

是的,pkg lock该解决方案是为此目的而设计的:在手册页中:“ pkg lock用于锁定软件包,以防止重新安装,修改或删除。”
Dereckson 2014年

这篇文章已经过时了。但是我想告诉我,到目前为止,我仍然遇到同样的问题。我曾问过FreeBSD论坛“同时使用软件包和端口吗?”。一位成员给了我建议,就像他一样,使用脚本进行安装更新。您可以在他的答案中找到它。
HL1234

Answers:


15

您需要记住,pkg和端口在同一位置(位于中的SQLite数据库/var/db/pkg)注册安装的软件。这两个系统都没有记录有关特定软件是作为预编译软件包还是作为端口安装的任何其他信息。因此,一旦某个软件是通过两种方法安装,该工具有没有办法知道如何它被安装。

editors/vim端口选择GTK2支持时,该支持已在软件包数据库中注册。当您稍后运行时pkg upgradepkg查看了的软件包数据vim,并发现已在安装的版本中启用了GTK2支持,而在预编译的软件包中未启用它。pkg upgrade正在做应做的事情-查找与可用的预编译软件包不同的所有已安装软件包,并尝试对其进行升级。这些差异可以是版本号,依赖关系图,编译时选项等。

要避免pkg考虑要保护的端口或软件包(安装后,就工具而言,没有区别)的正确方法是使用pkg lock命令。

另外,如果您发现自己在多个端口上更改了选项,则可以考虑安装poudriere和维护自己的软件包存储库。它需要一些设置,并且如果您的构建主机具有ZFS存储池,则效果最佳。这是管理自定义软件版本的非常灵活方便的方法。

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.