如何将Go二进制文件放入Debian软件包?因为Go是静态链接的,所以我只有一个可执行文件——我不需要太多复杂的项目元数据信息.有没有一种简单的方法可以打包可执行文件和资源文件,而不必经历debuild
年的创伤?
我已经到处寻找现有的问题;然而,我的所有研究都发现了关于包含golang开发环境的.deb文件的问题/答案(即,如果使用sudo apt-get install golang-go
个文件,您会得到什么).
如何将Go二进制文件放入Debian软件包?因为Go是静态链接的,所以我只有一个可执行文件——我不需要太多复杂的项目元数据信息.有没有一种简单的方法可以打包可执行文件和资源文件,而不必经历debuild
年的创伤?
我已经到处寻找现有的问题;然而,我的所有研究都发现了关于包含golang开发环境的.deb文件的问题/答案(即,如果使用sudo apt-get install golang-go
个文件,您会得到什么).
井.我认为debuild
的唯一"创伤"是它在构建包之后运行lintian
,而lintian
是试图发现包问题的人.
因此,有两种方法可以应对这种情况:
debuild
:此工具只调用dpkg-buildpackage
,它真正执行必要的提升.构建二进制包的通常调用是dpkg-buildpackage -us -uc -b
.你也可以出于其他目的拨打debuild
,比如debuild clean
.lintian
对你的包裹中的selected个问题视而不见,你坚持认为这些问题不是问题.这两种方法都意味着你可以通过打包工具来创建你的应用程序,而不是把它当作一个只包装到一个包中的blob.这将需要稍微远离正常的工作方式(不要try 构建任何东西).
另一个可能的解决方案(实际上更像Debian-ish)是try 使用gcc-go
(加上gold
用于链接):因为它是一个GCC前端,这个工具生成一个动态链接的应用程序(链接到libgo
或类似的东西).我个人还没有经验,如果你想把你的包推到Debian合适的地方,它只会考虑使用它.
关于为Debian打包Go程序的一般问题,您可能会发现以下资源很有用:
2015年10月15日Update分.
(由于这篇帖子似乎还在被人们搜索、查找和研究,我决定更新它,以更好地反映当前的情况.)
从那时起,打包围棋应用程序和软件包的情况得到了戏剧性的改善,可以使用"classic "围棋(所谓的gc
套来自谷歌的套件)而不是gcc-go
来构建Debian软件包.
而且包也有很好的基础设施.
现在,对围棋程序进行Debianing时使用的关键工具是dh-golang
here.