软件包管理器 pkg 的用法

发布于 2024-10-07 13:58:59 字数 2215 浏览 10 评论 0

请注意:pkg 只能管理第三方软件包,并不能起到升级系统,获取安全更新的作用。这是因为 FreeBSD 项目是把内核与用户空间作为一个整体来进行维护的,而不是像 Linux 那样 linus torvalds 负责维护内核,各个发行版的人负责维护 GNU 工具(他们这些软件实际上被设计为单个软件包,因此可以用包管理器更新与升级系统)。FreeBSD 使用 freebsd-update 来升级系统,获取安全补丁。

如何用 pkg 安装软件

基本系统默认没有 pkg,先获取 pkg:

# pkg 回车即可输入 y 确认下载


pkg 使用 https,先安装 ssl 证书:

# pkg install ca_root_nss

然后把 repo.conf 里的 pkg+http 改成 pkg+https 即可。

最后刷新 pkg 数据库:

# pkg update -f


安装 python 3:

# pkg install python


pkg 升级:

# pkg upgrade


错误: You must upgrade the ports-mgmt/pkg port first

解决:

# cd /usr/ports/ports-mgmt/pkg
# make deinstall reinstall

如何卸载软件

直接使用 pkg delete 会破坏正常的依赖关系,应该尽量避免使用(ports 的 make deinstall 也一样),转而使用 pkg-rmleaf 命令,该命令属于的软件需要自行安装:

# pkg install pkg-rmleaf

故障排除

FreeBSD pkg 安装软件时出现创建用户失败解决

问题示例:

[1/1] Installing package…
===> Creating groups.
Creating group ‘package’ with gid ‘000’.
===> Creating users
Creating user ‘package’ with uid ‘000’.
pw: user ‘package’ disappeared during update
pkg: PRE-INSTALL script failed

问题解析:数据库未同步   

问题解决:

# /usr/sbin/pwd_mkdb -p /etc/master.passwd

Shared object "x.so.x" not found, required by "xxx"

出现该问题一般是由于 ABI 破坏,更新即可。

# pkg  install bsdadminscripts
# pkg_libchk
# port-rebuild

Newer FreeBSD version for package pkg

问题示例:

Neuer FreeBSD version for package pkg:
To ignore this error set IGNORE_OSVERSION=yes
- package: 1402843
- running kernel: 1400042
Ignore the mismatch and continue? [y/N]:

这通常发生在失去安全支持的或者在 Current 版本的系统上,不影响使用,输入 y 即可。

如果想要从根源上解决,需要自己卸载 pkg,从 ports 安装 ports-mgmt/pkg ;或者从源代码更新整个系统。

如果只是不想看到这个提示只需要按照提示将 IGNORE_OSVERSION=yes 写到 /etc/make.conf 里面(没有就新建)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

向地狱狂奔

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

烙印

文章 0 评论 0

singlesman

文章 0 评论 0

独孤求败

文章 0 评论 0

晨钟暮鼓

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文