如何为程序包创建自己的存储库?
对于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 ./
自己构建存储库有多种原因。您可能只想提供一些带有本地修改的软件包,您可能想运行带有多个计算机使用的软件包的本地镜像以节省带宽,或者您自己构建了软件包并希望在发布之前对其进行测试。这些步骤可以为您提供解决方案。
本文来自信息化观察者网,转载请注明出处。