收集云服务器优惠信息
记录云服务器使用心得

使用Reprepro在Sourceforge创建Deb软件包存储库的方法

在SourceForge上面创建Deb软件包存储库是一种以结构化且易于管理的方式向用户分发Debian或Ubuntu软件包的好方法,当前在Linux社区较为流行。

在本文中,小编将使用Reprepro工具在Sourceforge创建Deb软件包存储库。Reprepro是一个功能强大的软件,可帮助管理基于Debian发行版的存储库,下面一起来看看吧。

先决条件

在开始之前,需要满足以下基本条件:

  • 基于Debian或Ubuntu系统
  • 已注册SourceForge帐户
  • Reprepro已安装在本地机器上
  • 已准备好上传的Deb包

步骤1:在SourceForge上创建项目

如果尚未在SourceForge上创建项目,请访问SourceForge并单击“Create”来创建一个项目,然后填写新项目所需的详细信息,例如名称、说明和类别。

创建SourceForge项目

接下来填写你项目名称和URL地址(需要已注册SourceForge账号):

在SourceForge上创建项目

一旦项目创建完成,SourceForge将允许你访问文件存储库,这里可以在其中上传你的文件:

SourceForge项目

接下来,需要将SSH公钥添加到SourceForge,以启用上传文件的SSH访问功能。首先,使用以下命令在系统上生成SSH公钥:

ssh-keygen -t rsa -b 4096

生成SSH公钥

生成SSH密钥后,复制公钥内容(~/.ssh/id_rsa.pub)并将其粘贴到SourceForge中的我的帐户–> SSH设置下的SSH设置中,如下图所示:

将SSH公钥添加到SourceForge

步骤2:安装Reprepro并生成密钥

在本地系统上,通过运行以下命令安装Reprepro和gnupg包:

sudo apt update
sudo apt install reprepro gnupg

在Ubuntu中安装Reprepro

现在需要使用gnupg命令生成一个gpg密钥,命令如下:

gpg --gen-key

它会问你一些问题,比如你想要什么类型的密钥,以及密钥的有效期是多长,如果你不知道该回答什么,只需按Enter键获取默认选项即可(推荐)。

当然,系统会要求输入用户名和密码,一定要记住这些,因为稍后会需要它们。

生成用于签名的GPG密钥

一旦生成密钥,可以通过以root权限运行以下命令来验证它:

sudo gpg --list-keys

列出GPG密钥

步骤3:创建存储库的目录结构

这里需要创建一个目录结构来存储你的存储库文件,假设你正在为Ubuntu和Debian软件包设置存储库,那么需要创建一个目录和必要的子目录:

mkdir -p ~/deb-repo/{conf,dists,incoming,pool}

这些目录的用途如下所示:

  • conf:此目录保存你的存储库的配置文件
  • dists:包含特定于分布的文件(例如bionic,focal等)
  • incoming:传入包的临时文件夹
  • pool:存储实际的包文件

现在,在conf目录中创建一个配置文件,命令如下:

nano ~/deb-repo/conf/distributions

添加以下内容:

Origin: Ravi Saive
Label: My Awesome Repo
Suite: stable
Codename: focal
Architectures: amd64 source
Components: main
Description: A repository of custom Debian packages for my projects
SignWith: yes

你可以用你自己的的Ubuntu或Debian发行版的名称替换focal,比如focalbullseyeSignWith选项用于使用GPG密钥对你的软件源进行签名。

接下来,创建另一个名为reprepro.conf的配置文件。

nano ~/deb-repo/conf/reprepro.conf

将以下行添加到reprepro.conf:

verbose
basedir .

该文件告诉Reprepro在哪里找到它的文件。

步骤4:将软件包添加到新创建的存储库

现在是时候将Debian软件包(.deb文件)添加到存储库了,你可以创建自己的软件包或下载现有的软件包。

对于本示例,假设你有一个名为fastfetch-linux-amd64.deb包,现在将这个.deb包移动到packages目录中:

mv /home/ravi/fastfetch-linux-amd64.deb ~/mydebrepo/packages/

现在,将使用以下命令将此包添加到你的存储库:

cd mydebrepo
reprepro -b . includedeb focal ~/mydebrepo/packages/fastfetch-linux-amd64.deb

步骤5:在Sourceforge上发布存储库

要将mydebrepo存储库上传到Sourceforge,当然需要在那上面有一个运行的帐户和一个正在运行的项目,假设需要将存储库上传到http://sourceforge.net/projects/tecmint/,其中tecmint是你自己的项目名称,则可以使用以下rsync命令:

rsync -avz -e "ssh" ~/mydebrepo ravisaive@frs.sourceforge.net:/home/frs/project/tecmint/

将存储库上传到Sourceforge

确保将你的用户名替换为你在sourceforge上的用户名,将tecmint替换为你的项目UNIX名称,并且将mydebrepo替换为你想要存储文件的文件夹名称。

步骤6:将存储库添加到客户端

现在存储库已设置完毕,可以将其添加到客户端机器,以便用户可以从中下载软件包。在你想要使用存储库的任何Ubuntu机器上,打开终端并运行:

echo "deb [trusted=yes] http://sourceforge.net/projects/tecmint/mydebrepo focal main" | sudo tee /etc/apt/sources.list.d/mydebrepo.list

接下来更新软件包列表:

sudo apt update

现在你的存储库已可供使用了,其它用户可以使用标准apt install命令安装你添加的软件包。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《使用Reprepro在Sourceforge创建Deb软件包存储库的方法》
文章链接:https://www.ecscoupon.com/8984.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!