Inst-source-utils

跳转到:导航搜索

关于 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/ 目录中。此脚本

创建此类软件包数据库文件 (有关更多详细信息,请参阅),以及包含软件包特定语言翻译的相应语言文件 package._lang_。有关更多详细信息,请参阅

因此,如果您更改或添加安装源中的某些软件包,则需要在之后运行此脚本 - 否则 YaST 将无法识别安装源中的任何更改。

该脚本带有一组参数

[-d DATADIR1

[-d DATADIR2 ... ] ] (默认当前工作目录)

软件包和安装源中其他元数据的路径。
[-p PDB_DATA_DIR ] 包含 (目前 SUSE 内部) 软件包数据库转储的目录路径。

此目录应包含存储库中每个软件包的名为 <packagename>.pl 的文件。(有关更多详细信息,请参阅。)

[-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_ 的文件,其中包含

特定语言的摘要和描述。这些特定语言的部分必须在中 - 否则将使用英语。

[-o OUTPUT_DIR ] 存放生成的 packages* 文件的位置。
[-Z ] 如果软件包具有在安装前必须由用户手动确认的许可证,则可以使用此

选项。请记住,对于每种语言 (英语用作回退),软件包的中必须输入一个许可证标签 (名为 "confirmlic_yast")。

[-S ] 也添加源代码包 (*.src.rpm) 的软件包信息。
[-P ] 使用 DT:Rich (一些简单的 HTML 标签,例如

) 而不是纯 ASCII 文本作为描述。

这些文本在中以 "_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

等工具使用这些文件 - 但您也可以直接 zgrep <filename> INDEX.gz