如何将Go二进制文件放入Debian软件包中?由于Go是静态链接的,所以我只有一个可执行文件- 我不需要很多复杂的项目元数据信息。有没有一种简单的方法就可以打包可执行文件和资源文件,而又不会遭受创伤debuild?
debuild
我到处寻找现有的问题;但是,我所有的研究都对包含golang开发环境的.deb文件提出了疑问/答案(即,如果这样做会得到什么sudo apt-get install golang-go)。
sudo apt-get install golang-go
好。我认为唯一的“创伤” debuild是它lintian在构建软件包后运行,并且是lintian谁试图找出您的软件包存在的问题。
lintian
因此,有两种方法可以应对这种情况:
dpkg-buildpackage
dpkg-buildpackage -us -uc -b
debuild clean
两种方法都暗示您 不尝试 使用打包工具 来构建 应用程序,而是将其视为仅打包到包中的Blob。这将需要正常debian/rules工作的一些限制(不要尝试构建任何东西)。
debian/rules
可能的 另一种解决方案(实际上更像Debian)是尝试使用gcc- go(加上gold链接):由于它是GCC前端,因此该工具会生成动态链接的应用程序(链接到libgo或类似这个)。我个人还没有使用过它,只有在您打算尝试将软件包推入Debian中时才考虑使用它。
gcc- go
gold
libgo
关于为Debian打包Go程序的一般问题,您可能会发现以下有用的资源:
2015 年10月15日 更新 。
(由于该帖子似乎仍被人们搜索和发现,因此我决定对其进行更新,以更好地反映当前的状况。)
从那时起,打包Go应用程序和程序包的情况得到了显着改善,并且可以使用“经典” Go(gc源自Google 的所谓套件)而不是来构建Debian程序包gcc-go。并且也存在用于打包的良好基础结构。
gc
gcc-go
现在dh- golang介绍在对Go程序进行Debian化时要使用的关键工具。
dh- golang