为自定义存储库创建go二进制文件作为debian二进制文件包

为自定义存储库创建go二进制文件作为debian二进制文件包,go,binary,package,debian,Go,Binary,Package,Debian,我正在尝试将一个用Go编写的二进制文件打包成debian/ubuntu二进制文件包。这可以从自定义web服务器和apt密钥下载 我非常困惑 我先看了看。这看起来很详尽,但不想说太复杂 让我困惑的是文件debian/rules包含make命令。但是我们没有Makefile,我需要创建一个吗 事实上,我在debuild-us-uc步骤,它显然失败了 然后我看到这个:,上面写着: 通过构建二进制文件避免Debian官僚作风: dpkg建筑包-b 我这样做了,命令完成了,但是查看生成的包,它不包含任何二

我正在尝试将一个用
Go
编写的二进制文件打包成debian/ubuntu二进制文件包。这可以从自定义web服务器和apt密钥下载

我非常困惑

我先看了看。这看起来很详尽,但不想说太复杂

让我困惑的是文件
debian/rules
包含
make
命令。但是我们没有
Makefile
,我需要创建一个吗

事实上,我在
debuild-us-uc
步骤,它显然失败了

然后我看到这个:,上面写着:

通过构建二进制文件避免Debian官僚作风: dpkg建筑包-b

我这样做了,命令完成了,但是查看生成的包,它不包含任何二进制文件,只有
changelog.gz
下面的app文件夹中的
/usr/share/doc
版权文件


所以我迷路了,我不知道在这里应该遵循哪个教程来构建一个二进制自定义包,顺便说一句,稍后可以下载。显然,这是我创建的第一个debian/ubuntu包。

我目前正在开发一个用go编写的项目,该项目在存储库中作为.deb包分发

我必须告诉你,要找到关于它的文档并不容易。我用它来做那个活动

首先在目标计算机上代表项目的文件夹中创建。例如“/tmp/proj”

在该文件夹中,您必须将要分发的所有内容放入包中。例如,如果编译的二进制文件名为“myapp”,并且您希望将其放入“/usr/bin/”中,则必须创建文件夹“/tmp/proj/usr/bin”,并将具有您将使用权限的可执行文件放入其中

用这种方法处理所有要分发的文件

然后创建用于生成包的脚本:

PKG_NAME= application name, one word, lowercase
PKG_DESCRIPTION= Brief description of the package
PKG_VERSION= Version, in x.y.z format
PKG_RELEASE= Correlative number from 1 onwards
PKG_MAINTAINER= Your name and email. Format: "name" < email >
PKG_VENDOR= Your company name
PKG_URL= URL of your product

FPM_OPTS="-n $PKG_NAME -v $PKG_VERSION --iteration $PKG_RELEASE"

fpm -s dir -t deb ${FPM_OPTS} -f \
    -maintainer "$PKG_MAINTAINER" \
    --vendor "$PKG_VENDOR" \
    --url "$PKG_URL" \
    --description "$PKG_DESCRIPTION" \
    --architecture "amd64" \
    -C /tmp/proj \
    .
PKG_NAME=应用程序名称,一个单词,小写
包装描述=包装的简要描述
PKG_VERSION=版本,x.y.z格式
PKG_发布=从1开始的相关编号
PKG_MAINTAINER=您的姓名和电子邮件。格式:“姓名”<电子邮件>
包装商=您的公司名称
PKG_URL=您的产品的URL
FPM_OPTS=“-n$PKG_名称-v$PKG_版本——迭代$PKG_发行版”
fpm-s dir-tdeb${fpm_OPTS}-f\
-维护者“$PKG_维护者”\
--供应商“$PKG_供应商”\
--url“$PKG_url”\
--说明“$PKG_说明”\
--架构“amd64”\
-C/tmp/proj\
.
就这样!
嗯,有很多东西需要学习。

这似乎表明确实应该有一个用于源发行版的
Makefile
。二进制发行版不需要makefile。谢谢,我已经找到了一个,但这只是说明什么是二进制软件包,而不是如何创建一个。有这样一个:,但它说:“这样一个新创建的归档文件的预期用途是只安装在您自己的设备上,而不是将它们安装到正式的Debian发行版中。”我不想将它们安装到正式的Debian发行版中,也不想只安装在我自己的设备上。我希望人们能够可靠地从我们自己的repo下载并安装它……那么你就没事了。作为一个开源存储库,Debian不会在没有源代码的情况下将包添加到他们的repo中。在你自己的回购协议中,你设定了自己的规则。谢谢!我也在经历同样的过程,文档在那里,但是很混乱,所以这确实是一个学习的过程!我得出了类似的结论,但是我不知道fpm,所以我会检查一下。