如何为程序包创建自己的存储库?

2020-01-14 10:21:21 文/CU技术社区 作者/ 栈栈 存储

基于RPM的操作系统可与rpm软件包,最常用的软件包管理器是yum。虽然较新的基于RPM的操作系统使用dnf实用程序,但它与yum存储库保持兼容性,因此这些指令也适用于dnf。

对于Linux,分发软件的最常见方法是rpm或deb格式的二进制软件包。大多数软件包都包含在官方发行版本存储库或第三方软件存储库中。但是,在某些情况下,您只需要安装几个独立的软件包即可。您也许可以使用本地软件包安装工具,即dpkg或rpm,但是在某些情况下,由于依赖关系项而无法安装软件包,因此您需要手动安装所有依赖项。这可能需要一些时间,而且不太容易。但是有一个解决方案可以提供帮助,您可以创建自己的本地存储库,然后将软件包部署到该本地存储库。

让我们讨论一下如何创建本地存储库,以使您的工作更轻松。

基于RPM的发行版

基于RPM的操作系统可与rpm软件包,最常用的软件包管理器是yum。虽然较新的基于RPM的操作系统使用dnf实用程序,但它与yum存储库保持兼容性,因此这些指令也适用于dnf。

为了创建yum存储库,您需要执行以下步骤:

安装createrepo工具

创建一个存储库目录

将RPM文件放入存储库目录

创建存储库元数据

创建存储库配置文件

1.安装createrepo工具要创建yum存储库,我们需要安装其他名为“ createrepo”的软件:

sudo yum install createrepo

2.创建一个存储库目录

您需要创建一个新目录,该目录将是您的yum存储库的位置,并将包含所需的rpm软件包文件。

因此,您应该确定此目录的位置并创建它

mkdir <your_directory_name>

作为示例,我们使用/ opt / rpms

mkdir /opt/rpms

3.将RPM文件放入存储库目录

您应该将RPM复制或下载到新目录中

4.创建存储库元数据

createrepo命令使用rpm包读取目录,并在其中创建一个名为“ repodata”的新目录。该目录包含存储库的元数据信息。每次将其他rpm软件包文件添加到yum存储库时,都需要使用“ createrepo”命令重新创建存储库元数据。

因此,要创建存储库,您需要执行以下操作:

createrepo <path_to_your_directory_with_rpms>

例:

createrepo /opt/rpms

如果您已经创建了存储库元数据,并且仅向其中添加了新软件包,则需要更新存储库:

createrepo --update /opt/rpms

5.创建存储库配置文件

yum存储库具有其自己的配置文件,并且有一些规则:

它必须位于/etc/yum.repos.d/目录中

它必须具有.repo扩展名,以被yum识别

文件选项为:

Repository ID–ID号唯一(示例:[myrepo])

name–可读的存储库名称(例如:name = My Repository)

Baseurl – 到repodata目录的URL。如果存储库位于本地,则可以使用file:// path;如果存储库位于远程,则可以使用ftp:// link,http:// link,https:// link-HTTP身份验证可用http:// user:password @ www。

Enabled –在执行更新和安装时启用存储库(示例:enabled = 1)

Gpgcheck –启用/禁用GPG签名检查(例如:gpgcheck = 1)

Gpgkey – GPG密钥的URL(例如:gpgkey = http://mirror.cisp.com/)

Exclude –要排除的软件包列表(例如:exclude = httpd,mod_ssl)

Includepkgs –要包括的软件包列表(例如:include = kernel)

所需的yum存储库配置文件选项为:

Repository ID

Name

Baseurl

Enabled

示例:

[customrepo]

name=CustomRepository

baseurl=file:///opt/rpms

enabled=1

gpgcheck=0

基于Debian的系统

Debian存储库是一组Debian二进制或源代码包,它们在一个特殊的目录树中,包含各种基础结构文件。

在大多数情况下,在基于debian的系统上,所有存储库都由“apt”实用程序管理(apt、apt-get、apt-cache等)。

要创建apt存储库,您需要执行以下步骤:

1.安装dpkg-dev软件包

该软件包用于解压缩、构建和上传Debian源软件包所需的开发工具。

您可以使用apt-get安装它:

sudo apt-get install dpkg-dev

2.创建一个存储库目录

您需要创建一个新目录,该目录将是您的deb存储库的位置,并将保存所需的deb软件包文件。

您应该确定此目录的位置并创建它

mkdir <your_directory_name>

作为一个示例,我们使用/ opt / debs

mkdir /opt/debs

3.将deb文件放入存储库目录

您应该将rpm文件复制或下载到新目录中

4.创建一个“ apt-get update”可以读取的文件

为此,您应该运行dpkg-scanpackages命令。

dpkg-scanpackages对Debian二进制软件包的树进行排序,并创建由apt、dselect等使用的包文件,以告诉用户哪些软件包可用于安装。

cd /opt/debs

dpkg-scanpackages . /dev/null > Release

5.将信息添加到指向存储库的sources.list中

您需要通过以下方式在Sources.list中添加一行:

deb file:///<path_to_your_repo_dir> ./

示例:

deb file:///opt/debs ./

如果您构建的程序包未使用gpg进行签名,或者尚未导入用于在仓库中对程序包进行签名的gpg密钥,并且您信任它们,则可以使用以下定义跳过签名检查。

[trusted=yes]

例如:

deb [trusted=yes] file:///opt/debs ./

自己构建存储库有多种原因。您可能只想提供一些带有本地修改的软件包,您可能想运行带有多个计算机使用的软件包的本地镜像以节省带宽,或者您自己构建了软件包并希望在发布之前对其进行测试。这些步骤可以为您提供解决方案。

免责声明:凡注明为其它来源的信息均转自其它平台,由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。联系邮箱:leixiao@infoobs.com