FreeBSD包管理器pkg使用指南:轻松列出可升级软件包

如何使用pkg在FreeBSD上列出可升级软件包

作者:Vivek Gite
最后更新:2025年3月16日
0条评论

这是在FreeBSD上使用pkg命令快速列出所有可升级软件包的方法。这相当于在我的Debian或Ubuntu Linux系统上使用apt list --upgradable命令。

教程详情

  • 难度级别:简单
  • 需要root权限:是
  • 要求:Unix终端
  • 类别:包管理器
  • 系统兼容性:FreeBSD • Jails • Unix
  • 预计阅读时间:2分钟

我做的第一件事是通过运行以下命令更新FreeBSD上的包数据库:

$ sudo pkg update

获取包数据库需要一些时间。然后,我输入以下命令来列出与我刚刚更新的存储库目录相比需要升级的软件包:

$ sudo pkg version -vRL=

以下是我在FreeBSD 13.5版本上得到的结果:

Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
cbsd-14.2.4                        <   needs updating (remote has 14.2.6)
py38-dateutil-2.8.1                ?   orphaned: devel/py-dateutil
py38-magic-5.41                    ?   orphaned: devel/py-magic
py38-s3cmd-2.2.0                   ?   orphaned: net/py-s3cmd
py38-setuptools-63.1.0_1           <   needs updating (remote has 63.1.0_2)
py38-six-1.16.0                    ?   orphaned: devel/py-six
py39-setuptools-63.1.0_1           <   needs updating (remote has 63.1.0_2)
py39-speedtest-cli-2.1.3           ?   orphaned: net/py-speedtest-cli
uefi-edk2-bhyve-csm-0.2_4,1        ?   orphaned: sysutils/uefi-edk2-bhyve-csm
wireguard-2,1                      ?   orphaned: net/wireguard
wireguard-kmod-0.0.20220615_1      ?   orphaned: net/wireguard-kmod

<或其他比较字符会显示在屏幕的第二列。以下是它们的含义:

  • = – 软件包是最新的,无需操作
  • < – 软件包需要更新
  • > – 已安装的软件包版本比当前版本新。这种情况可能出现在索引文件过时或测试新端口或软件包时
  • ? – 已安装的软件包未出现在索引中。这可能是由于索引过时或来自尚未提交的PR的软件包。也可能是孤儿软件包
  • ! – 已安装的软件包存在于索引中,但由于某种原因,pkg version无法比较已安装软件包的版本号与索引中的相应条目

我们可以使用grep命令作为过滤器来仅获取需要更新的软件包列表。例如:

$ sudo pkg version -vRL= | grep '<.*needs updating'

现在剩下的唯一事情就是输入以下命令来执行实际升级:

$ sudo pkg upgrade

使用试运行模式列出FreeBSD上可升级的软件包

我还发现FreeBSD pkg有试运行模式。它是做什么的?它显示哪些软件包有可用更新,但不执行任何升级。这就像是另一个快捷方式。在运行pkg update后尝试如下操作:

$ sudo pkg upgrade -n

$ sudo pkg upgrade --dry-run

输出:

Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (120 candidates): 100%
Processing candidates (120 candidates): 100%
The following 3 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
  cbsd: 14.2.4 -> 14.2.6
  py38-setuptools: 63.1.0_1 -> 63.1.0_2
  py39-setuptools: 63.1.0_1 -> 63.1.0_2

Number of packages to be upgraded: 3

7 MiB to be downloaded.

将所有已安装的软件包保持更新到最新的稳定版本可以确保系统稳定性并有助于避免安全问题。我希望这个简短的提示能帮助新的FreeBSD用户、系统管理员和开发人员。请使用man命令查看pkg命令手册页面以获取更多信息。例如:

$ man pkg

另请参阅

  • 在FreeBSD包中删除不需要/未使用的依赖项

🥺 这对您有帮助吗?请添加评论以表达您的赞赏或反馈。

Vivek Gite是一位专业的IT顾问,拥有超过25年的经验,专门研究Linux和开源解决方案。他撰写关于Linux、macOS、Unix、IT、编程、信息安全和开源的文章。通过RSS feed或电子邮件通讯关注他的工作。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

posted @ 2025-09-28 19:11  qife  阅读(9)  评论(0)    收藏  举报