pkg.8
PKG(8)
PKG(8)
FreeBSD System Manager's Manual
PKG(8)
pkg
, pkg-static
—
操作包
pkg
[-v
] [-d
] [-l
] [-N
] [-j
⟨jail name or id⟩ | -c
⟨chroot path⟩ | -r
⟨root directory⟩] [-C
⟨configuration file⟩] [-R
⟨repository configuration directory⟩] [-4
| -6
] ⟨command⟩ ⟨flags⟩
pkg
[--version
] [--debug
] [--list
] [-N
] [--jail
⟨jail name or id⟩ | --chroot
⟨chroot path⟩ | --rootdir
⟨root directory⟩] [--config
⟨configuration file⟩] [--repo-conf-dir
⟨repository configuration directory⟩] [-4
| -6
] ⟨command⟩ ⟨flags⟩
pkg
提供了一个操作包的接口:注册、添加、删除和升级包。 pkg-static
是 pkg
的静态链接变体,通常仅用于 pkg
的初始安装。 功能上存在一些差异。有关详细信息,请参阅 pkg.conf(5) 。
pkg
支持以下选项:
-v
, --version
显示当前版本的 pkg
。
-d
, --debug
显示调试信息。
-l
, --list
列出所有可用的命令名称,然后退出而不执行任何其他操作。 -v
选项优先于 -l
但 -l
将覆盖任何其他命令行参数。
-o
⟨option=value⟩, --option
⟨option=value⟩
从命令行设置 pkg
的配置选项。 从环境中设置的选项被重新定义。 允许多次指定此选项。
激活状态检查模式。 防止 pkg
自动创建或初始化 /var/db/pkg/local.sqlite 中的 SQLite 数据库(如果它不存在)。
如果当前没有安装任何包,则防止 pkg
执行任何操作,因为使用 pkg
正确初始化的系统将始终至少注册 pkg
包本身。
如果在没有任何其他参数的情况下使用, pkg
-N
将运行健全性测试,如果成功则打印出一条短消息,显示当前安装了多少包。 退出状态应该是系统是否配置为使用 pkg
作为其包管理系统的可靠指示。
示例用法:
if pkg -N >/dev/null 2>&1; then # pkgng-specifics else # pkg_install-specifics fi
-N
- 标志最初是在- .Fx 8.4- 的 /usr/sbin/pkg 引导程序中发布的,但在 FreeBSD 9.1 中没有。 仅仅调用 pkg
-N
可能是不够的,因为可能会调用引导程序,或者从 pkg
返回错误。 以下脚本是检测 pkg
是否已安装和激活的最安全方法:
if TMPDIR=/dev/null ASSUME_ALWAYS_YES=yes \ PACKAGESITE=file:///nonexistent \ pkg info -x 'pkg(-devel)?$' >/dev/null 2>&1; then # pkgng-specifics else # pkg_install-specifics fi
-j
⟨jail name or id⟩, --jail
⟨jail name or id⟩
pkg
将在给定的 ⟨jail name or id⟩, 中执行,其中 name 匹配 “jls
name” , id 匹配 “jls
jid” 。 参见 jail(8) 和 jls(8) 。
-c
⟨chroot path⟩, --chroot
⟨chroot path⟩
pkg
将在 ⟨chroot path⟩ 环境中 chroot。
-r
⟨root directory⟩, --rootdir
⟨root directory⟩
pkg
将安装指定的 ⟨root directory⟩ 中的所有包。
-C
⟨configuration file⟩, --config
⟨configuration file⟩
pkg
将使用指定的文件作为配置文件。
-R
⟨repo conf dir⟩, --repo-conf-dir
⟨repo conf dir⟩
pkg
将在目录中搜索每个存储库的配置文件。 这会覆盖主配置文件中指定的任何 REPOS_DIR
值。
pkg
将使用 IPv4 来获取存储库和包。
pkg
将使用 IPv6 来获取存储库和包。
pkg
支持以下命令(或其明确的缩写):
help
command
显示指定命令的使用信息。
从本地源或远程源安装包。
从远程源安装时,您需要指定获取包时使用的协议。
目前支持的协议有 FTP、HTTP 和 HTTPS。
添加、修改或删除包上的标记值样式注释。
列出命令行别名。
针对已知漏洞审核已安装的软件包。
删除作为依赖项自动安装且不再需要的软件包。
将本地包数据库转储到命令行上指定的文件。
这是为了与 pkg(7) 引导程序兼容。如果已经安装了 pkg
,则什么也不做。
如果使用 -f
标志调用,将尝试从远程存储库重新安装 pkg
。
健全性检查已安装的软件包。
清理获取的远程包的本地缓存。
与旧的 pkg_add(1) 格式相互转换。
创建一个包。
从数据库和系统中删除一个包。
从远程存储库中获取包。
显示有关已安装包和包文件的信息。
从远程包存储库安装包。如果在多个远程存储库中找到一个包,则从第一个存储库开始安装。依次尝试从每个包存储库下载包,直到成功获取包。
防止修改或删除包。
列出可用的插件。
查询已安装包和包文件的信息。
在数据库中注册一个包。
创建本地包存储库以供远程使用。
查询远程存储库的信息。
在远程包存储库中搜索给定的模式。
修改已安装数据库中的信息。
打开本地或远程数据库的 SQLite shell。使用此命令时应格外小心。
显示哪些包链接到特定的共享库。
显示包数据库统计信息。
解锁包,允许修改或删除它们。
更新 pkg.conf(5) 中列出的可用远程存储库。
显示已安装包的更新条目。
将软件包升级到较新的版本。
总结已安装的软件包版本。
在数据库中查询安装了特定文件的包。
pkg.conf(5) 中的所有配置选项都可以作为环境变量传递。
额外的环境变量是:
INSTALL_AS_USER
允许以普通用户身份进行所有操作,而不是在适当的时候检查 root 凭据。- 预计用户将确保 pkg
- 操作的每个文件和目录都是用户可读的 (或在适当的情况下可写) 。
请参阅 pkg.conf(5) 。
搜索包:
$ pkg search perl
安装一个包:
安装必须指定唯一的来源或版本,否则它将尝试安装所有匹配项。
% pkg install perl-5.14
列出已安装的软件包:
$ pkg info
从远程存储库升级:
% pkg upgrade
更改已安装包的来源:
% pkg set -o lang/perl5.12:lang/perl5.14
% pkg install -Rf lang/perl5.14
列出非自动包:
$ pkg query -e '%a = 0' %o
列出自动包:
$ pkg query -e '%a = 1' %o
删除已安装的包:
% pkg delete perl-5.14
删除不需要的依赖项:
% pkg autoremove
将包从自动更改为非自动,这将阻止 autoremove
删除它:
% pkg set -A 0 perl-5.14
将包从非自动更改为自动,这将使 autoremove
允许在没有任何依赖项时将其删除:
% pkg set -A 1 perl-5.14
从已安装的包创建包文件:
% pkg create -o /usr/ports/packages/All perl-5.14
确定哪个软件包安装了文件:
$ pkg which /usr/local/bin/perl
审核已安装的软件包以获取安全建议:
$ pkg audit
检查已安装的软件包是否存在校验和不匹配:
# pkg check -s -a
检查缺少的依赖项:
# pkg check -d -a
显示一个包的 pkg-message:
# pkg info -D perl-5.14
pkg_create(3), pkg_printf(3), pkg_repos(3), pkg-keywords(5), pkg-lua-script(5), pkg-repository(5), pkg-script(5), pkg-triggers(5), pkg.conf(5), pkg-add(8), pkg-alias(8), pkg-annotate(8), pkg-audit(8), pkg-autoremove(8), pkg-backup(8), pkg-check(8), pkg-clean(8), pkg-config(8), pkg-create(8), pkg-delete(8), pkg-fetch(8), pkg-info(8), pkg-install(8), pkg-lock(8), pkg-query(8), pkg-register(8), pkg-repo(8), pkg-rquery(8), pkg-search(8), pkg-set(8), pkg-shell(8), pkg-shlib(8), pkg-ssh(8), pkg-stats(8), pkg-triggers(8), pkg-update(8), pkg-updating(8), pkg-upgrade(8), pkg-version(8), pkg-which(8)
要为一台或多台服务器构建您自己的软件包集,请参阅 poudriere(8) (**ports/**ports-mgmt/poudriere) 。
您最近的基于 MaxMind GeoLite geo-DNS 的 pkg 镜像。
pkg
命令最早出现在 FreeBSD 9.1 中。
Baptiste Daroussin ⟨bapt@FreeBSD.org⟩, Julien Laffaye ⟨jlaffaye@FreeBSD.org⟩, Philippe Pepiot ⟨phil@philpep.org⟩, Will Andrews ⟨will@FreeBSD.org⟩, Marin Atanasov Nikolov ⟨dnaeon@gmail.com⟩, Yuri Pankov ⟨yuri.pankov@gmail.com⟩, Alberto Villa ⟨avilla@FreeBSD.org⟩, Brad Davis ⟨brd@FreeBSD.org⟩, Matthew Seaman ⟨matthew@FreeBSD.org⟩, Bryan Drewery ⟨bryan@shatow.net⟩, Eitan Adler ⟨eadler@FreeBSD.org⟩, Romain Tarti`ere ⟨romain@FreeBSD.org⟩, Vsevolod Stakhov ⟨vsevolod@FreeBSD.org⟩, Alexandre Perrin ⟨alex@kaworu.ch⟩
请参阅 https://github.com/freebsd/pkg/issues 上的问题跟踪器。
请将问题和问题直接发送到 pkg@FreeBSD.org 邮件列表。
June 29, 2020
FreeBSD 13.1-RELEASE
最后更新于
这有帮助吗?