Go to main content

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

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

pkg.depot-config(8)

名称

pkg.depot-config - 映像包管理系统 HTTP 库 (depot) 配置生成器

用法概要

/usr/lib/pkg.depot-config ( -d repository_dir | -S )
    -r runtime_dir [-c cache_dir] [-s cache_size] [-p port]
    [-h hostname] [-l logs_dir] [-T template_dir]
    [-A] [-t server_type] ( ([-F] [-P server_prefix] ) |
    [--https ( (--cert server_cert_file --key server_key_file
    [--cert-chain ssl_cert_chain_file] ) |
    --cert-key-dir cert_key_directory )
    [ (--ca-cert ca_cert_file --ca-key ca_key_file ) ]
    [--smf-fmri smf_pkg_depot_fmri] ] )

描述

pkg.depot-config 为映像包管理系统 (Image Packaging System, IPS) 库 (depot) 生成配置文件。IPS 库 (depot) 通过 HTTP 提供对 IPS 软件包系统信息库的可伸缩只读访问。

IPS 库 (depot) 是通过将 svc:/application/pkg/depot 服务管理工具 (Service Management Facility, SMF) 服务与 svc:/application/pkg/server 服务的一个或多个实例结合使用来配置的。

pkg.depot-config 生成要由 pkg/depot 服务使用的配置,也可以通过在命令行上调用 pkg.depot-config 命令来生成独立的配置。

要更改库 (depot) 配置,请修改 pkg/depot 服务或相应 pkg/server 服务实例的属性并刷新该实例。修改 pkg/server 服务实例的状态可能会导致刷新 pkg/depot 服务并重新生成库 (depot) 配置文件。

要为多个系统信息库提供服务,需要针对每个系统信息库提供一个 pkg/server 服务实例,但只需要一个 pkg/depot 服务实例。pkg/server 服务的每个实例都映射到一个由 pkg/inst_root 服务属性指定的 IPS 系统信息库。pkg/server 服务执行以下操作之一:

  • 运行相关的 pkg.depotd 进程以便为系统信息库的内容服务。

  • 不运行任何进程,而是改为帮助配置 pkg.depot 服务。

每个系统信息库都由一个 pkg/server 服务实例提供支持。系统信息库还可能由 pkg/depot:default 服务提供支持。如果特定 pkg/server 实例的 pkg/standalone 属性设置为 true,则系统信息库由 pkg.depotd 进程提供服务。如果特定 pkg/server 实例的 pkg/standalone 属性设置为 false,则系统信息库由 pkg/depot:default 服务提供服务。每个 pkg/server 实例要么运行 pkg.depotd,要么为 pkg/depot:default 贡献配置信息(系统信息库的 pkg/inst_root 位置)。

在启用其 pkg/standalone 属性设置为 falsepkg/readonly 属性设置为 truepkg/server 实例时,pkg/depot:default 配置会进行刷新,该系统信息库将由 pkg/depot:default 服务提供服务。当您禁用同一个 pkg/server 实例时,pkg/depot:default 服务会进行刷新,该系统信息库将不再由 pkg/depot:default 服务提供服务。

可以通过使用带有 –F 选项的 pkg.depot-config 命令来手动配置库 (depot)。–F 选项会生成可添加到现有 Web 服务器的 Web 服务器配置文件。在这种情况下,库 (depot) 可以运行,但其功能会减少:pkg search 支持和库 (depot) 浏览器用户界面将不可用。为了安装和更新 Oracle Solaris 11 系统而需要的所有其他 pkg(1) 功能均可用。

    使用下列方法之一可以将系统信息库路径和配置传递到 depot 服务器:

  • 使用带有 –S 选项的 pkg.depot-config 命令。–S 选项导致 pkg.depotd 在系统中查询 pkg/server 服务的符合以下条件的所有实例:标记为 onlinepkg/standalone 属性设置为 false 而且 pkg/readonly 属性设置为 true

  • 使用带有 –d 选项的 pkg.depot-config 命令。–d 选项提供要使用的 pkg(7) 系统信息库的路径。接受多个 –d 选项。

系统信息库必须具有允许 pkg5srv 用户读取系统信息库中文件和目录的文件权限。

选项

支持以下选项:

–d prefix=repository_dir

指定要使用的 pkg(7) 文件系统信息库的路径。prefix 用作可从其中访问此系统信息库的 depot-config Web 服务器名称空间的前缀。repository_dir 是一个包含版本 4(缺省)pkg(7) 软件包系统信息库的目录。repository_dir 的值将包括在 depot 服务器配置中。–d 选项不能与 –S 选项一起使用。如果不使用 –S 选项,则至少需要一个 –d 选项。允许使用多个 –d 选项。

–S

在系统中查询要使用的系统信息库。–S 选项导致 pkg.depotd 在系统中查询 pkg/server 服务的符合以下条件的所有实例:标记为 onlinepkg/standalone 属性设置为 false 而且 pkg/readonly 属性设置为 true。这些属性值允许库 (depot) 同时运行多个未设置这些属性的 pkg/server 实例。有关 pkg.depotd 的信息,请参见 pkg.depotd(8) 手册页。–S 选项不能与 –d 选项一起使用。

–r runtime_dir

指定配置文件的缺省输出目录。此目录还可以通过在 pkg/depot 服务中设置 config/runtime_dir 属性来指定。在使用 config/runtime_dir 属性时,此目录的内容会在 pkg/depot 服务启动时重新创建。

–c cache_dir

指定库 (depot) 用来存储其高速缓存的目录。如果同时指定了 –A 选项,则还可以使用高速缓存目录来存储服务器端 pkg(7) 搜索索引。cache_dir 目录还可以通过在 pkg/depot 服务中设置 config/cache_dir 属性来指定。

–s cache_size

为库 (depot) 指定最大高速缓存大小。cache_size 值是整数个兆字节。如果 cache_size 为 0,则 Web 服务器不执行任何缓存。cache_size 的缺省值为 0。如果由 depot 服务器提供服务的所有文件系统信息库都位于 depot 服务器本地(而不是通过 NFS 访问),则缺省值 0 已足够。此高速缓存大小还可以通过在 pkg/depot 服务中设置 config/cache_max 属性来指定。

–p port

指定将由库 (depot) 侦听的端口号。port 的缺省值为 80。此端口还可以通过在 pkg/depot 服务中设置 config/port 属性来指定。当系统信息库正由 pkg.depot 服务管理时,将忽略 pkg/server 服务的 pkg/port 属性。

–h hostname

指定要用作 Apache ServerName 指令的参数的主机名。hostname 的缺省值为 0.0.0.0。此主机名还可以通过在 pkg/depot 服务中设置 config/host 属性来指定。

–l logs_dir

指定库 (depot) 用来存储日志文件的目录。logs_dir 的缺省值为 /var/log/pkg/depot。此目录还可以通过在 pkg/depot 服务中设置 config/log_dir 属性来指定。

–T template_dir

指定用来构建库 (depot) 配置的模板所在的目录。template_dir 的缺省值为 /etc/pkg/depot。此目录还可以通过在 pkg/depot 服务中设置 config/template_dir 属性来指定。此目录应当不需要进行更改。

–A

在调用 pkgrepo refresh 时刷新由库 (depot) 维护的任何搜索索引。缺省情况下,在调用 pkgrepo refresh 时,由库 (depot) 维护的搜索索引不进行刷新。此选项还可以通过在 pkg/depot 服务中设置 config/allow_refresh 属性来指定。最佳做法不是使用 –A 选项或 config/allow_refresh 属性来刷新生产服务器上的索引,因为搜索索引会在库 (depot) 启动时自动刷新。

–t server_type

指定 pkg.depot-config 应当为其输出配置信息的 Web 服务器类型。在该发行版中,对于 server_type,缺省值为 apache2 (Apache 2.4),可接受的值为 apache2apache22 (Apache 2.2)。

–F

生成一个部分配置,该配置允许 Web 服务器使用现有的 Web 服务为客户机提供基本的 pkg(7) 安装操作。对于 Oracle Solaris OS 上运行的 Apache Web 服务器,该部分配置文件可以放在 /etc/apache2/2.4/conf.d 中。对于其他操作系统,请查阅 OS 文档以确定如何使用这个部分配置文件。另请参见 –P 选项。

–P server_prefix

指定用来将库 (depot) 映射到 Web 服务器名称空间的前缀。–P 选项应当与 –F 选项一起使用。

–-https

启用 HTTPS 服务。此选项不能与 –F–P 选项一起使用。

–-cert server_cert_file

指定服务器证书文件的位置。此选项只能与 –-https 选项一起使用。–-cert–-key 选项或者 –-cert-key-dir 选项必须与 –-https 选项一起使用。

–-key server_key_file

指定服务器密钥文件的位置。此选项只能与 –-https 选项一起使用。–-cert–-key 选项或者 –-cert-key-dir 选项必须与 –-https 选项一起使用。

–-cert-key-dir cert_key_directory

指定在省略 –-cert–-key 选项时,应当在其中存储自动生成的证书和密钥的目录。此选项只能与 –-https 选项一起使用。–-cert–-key 选项或者 –-cert-key-dir 选项必须与 –-https 选项一起使用。

–-ca-cert ssl_ca_cert_file

指定顶级 CA 证书文件的位置。此选项只能与 –-https 选项一起使用,而且必须是与 –-ca-key 选项共同使用。此选项仅用于根据此 CA 证书和 –-ca-key 选项所指定的 CA 密钥自动生成服务器证书。

–-ca-key ssl_ca_key_file

指定顶级 CA 密钥文件的位置。此选项只能与 –-https 选项一起使用,而且必须是与 –-ca-cert 选项共同使用。此选项仅用于根据此 CA 密钥和 –-ca-cert 选项所指定的 CA 证书自动生成服务器证书。

–-cert-chain ssl_cert_chain_file

此选项只能与 –-https 选项一起使用。如果服务器证书不是由顶级 CA 直接签名而是由中间颁发机构签名的,则需要使用此选项。

–-smf-fmri smf_pkg_depot_fmri

指定 pkg/depot 服务实例的 FMRI。如果为该实例自动生成了任何证书或密钥,则可以使用此选项更新该实例的相应 SMF 属性。此选项只能与 –-https 选项一起使用。

提供其他服务器配置

如果未使用 –F 选项,而且设置了缺省 -t apache2,则 svc:/application/pkg/depot 服务在启动时将在 /etc/pkg/depot/conf.d 中查找其他可用于扩展服务器配置的 Apache 配置文件。有关用于配置 Web 服务器的指令的详细信息,请查阅 Apache Web 服务器文档。

示例

示例 1 显示如何为系统信息库提供服务

此示例中的系统运行多个 svc:/application/pkg/server 实例和单个 svc:/application/pkg/depot 实例。pkg/server:standalone 实例有一个相关的 pkg.depotd 进程。pkg.depotd 进程为 pkg/server:standalone 服务中配置的系统信息库提供服务。pkg/server:userland 实例没有相关进程。pkg/depot:default 服务为 pkg/server:userland 服务中配置的系统信息库提供服务。

$ svcs pkg/server
STATE    STIME    FMRI
disabled Feb_06   svc:/application/pkg/server:default
online   Feb_03   svc:/application/pkg/server:userland
online   Feb_03   svc:/application/pkg/server:standalone
$ svcs pkg/depot
STATE    STIME    FMRI
online   Feb_07   svc:/application/pkg/depot:default
$ svcprop -p pkg/standalone -p pkg/readonly \
pkg/server:standalone
true
true
$ svcprop -p pkg/standalone -p pkg/readonly \
pkg/server:userland
false
true
$ svcs -p svc:/application/pkg/server:standalone
STATE    STIME    FMRI
online   Feb_03   svc:/application/pkg/server:standalone
         Jan_31       1206 pkg.depotd
$ svcs -p svc:/application/pkg/server:userland
STATE    STIME    FMRI
online   Feb_03   svc:/application/pkg/server:userland
示例 2 显示与库 (depot) 相关联的进程

下面的命令显示与 pkg/depot 服务相关联的 httpd 进程。

$ svcs -p pkg/depot
STATE    STIME    FMRI
online   11:43:56 svc:/application/pkg/depot:default
         11:43:55     16969 httpd
         11:43:55     16974 httpd
         11:43:55     16975 httpd
         11:43:55     16976 httpd
         11:49:01     16990 httpd
         11:51:33     16995 httpd

退出状态

将返回以下退出值:

0

命令成功。

1

命令失败。

2

指定的命令行选项无效。

属性

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

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

另请参见

svcprop(1)svcs(1)svcadm(8)svccfg(8)pkg.depotd(8)pkg(7)

在 Oracle Solaris 11.4 中创建软件包系统信息库

https://github.com/oracle/solaris-ips