【发布时间】:2015-08-23 21:45:45
【问题描述】:
最初的问题 Packaging Go application for Debian 是三年多前提出的,当时 Go 正在静态链接可执行文件。
现在,有了新的 Go 1.5 版本,release note 说,
对链接器的更改允许将 Go 包作为共享库分发以链接到 Go 程序,并将 Go 包构建到可以链接到 C 程序或由 C 程序加载的存档或共享库中
我去了Debian GoPackaging wiki,却发现它还没有更新到Go 1.5,可能wiki没有维护,也可能没有,但是,
我只想知道,如果我想打包一个只依赖于官方 Go 包的工具,我应该如何利用共享库,而不是将我的应用程序构建成一个庞大的静态链接可执行文件?
我知道官方答复可能需要一些时间,但我可以等待。
感谢 Braiam 的回答,我走得更远了。
-
我跟着博客到了
head -100 debian/**/*的步骤,但我的输出与博客的完全不同。我的只是以下。有谁知道为什么以及如何解决?$ head -100 debian/**/* 3.0 (quilt) -
我尝试运行
gbp buildpackage --git-pbuilder,但遇到了错误:gbp:info: Building with (cowbuilder) for sid Base directory /var/cache/pbuilder/base.cow does not exist gbp:error: 'git-pbuilder' failed: it exited with 1 -
我检查并确认我已经安装了
cowbuilder&pbuilder:ii cowbuilder amd64 pbuilder running on cowdancer ii pbuilder all personal package builder for Debian packages
怎么了? pbuilder 这个 pbuilder 对我来说是新事物 I build Debian/Ubuntu Package with Docker。
【问题讨论】:
-
我认为 Debian 本身需要解决这个问题:假设他们切换到动态链接,我想他们会添加一个 Go stdlib 包,然后您针对该版本的 stdlib 构建并使其成为依赖项你的.deb。如果您需要 1.5 来构建(或出于某种原因真的想要它)并且 Debian 尚未采用它或为其编写规则,但我不确定您会做什么。
-
尚不清楚您是否可以依赖它:看起来 Debian 不稳定版仍在 1.4.2 上。 Ubuntu 已在 wily 中更新到 1.5rc1,但没有安装标准库的共享库版本,因此您可能需要依赖静态链接一段时间。
-
它增加了一个额外的级别,但godeb 对我来说工作得很好。至少它让你可以控制。
-
好吧,截至今天,Debian go 是
1.5.1。 -
很高兴知道,Debian GoPackaging wiki 已经提到了“示例二进制 + 库打包”。但仅此而已,需要输入更多细节。
标签: go debian-packaging