在Bintray Rocks上托管Debian软件包!
更新:从2021年5月1日起,Bintray服务将不再可用(ConanCenter和JCenter不受影响),欲了解更多信息,请阅读Centers弃用博客
想要分发您的Debian软件包?Bintray是你的工具!
现在,随着支持的改进,它变得更好了,除了已弃用的“普通”布局之外,还包括当前的Debian存储库格式(又名“自动”布局),以及使用GPG对元数据进行签名。你所需要做的就是上传你的.deb文件,Bintray会自动为你计算和签署元数据(索引)。我们乘坐了Artifactory出色的debian支持并重新应用到Bintray中。
Debian存储库格式,你的意思是什么?
Debian存储库包含元数据文件,其中包含关于它所包含的包及其在存储库中的结构的信息。主要是“包”和“发布”文件。Debian客户端(如apt-get)查找这些元数据文件。
有两种支持的存储库元数据布局:
- “简单”
这是已弃用的存储库布局,但它仍然被广泛使用。在这种布局中,所有元数据文件都存储在存储库的根目录中,因此当存储库中只有一堆没有良好定义结构的文件时,这种布局非常有用。
- “自动”
这是默认布局,它包含包含的发行版的信息。每个发行版可以包含多个组件(例如“main”,“free”,…),每个组件可以包含多个架构(例如“amd64”,“i386”,…)
签署Debian发行版
Debian有一个很好的特性来增加客户的信任——让他们确信他们下载的是你的包,而不是其他的假包。这是通过使用GPG对“发布”文件进行签名来完成的。每个“发布”文件包括发行版中所有相关“包”文件的散列值。“Packages”文件包括所有包含的.deb文件的散列值。因此,通过签署“发布”文件,它实际上签署了整个发行版!
你可以让Bintray自动签署你的元数据与GPG。您所需要做的就是为拥有存储库的用户或组织设置GPG密钥。您甚至可以要求您的GPG密钥需要一个密码短语(请继续阅读)。不想设置GPG键?不用担心,您的元数据仍然在那里,只是没有签名。请记住,您的客户需要批准使用您的unsigned存储库。
上传和发布Debian文件
您可以使用REST API或从Bintray的UI上传文件。如果你的存储库有“自动”布局,Bintray需要知道每个发行版中包含哪个.deb文件,因此每个上传的.deb文件必须与它应该包含的发行版、组件和架构一起分配。
请在存储库的“陷害我!链接中有一些关于如何配置的快速提示:
例如,让我们考虑一个名为myorg有一个分布叫做mydist这就维持了主要组件。现在让我们假设对于0.0.1版本,我们开发了一个名为mypack为i386架构,但它也是由amd64.在Bintray中,我们将这个包存储在一个名为mypack,为了保持一致性,我们将调用版本0.0.1(尽管这不是严格要求的)。根据“Automatic”布局的约定,我们将.deb文件存储在以下路径:
“池/主/ m / mypack”
使用REST API,上传.deb文件,指定目标文件路径,并设置与分发相关的信息是非常简单的:
curl -X PUT -T libmypack_0.1 .1_i386.deb -umyuser:https://api.bintray.com/content/myorg/myrepo/mypack/0.0.1池/主/ m / mypack / libmypack_0.0.1_i386.deb; deb_distribution =mydist; deb_component =主要; deb_architecture =i386,amd64
为了发布你的工件,只需在上面的请求中添加“publish=1”HTTP矩阵参数,或者使用publish REST API:
curl -X POST -umyuser:https://api.bintray.com/content/myorg/ myrepo /mypack/0.0.1/出版
你的GPG密钥需要密码?不是问题-只需添加一个“X-GPG-PASSPHRASE”请求头与您的密码。这可以在upload API(带有" publish=1 ")和publish API中完成:
X-GPG-PASSPHRASE:密码
触发元数据计算
如果您的GPG密钥需要密码短语,但没有提供,那么您的元数据将被计算,但不会被签名(例如,当使用Bintray UI上传包时,当前无法指定密码短语)。为了解决这个问题,你应该使用REST API,在那里你可以指定密码短语并触发元数据计算:
curl -X POST -H " X-GPG-PASSPHRASE: passphrase " -umyuser:https://api.bintray.com/calc_metadata/myorg/ myrepo /
关于REST API的更多信息可以在Bintray文档中找到。
下载Debian软件包
如果你使用默认的“自动”布局,你在Bintray中的Debian存储库可以用作个人包存档(PPA)。为了让用户获得您的包,他们所需要做的就是将您的存储库添加到他们的源列表中。例如,当使用apt-get时,要添加myrepo库的myorg时,应将以下行添加到“sources.”列出“文件”(在“/etc/apt/sources.list”):
deb https://dl.bintray.com/v1/content/myorg/ myrepomydist主要
或者,你也可以使用“Software Sources”管理UI添加存储库URL:

一旦“来源”。列表”设置后,您的用户可以获取和安装您的mypack从您的mydist分布和主要组件使用:
$ apt-get installmypack
总结
所以,Debian和Bintray是携手并进的。您可以获得Debian发行版所需的一切——自动元数据计算、GPG签名、下载统计、新发布通知,以及一个全自动、超级可靠和快速的下载平台。这是除了所有其他伟大的功能Bintray。现在你可以专注于开发你的软件包- Bintray将负责分发!

