关于 inst-source-utils 的一些信息
新的软件包 inst-source-utils 将取代当前的软件包 autoyast-utils。废弃软件包中的脚本已移至新软件包并进行了扩展,增加了新脚本。这两个软件包的主要目标是:提供支持自动安装和定制软件包源的实用程序。
有关 AutoYaST 的更多信息可在此处获取。
软件包 inst-source-utils 将在不久的将来得到增强。如果您有适用于上述目标的额外脚本,请随时提交 bug 并附上您的脚本。
脚本简述
| 工具/脚本 |
描述 |
| create_directory.yast
|
在 (可选) 目标目录 (如果未给定 targetdir 作为参数,则使用 pwd) 的每个子目录中创建文件 directory.yast。 在网络安装期间,如果服务器不支持目录列表,YaST 需要此文件才能“看到”目录内容。
|
| create_update_source.sh
|
在安装源上并行于实际安装树创建更新树。 使用示例:假设源位于 myInstallSource
./create_update_source.sh myInstallSource
cp -a myPackage-2.3.44.5-6.i586.rpm myInstallSource/updates/suse/i586
cd myInstallSource/updates/suse
create_package_descr -x setup/descr/EXTRA_PROV
cd setup/descr
create_directory.yast .
create_md5sums .
|
| create_md5sums
|
在 (可选) 目标目录 (如果未给定 targetdir 作为参数,则使用 pwd) 的每个子目录中创建 MD5SUMS 文件。 这些 MD5SUMS 文件在安装期间不再使用。但如果您将文件从一个安装源复制到另一个安装源,则它们很有用。只需一个简单的 md5sums -c MD5SUMS 即可检查是否存在任何传输错误。
|
| create_package_descr
|
YaST 在安装期间使用名为 packages 的文件作为“软件包数据库”,该文件位于 /suse/setup/descr/ 目录中。此脚本 创建此类软件包数据库文件 (有关更多详细信息,请参阅packages 元数据描述),以及包含软件包特定语言翻译的相应语言文件 package._lang_。有关更多详细信息,请参阅packagesLang 元数据描述。 因此,如果您更改或添加安装源中的某些软件包,则需要在之后运行此脚本 - 否则 YaST 将无法识别安装源中的任何更改。 该脚本带有一组参数
| [-d DATADIR1 [-d DATADIR2 ... ] ] (默认当前工作目录)
|
软件包和安装源中其他元数据的路径。 |
| [-p PDB_DATA_DIR ] |
包含 (目前 SUSE 内部) 软件包数据库转储的目录路径。 此目录应包含存储库中每个软件包的名为 <packagename>.pl 的文件。(有关更多详细信息,请参阅pdbdump 元数据。)
|
| [-x EXTRA_PROV_FILE ] |
文件 EXTRA-PROV 包含软件包管理器在安装期间无法解析的依赖项。 例如:如果一个软件包需要 /bin/bash - 软件包管理器无法解析此依赖项,因为它不知道软件包 "bash" 包含此文件。在 EXTRA_PROV 文件中添加类似 "bash: /bin/bash" 的条目后,create_package_descr 将在 packages 文件中添加一行包含 "/bin/bash" 作为 "Provides" 的内容。因此,YaST 在安装期间“知道”必须安装软件包 "bash" - 即使软件包 "bash" 未提供 "/bin/bash"。 请记住,YaST 不使用 EXTRA_PROV 文件,而是使用 packages 文件。您可以使用媒体上的 EXTRA_PROV 文件作为您自己的文件的草稿。
|
| [-i IGNORE_DIR ] [-I IGNORE_FILE ]
|
有时,只忽略 Datadir 中的某些文件或目录 (如 setup/descr) 会很有用。 |
| [-l LANG1 [-l LANG2 [... ] ]
|
create_package_descr 将为每种语言创建一个名为 package._lang_ 的文件,其中包含 特定语言的摘要和描述。这些特定语言的部分必须在pdbdump 元数据中 - 否则将使用英语。
|
| [-o OUTPUT_DIR ] |
存放生成的 packages* 文件的位置。 |
| [-Z ] |
如果软件包具有在安装前必须由用户手动确认的许可证,则可以使用此 选项。请记住,对于每种语言 (英语用作回退),软件包的pdbdump 元数据中必须输入一个许可证标签 (名为 "confirmlic_yast")。
|
| [-S ] |
也添加源代码包 (*.src.rpm) 的软件包信息。 |
| [-P ] |
使用 DT:Rich (一些简单的 HTML 标签,例如 ) 而不是纯 ASCII 文本作为描述。 这些文本在pdbdump 元数据中以 "_yast" 结尾 (description_yast) 进行标记。
|
| [-L ] |
使用此选项,create_package_descr 只搜索常规文件。 |
| [-C ] |
此选项将在 packages 文件中为每个软件包添加一个 sha1sum 条目。这应为自 10.1 版以来的安装源的默认设置。
|
EXAMPLE: ./create_package_descr suse -x /home/foo/CD-Creation/EXTRA_PROV -p -/home/foo/CD-Creation/pdb
-i meta -o suse/setup/descr -l english -l german -l czech -l french -l spanish -l hungarian
|
| createpatch
|
为一组软件包创建有效的 XML 补丁文件。此脚本需要存储库的 basedir 和 补丁名称作为参数。请注意,此功能仅用于 SLES 10 及更早版本,未来的产品使用“updateinfo”样式的补丁信息。下面描述的所有其他选项均为可选。
| [-i PATCH_ID] |
补丁 ID,需要在全局中唯一,默认将以 "hostname -d" 作为前缀,后跟第一个 软件包的名称。"hostname -d" 中的点将被转换为 "_"。
|
| [-n PATCH_NAME] |
必需参数,简洁的补丁名称,例如 aaa_base |
| [-v PATCH_VERSION] |
如果未给定,则默认为“0”第一个不存在的 |
| [-s PATCH_SUMMARY] |
默认为命令行上指定的第一个 RPM 的软件包摘要 |
| [-d PATCH_DESCRIPTION] |
长描述,默认为命令行上指定的第一个 RPM 的软件包描述 |
| [-C CATEGORY] |
补丁的类别。默认为 recommended。可能的值:security、recommended、optional |
| [-p RPM_BASENAME [,rpm_basename...]
|
此补丁的 RPM 列表。您至少需要一个。多个可以使用逗号分隔。(提示:检查软件包的依赖关系 以获取补丁所需软件包的概述。
|
| [-u] |
运行 createrepo 以更新存储库并注意保留 patch*xml 文件 - 在用新补丁扩充现有存储库时使用。 这样您的客户端只需要一个更新存储库 - 您可以每天用更新的补丁填充它。
|
| [-S] |
像 SUSE 对官方 openSUSE 更新存储库所做的那样,分离签名 repomd.xml 文件。 |
| [-I KEY_ID] |
用于签名 repomd.xml 文件的密钥 ID,如果未给定,gpg 将使用调用脚本的用户默认签名密钥。 调用脚本。
|
| [-L LICENSE_FILE] |
向补丁添加 EULA,从指定文件读取。此 EULA 将在安装补丁之前显示。 用户必须手动接受 EULA。
|
Example: ./createpatch -n "Security Update for foo and bar" -s "This patch solves CVE-000-0000" -d "An attacker could easily
hack your computer using..." -C security -u -p foo,bar update/10.1/
|
| create_repo_for_patch.sh
|
根据补丁文件和包含所需 RPM 的外部存储库生成 YUM 存储库。
| [-p] |
额外的补丁文件 (如果不在 <target_directory> 中) |
| [-P] |
补丁文件的前缀 (默认: patch-)。您应该使用类似您公司名称的名称以避免 终端用户的问题。(他们只能安装一个同名补丁文件...)
|
| [-S] |
分离签名 repomd.xml 文件,如果未给定,gpg 将使用用户的默认签名密钥 调用脚本。
|
| [-I KEY_ID] |
用于签名 repomd.xml 文件的密钥 ID,如果未给定,gpg 将尝试使用默认签名密钥 |
| [-v] |
显示详细信息。 |
Example: ./create_repo_for_patch.sh -S .
警告:create_repo_for_patch.sh 将删除 <target directory> 中除补丁文件之外的所有文件!
|
| mk_listings
|
创建文件 ARCHIVES.gz、INDEX.gz 和 ls-lR.gz。这些文件可用于搜索- RPM 中的文件 => ARCHIVES.gz
- 媒体上的文件 => INDEX.gz 和 ls-lR.gz
pin 等工具使用这些文件 - 但您也可以直接 zgrep <filename> INDEX.gz。
|