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 ⟨[email protected]⟩, Julien Laffaye ⟨[email protected]⟩, Philippe Pepiot ⟨[email protected]⟩, Will Andrews ⟨[email protected]⟩, Marin Atanasov Nikolov ⟨[email protected]⟩, Yuri Pankov ⟨[email protected]⟩, Alberto Villa ⟨[email protected]⟩, Brad Davis ⟨[email protected]⟩, Matthew Seaman ⟨[email protected]⟩, Bryan Drewery ⟨[email protected]⟩, Eitan Adler ⟨[email protected]⟩, Romain Tarti`ere ⟨[email protected]⟩, Vsevolod Stakhov ⟨[email protected]⟩, Alexandre Perrin ⟨[email protected]⟩
请参阅 https://github.com/freebsd/pkg/issues 上的问题跟踪器。
请将问题和问题直接发送到 [email protected] 邮件列表。
June 29, 2020
FreeBSD 13.1-RELEASE
最后更新于
这有帮助吗?