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-staticpkg 的静态链接变体,通常仅用于 pkg 的初始安装。 功能上存在一些差异。有关详细信息,请参阅 pkg.conf(5) 。

pkg 支持以下选项:

-v, --version

显示当前版本的 pkg

-d, --debug

显示调试信息。

-l, --list

列出所有可用的命令名称,然后退出而不执行任何其他操作。 -v 选项优先于 -l-l 将覆盖任何其他命令行参数。

-o ⟨option=value⟩, --option ⟨option=value⟩

从命令行设置 pkg 的配置选项。 从环境中设置的选项被重新定义。 允许多次指定此选项。

-N

激活状态检查模式。 防止 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 值。

-4

pkg 将使用 IPv4 来获取存储库和包。

-6

pkg 将使用 IPv6 来获取存储库和包。

pkg 支持以下命令(或其明确的缩写):

help command

显示指定命令的使用信息。

add

从本地源或远程源安装包。

从远程源安装时,您需要指定获取包时使用的协议。

目前支持的协议有 FTP、HTTP 和 HTTPS。

annotate

添加、修改或删除包上的标记值样式注释。

alias

列出命令行别名。

audit

针对已知漏洞审核已安装的软件包。

autoremove

删除作为依赖项自动安装且不再需要的软件包。

backup

将本地包数据库转储到命令行上指定的文件。

bootstrap

这是为了与 pkg(7) 引导程序兼容。如果已经安装了 pkg ,则什么也不做。

如果使用 -f 标志调用,将尝试从远程存储库重新安装 pkg

check

健全性检查已安装的软件包。

clean

清理获取的远程包的本地缓存。

convert

与旧的 pkg_add(1) 格式相互转换。

create

创建一个包。

delete

从数据库和系统中删除一个包。

fetch

从远程存储库中获取包。

info

显示有关已安装包和包文件的信息。

install

从远程包存储库安装包。如果在多个远程存储库中找到一个包,则从第一个存储库开始安装。依次尝试从每个包存储库下载包,直到成功获取包。

lock

防止修改或删除包。

plugins

列出可用的插件。

query

查询已安装包和包文件的信息。

register

在数据库中注册一个包。

repo

创建本地包存储库以供远程使用。

rquery

查询远程存储库的信息。

search

在远程包存储库中搜索给定的模式。

set

修改已安装数据库中的信息。

shell

打开本地或远程数据库的 SQLite shell。使用此命令时应格外小心。

shlib

显示哪些包链接到特定的共享库。

stats

显示包数据库统计信息。

unlock

解锁包,允许修改或删除它们。

update

更新 pkg.conf(5) 中列出的可用远程存储库。

updating

显示已安装包的更新条目。

upgrade

将软件包升级到较新的版本。

version

总结已安装的软件包版本。

which

在数据库中查询安装了特定文件的包。

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) 。

FreeBSD pkg mirror

您最近的基于 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

最后更新于

FreeBSD 中文社区