我正在尝试pkg search
在 FreeBSD 上使用来在配置的存储库中搜索“已知包”。现有代码用于pkg search -R <format_args> all
查询远程存储库并更新本地目录副本,然后返回所有包的原始信息。
问题是,如果存储库可用,这可以正常工作。但是,如果远程存储库不可用(DNS 问题、没有互联网等),那么本地副本也会被删除,所以无论信息如何可以从本地目录副本获取的数据(即使一两个包已过时)将丢失,直到下次与远程存储库进行在线联系。这意味着在存储库访问失败后,任何需要搜索本地目录的离线活动都将不可能。
我能找到的唯一不意味着在失败时清除本地副本的选项是 -U (它只是阻止尝试任何可能可用的更新,无论它是否会成功),以及pkg info
(它提供本地安装的 pkg数据并且不提供回购副本目录数据);似乎都没有帮助。
有没有一种方法可以像往常一样使用 pkg 预先更新目录副本,前提是可以获得有效的更新,但如果不能的话就不擦拭它?
答案1
编辑您的pkg.conf
并将其REPO_AUTOUPDATE
设置NO
为man pkg search
:
Package repository catalogues will be automatically updated whenever pkg
search is run by a user ID with write access to the package database,
unless disabled by the -U flag or setting REPO_AUTOUPDATE to NO in
pkg.conf(5).