手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

pkg.depotd(1M)

名称

pkg.depotd - 映像包管理系统 depot 服务器

用法概要

/usr/lib/pkg.depotd [--cfg source] [-a address]
    [--content-root root_dir] [-d inst_root]
    [--debug feature_list] [--disable-ops=op[/1][,...]]
    [--image-root path] [--log-access dest]
    [--log-errors dest] [--mirror mode] [-p port]
    [--proxy-base url] [--readonly mode] [-s threads]
    [--sort-file-max-size bytes] [--ssl-cert-file source]
    [--ssl-dialog type] [--ssl-key-file source]
    [-t socket_timeout] [--writable-root path]

描述

pkg.depotd 是映像包管理系统的 depot 服务器。它提供对包含在软件包系统信息库中的数据的网络访问。对于不支持通过文件系统直接访问系统信息库的客户机,或网络访问是唯一可用或希望使用的传输方法的客户机,通常使用软件包库 (depot)。

诸如 pkg 之类的检索客户机可直接从系统信息库或通过 depot 服务器检索软件包和软件包元数据列表。发布客户机 pkgsend 可将新版本的软件包直接或通过 depot 服务器发送到系统信息库。pkgrepo 可用于创建系统信息库供 depot 服务器使用,或用于直接以及通过 depot 服务器管理它们。

pkg.depotd 通常在系统上作为服务运行。软件包和软件开发者可能希望运行专用副本进行测试。

库不提供任何自己的访问控制方法。缺省情况下,所有能够连接的客户机都能够读取所有软件包数据和发布新的软件包版本。在服务管理工具 (Service Management Facility, SMF) 下运行时例外,缺省情况为在只读模式中运行。下列“附注”部分描述了维护具有不断变化内容的公共 depot 服务器的一些最佳做法。

SMF 属性

SMF 属性

pkg.depotd 服务器通常通过与其服务关联的 SMF 属性配置。svc:/application/pkg/server 服务运行一个 pkg.depot 服务器进程,或者为 svc:/application/pkg/depot 服务提供配置。请参见 pkg.depot-config(1M) 手册页和下文中的 pkg/standalone 属性。

有关 SMF 属性的信息,请参见 smf(5) 手册页。可以识别以下属性:

pkg/address

(net_address) 在其上侦听连接的 IP 地址。缺省值为 0.0.0.0 (INADDR_ANY),该地址侦听所有活动接口。要侦听所有活动的 IPv6 接口,请使用 ::。只使用第一个值。

pkg/content_root

(astring) 实例应在其中找到其静态 Web 内容以及其他 Web 内容的文件系统路径。缺省值为 /usr/share/lib/pkg

pkg/debug

(astring) 以逗号分隔的要启用的调试功能列表。可能的值为:

headers

将每个请求的标题记录到错误日志。

pkg/disable_ops

(astring) 以逗号分隔的应该为 depot 服务器禁用的操作列表。操作以 operation[/version] 形式提供(例如 catalog search_1)。

pkg/image_root

(astring) 其文件信息将用作文件数据高速缓存的映像的路径。

pkg/inst_root

(astring) 实例应在其中找到其系统信息库数据的文件系统路径。必需,除非已提供了 PKG_REPO。缺省值为 /var/pkgrepo

pkg/log_access

(astring) 库进程记录的任何与访问相关的信息的目标。可能的值为:stderrstdoutnone 或绝对路径名称。如果 stdouttty,则缺省值为 stdout。如果 stdout 不是 tty,则缺省值为 none。如果您将 pkg 作为服务运行,则 log_access 的缺省值为 none,且输出将写入 /var/svc/log/application-pkg-server:* 中。有关管理大日志文件的示例,请参见 logadm(1M) 手册页。

pkg/log_errors

(astring) 库进程记录的任何错误或其他信息的目标。可能的值为:stderrstdoutnone 或绝对路径名称。缺省值为 stderr。有关管理大日志文件的示例,请参见 logadm(1M) 手册页。

pkg/mirror

(boolean) 设置是否使用软件包镜像模式。为 true 时,禁用发布和元数据操作,只提供受限制的浏览器用户界面。当 pkg/readonly 属性为 true 时,该属性不能为 true。缺省值为 false

pkg/port

(count) 实例应侦听传入软件包请求的端口号。如果未提供 SSL 证书和密钥信息,则缺省值为 80;否则,缺省值为 443。

pkg/proxy_base

(uri) 该属性更改 depot 服务器的基 URL,当在 Apache 或反向代理配置中的某个其他 Web 服务器后运行时最有用。

pkg/readonly

(boolean) 设置是否禁用修改操作,例如由 pkgsend 启动的那些操作。检索操作仍可用。当 pkg/mirror 属性为 true 时,该属性不能为 true。缺省值为 true

pkg/socket_timeout

(count) 在断开连接之前服务器应该等待客户机响应的最大秒数。缺省值为 60。

pkg/sort_file_max_size

(count) 索引器排序文件的最大大小。用于限制库用来创建索引的 RAM 数量,或增加数量以提高速度。

pkg/ssl_cert_file

(astring) PEM 编码的证书文件的绝对路径名称。缺省值为 none。此属性必须与 ssl_key_file 一起使用。如果同时提供 ssl_cert_file/ssl_key_file ,则库只响应 SSL 请求。

pkg/ssl_dialog

(astring) 指定应使用何种方法来获取用于对 ssl_key_file 进行解密的口令短语。可能的值为:

builtin

提示输入口令短语。这是缺省值。

exec:/path/to/program

执行指定的外部程序来获取口令短语。程序的第一个参数为 '',并保留该参数。程序的第二个参数是服务器的端口号。口令短语输出到 stdout

smf:fmri

尝试从与 FMRI 相关的服务实例中检索属性 pkg_secure/ssl_key_passphrase 的值。

pkg/ssl_key_file

(astring) PEM 编码的私钥文件的绝对路径名称。此属性必须与 ssl_cert_file 属性一起使用。如果同时提供 /ssl_key_file ssl_cert_file,则库只响应 SSL 请求。

pkg/standalone

(boolean) 要轻松地通过具有最低 Apache 配置的单个 Apache 实例为多个系统信息库提供服务,请将此属性设置为 false 并将此 pkg/server 实例的 pkg/readonly 属性设置为 truepkg/standalone 的缺省值为 falsepkg/readonly 的缺省值为 true。有关更多信息,请参见 pkg.depot-config(1M) 手册页。

pkg/threads

(count) 启动以为请求提供服务的线程数。缺省值为 60。只适用于小型部署。该值应该为并发客户机数量的 20 倍左右。threads 的最大值为 5000。

pkg/writable_root

(astring) 程序对其具有写入访问权限的目录的文件系统路径。此属性可与 –readonly 选项一起使用,以便 depot 服务器无需具有对软件包信息的写入访问权限即可创建文件(如搜索索引)。

pkg_secure/ssl_key_passphrase

(astring) 用于对 pkg/ssl_key_file 进行解密的口令。该值受读取授权保护(使用属性 solaris.smf.read.pkg-server)。

使用以下属性控制 depot 服务器的浏览器用户界面 (Browser User Interface, BUI) 的显示和行为:

pkg_bui/feed_description

(astring) RSS/Atom 源的描述性段落。

pkg_bui/feed_icon

(astring) 用于以可视方式表示 RSS/Atom 源的小型图像的路径名称。路径名称应相对于 content_root。缺省值为 web/_themes/pkg-block-icon.png

pkg_bui/feed_logo

(astring) 将用于以可视方式标记或标识 RSS/Atom 源的大型图像的路径名称。该值应相对于 content_root。缺省值为 web/_themes/pkg-block-icon.png

pkg_bui/feed_name

(astring) 由为系统信息库提供服务的库生成的 RSS/Atom 源的简短描述性名称。缺省值为 "package repository feed"。

pkg_bui/feed_window

(count) 系统信息库的源最后生成之前的小时数,以包括生成源的时间。

软件包库还可以用作来自 pkg(5) 的本地客户机映像的镜像服务器。这使得在 LAN 上共享一个子网的客户机可以对它们的文件高速缓存进行镜像。客户机可以相互下载文件,从而减少软件包 depot 服务器上的负载。此功能是作为由 SMF 配置的替代 depot 服务提供的。它为服务发现使用 mDNS 和 dns-sd

mDNS 镜像通常是通过与其服务关联的 SMF 属性配置的。可以识别以下属性:

pkg/image_root

(astring) 其文件信息将用作文件数据高速缓存的映像的路径。缺省值为 /

pkg/port

(count) 实例应侦听传入软件包请求的端口号。缺省值为 80。

选项

pkg.depotd 可从文件或从现有 SMF 服务实例的属性数据读取其基本配置信息。

–-cfg source

指定读取和写入配置数据时要使用的文件的路径名,或格式为 smf:fmri 的字符串,其中 fmri 是从中读取配置数据的实例的服务故障管理资源标识符 (fault management resource identifier, FMRI)。有关指定文件的格式的详细信息,请参见下文的“库配置”。

如果没有可用的已存在的配置源,或者要覆盖从使用 –-cfg 提供的配置文件中读取的值,则可以使用下列选项来更改 depot 服务器的缺省行为:

–a address

请参见上述 pkg/address

–-content-root root_dir

请参见上述 pkg/content_root

–d inst_root

请参见上述 pkg/inst_root

–-debug feature_list

请参见上述 pkg/debug

–-disable-ops=op[ /1][,...]

请参见上述 pkg/disable_ops

–-image-root path

请参见上面的 pkg/image_root

–-log-access dest

请参见上述 pkg/log_access

–-log-errors dest

请参见上述 pkg/log_errors

–-mirror mode

请参见上述 pkg/mirror

–p port

请参见上述 pkg/port

–-proxy-base url

请参见上述 pkg/proxy_base。如果提供空值,则忽略该选项。

–-readonly mode

请参见上述 pkg/readonly

–s threads

请参见上述 pkg/threads

–-sort-file-max-size bytes

请参见上述 pkg/sort_file_max_size

–-ssl-cert-file source

请参见上述 pkg/ssl_cert_file

–-ssl-dialog type

请参见上述 pkg/ssl_dialog

–-ssl-key-file source

请参见上述 pkg/ssl_key_file

–t socket_timeout

请参见上述 pkg/socket_timeout

–-writable-root path

请参见上述 pkg/writable_root

–?
–-help

显示用法消息。

针对软件包系统信息库的其他管理功能是由 pkgrepo 提供的。

库配置

库配置

如果使用 –-cfg 选项提供了配置文件(而非 SMF FMRI),则 depot 服务器将以简单的文本格式读取和写入所有配置数据。在上述“SMF 属性”中描述了配置数据。配置数据包含各个部分,以 [section] 标题开始,后跟 name = value 条目。后续部分为 RFC 822 样式。可以跨多个行拆分数据,以空格开始后续行即可。

必须使用上述“选项”中列出的选项提供配置文件中未提供的任何所需值。样例配置文件可能类似如下:

[pkg]
port = 80
inst_root = /export/repo

[pub_example_com]
feed_description = example.com's software
  update log

示例

示例 1 启用 depot 服务器
# svcadm enable application/pkg/server
示例 2 更改服务器的侦听端口。
# svccfg -s application/pkg/server setprop pkg/port = 10000
# svcadm refresh application/pkg/server
# svcadm restart application/pkg/server
示例 3 启用镜像
# svcadm enable application/pkg/dynamic-mirror

环境变量

PKG_REPO

指定包含要提供的系统信息库的目录。如果指定 –d,则忽略该值。

PKG_DEPOT_CONTENT

指定包含库提供的静态内容的目录。该目录中应该有列在下方“文件”下的文件,虽然其中的内容可能与提供的缺省内容不同。

退出状态

将返回以下退出值:

0

操作成功。

1

出现错误。

2

指定的命令行选项无效。

99

发生了意外的异常。

文件

/usr/share/lib/pkg

缺省显示内容的位置。修改 pkg/content_root 以选择备用位置。

属性

有关下列属性的说明,请参见 attributes(5):

属性类型
属性值
可用性
package/pkg
接口稳定性
Uncommitted(未确定)

另请参见

pkg.depot-config(1M)dns-sd(1M)mdnsd(1M)pkg(1)pkgrepo(1)pkgsend(1)syslogd(1M)、smf(5)

在 Oracle Solaris 11.2 中复制和创建软件包系统信息库

https://java.net/projects/ips/pages/Home

附注

pkd.depotd 服务由 SMF 管理,在服务标识符 svc:/application/pkg/server 下。

mDNS 镜像服务由 svc:/application/pkg/dynamic-mirror 服务标识符下的 SMF 管理。

要控制对库的读取访问权限,可以将 HTTP 反向代理与验证方法(例如 pkg 本身就支持的基于客户机的 SSL 证书访问权限)结合使用。

要轻松地通过具有最低 Apache 配置的单个 Apache 实例为多个系统信息库提供服务,请将特定 pkg/server 实例的 pkg/standalone 属性设置为 false,并将该实例的 pkg/readonly 属性设置为 true。有关更多信息,请参见 pkg.depot-config(1M) 手册页。

配置的更改,或使用基于文件系统的操作对软件包数据的更改,需要重新启动 depot 服务器进程,从而使更改能够反映在操作和输出中。使用下列方法之一来重新启动 depot 服务器进程:

  • 使用 svcadm 重新启动 application/pkg/server 实例。

  • 使用 kill 向 depot 服务器进程发送一个 SIGUSR1 信号。这样可执行正常的重新启动,使进程保持不变,但重新加载所有配置、软件包和搜索数据:

    # kill -USR1 pid