前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何为程序包创建自己的存储库?

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

作者头像
用户6543014
发布2020-01-16 15:42:26
1.9K0
发布2020-01-16 15:42:26
举报
文章被收录于专栏:CU技术社区CU技术社区

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

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

基于RPM的发行版

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

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

  • 安装createrepo工具
  • 创建一个存储库目录
  • 将RPM文件放入存储库目录
  • 创建存储库元数据
  • 创建存储库配置文件

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

代码语言:javascript
复制
sudo yum install createrepo

2.创建一个存储库目录

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

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

代码语言:javascript
复制
mkdir <your_directory_name>

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

代码语言:javascript
复制
mkdir /opt/rpms

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

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

4.创建存储库元数据

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

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

代码语言:javascript
复制
createrepo <path_to_your_directory_with_rpms>

例:

代码语言:javascript
复制
createrepo /opt/rpms

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

代码语言:javascript
复制
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

示例:

代码语言:javascript
复制
[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安装它:

代码语言:javascript
复制
sudo apt-get install dpkg-dev

2.创建一个存储库目录

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

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

代码语言:javascript
复制
mkdir <your_directory_name>

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

代码语言:javascript
复制
mkdir /opt/debs

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

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

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

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

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

代码语言:javascript
复制
cd /opt/debs
dpkg-scanpackages . /dev/null > Release

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

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

代码语言:javascript
复制
deb file:///<path_to_your_repo_dir> ./

示例:

代码语言:javascript
复制
deb file:///opt/debs ./

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

代码语言:javascript
复制
[trusted=yes]

例如:

代码语言:javascript
复制
  deb [trusted=yes] file:///opt/debs ./

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

好看的人才能点

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SACC开源架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档