写点什么

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

作者:qife122
  • 2025-09-28
    福建
  • 本文字数:1695 字

    阅读完需:约 6 分钟

如何使用 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-dateutilpy38-magic-5.41                    ?   orphaned: devel/py-magicpy38-s3cmd-2.2.0                   ?   orphaned: net/py-s3cmdpy38-setuptools-63.1.0_1           <   needs updating (remote has 63.1.0_2)py38-six-1.16.0                    ?   orphaned: devel/py-sixpy39-setuptools-63.1.0_1           <   needs updating (remote has 63.1.0_2)py39-speedtest-cli-2.1.3           ?   orphaned: net/py-speedtest-cliuefi-edk2-bhyve-csm-0.2_4,1        ?   orphaned: sysutils/uefi-edk2-bhyve-csmwireguard-2,1                      ?   orphaned: net/wireguardwireguard-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 智能小助手)对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)


公众号二维码


办公AI智能小助手


公众号二维码


网络安全技术点滴分享


用户头像

qife122

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
FreeBSD包管理器pkg使用指南:轻松列出可升级软件包_包管理_qife122_InfoQ写作社区