首页 游戏 软件 资讯 排行榜 专题
首页
编程语言
如何在Ubuntu上打包Golang的命令行工具

如何在Ubuntu上打包Golang的命令行工具

热心网友
80
转载
2026-05-02

在Ubuntu上打包Golang的命令行工具

想把用Go写的命令行工具打包成Ubuntu上方便安装的.deb文件?这事儿其实没想象中那么复杂。只要按部就班走完下面几个关键步骤,你就能得到一个可以分发的专业安装包。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

如何在Ubuntu上打包Golang的命令行工具

第一步:打好基础,安装Go环境

首先,得确保你的Ubuntu系统已经装好了Go语言环境。如果还没安装,打开终端,两条命令就能搞定:

sudo apt update
sudo apt install golang-go

第二步:编写你的核心工具代码

接下来,用你顺手的文本编辑器创建一个Go文件,比如就叫main.go。把你的命令行工具功能都实现在这里面。这里有个关键细节:文件顶部的包声明,对于要生成可执行文件的命令行工具,务必使用package main

第三步:编译生成可执行文件

代码写好之后,打开终端,切换到main.go所在的目录。执行编译命令:

go build -o mycli main.go

运行成功的话,当前目录下就会生成一个名为mycli的可执行文件。你可以先运行./mycli试试,确保功能正常。

第四步:构建DEB包的目录结构

打包.deb文件,需要遵循特定的目录格式。先创建一个专门用于打包的目录:

mkdir mycli-deb

然后进入这个目录,并创建一个至关重要的DEBIAN子目录:

cd mycli-deb
mkdir DEBIAN

第五步:填写包的“身份证”——control文件

DEBIAN目录里,创建一个名为control的文件。这个文件包含了软件包的元数据信息:

nano DEBIAN/control

文件内容大致如下,你需要根据实际情况修改:

Package: mycli
Version: 1.0.0
Architecture: amd64
Maintainer: Your Name 
Description: A brief description of your CLI tool

填好后保存退出。这里面的PackageVersionMaintainer信息,是后续安装和管理的重要依据。

第六步:放入编译好的程序

现在,把之前编译好的mycli可执行文件,复制到打包目录的根位置:

cp ../mycli mycli-deb/

当然,如果你的程序结构更复杂,可能还需要创建类似usr/local/bin这样的子目录来存放它,这取决于你希望的最终安装路径。

第七步:执行打包,生成最终DEB文件

万事俱备,最后一步就是运行打包命令:

dpkg-deb --build mycli-deb mycli_1.0.0_amd64.deb

命令执行成功后,一个名为mycli_1.0.0_amd64.deb的安装包就诞生了。文件名通常遵循“包名_版本_架构”的约定,清晰明了。

安装与分发

拿到.deb文件后,在其他Ubuntu系统上安装就非常简单了,只需要一条命令:

sudo dpkg -i mycli_1.0.0_amd64.deb

看,整个过程是不是很清晰?从代码编译到打包成标准的Ubuntu安装包,每一步都环环相扣。遵循这个流程,你就能轻松地将自己的Golang命令行工具专业化地分发出去。

来源:https://www.yisu.com/ask/66371976.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

如何在Ubuntu中优化Node.js日志记录
编程语言
如何在Ubuntu中优化Node.js日志记录

在Ubuntu服务器上部署Node js应用,日志管理往往是决定后期维护效率的关键。一套清晰的日志策略,能让你在排查问题时事半功倍。今天,我们就来聊聊如何系统地优化Node js的日志记录。 1 使用日志库 第一步,也是最重要的一步,是告别原始的console log。成熟的日志库,比如winst

热心网友
05.02
如何在Ubuntu中设置Node.js日志
编程语言
如何在Ubuntu中设置Node.js日志

Ubuntu 服务器 Node js 日志配置与管理最佳实践指南 一 日志方案选型与对比 在 Ubuntu 环境中部署 Node js 应用时,选择合适的日志记录方案是确保系统可观测性的关键第一步。开发者通常可以从以下几个层面进行选择: 最基础的方法是直接使用 Node js 内置的 console

热心网友
05.02
Node.js在Ubuntu中的日志输出方式
编程语言
Node.js在Ubuntu中的日志输出方式

Node js 在 Ubuntu 的日志输出方式 一 内置方式与简单场景 最直接的方法是使用 console log 或 console error。这种方式简单直接,输出内容会发送到标准输出(stdout)或标准错误(stderr),非常适合在开发调试阶段快速查看信息。 然而,当您将 Node j

热心网友
05.02
Node.js在Ubuntu中日志文件在哪
编程语言
Node.js在Ubuntu中日志文件在哪

Node js 在 Ubuntu 系统中的日志文件存放位置详解 当您在 Ubuntu 服务器上运行 Node js 应用遇到问题时,定位日志文件是排查故障的第一步。然而,Ubuntu 系统本身并未为 Node js 应用预设一个统一的日志存放位置,具体路径完全取决于您的部署架构和配置方式。本文将为您

热心网友
05.02
如何编写有效的Ubuntu JS日志策略
编程语言
如何编写有效的Ubuntu JS日志策略

编写有效的Ubuntu JS日志策略 在Ubuntu环境下为Ja vaScript应用构建一套清晰的日志策略,绝非简单的代码输出。它更像是为你的应用搭建一套全天候的“健康监测系统”。一套设计得当的日志策略,能让你在问题发生时快速定位,甚至在用户感知之前就发现潜在风险。那么,如何搭建这套系统呢? 1

热心网友
05.02

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

Composer version字段如何写_Composer版本号定义教程【必看】
编程语言
Composer version字段如何写_Composer版本号定义教程【必看】

摘要应包含研究背景与目的、研究方法与过程、核心发现与结果、结论与意义四部分,依次简明陈述,突出创新点与关键数据,保持客观、独立、完整。 千万别碰 version 字段。 这可不是让你填项目版本号的地方,它更像一个“潘多拉魔盒”:一旦你写了,就等于向 Composer 宣告“这个包不走寻常路”——没有

热心网友
05.03
Notepad++怎么设置点击标签页时自动刷新文件
编程语言
Notepad++怎么设置点击标签页时自动刷新文件

Notepad++ 怎么设置点击标签页时自动刷新文件 很多开发者都遇到过这个场景:用外部工具修改了文件,切回Notepad++的标签页,却发现内容还是旧的。这其实不是软件出了问题,而是它的默认行为就是如此。今天,我们就来彻底搞清楚它的刷新逻辑,并找到最可靠的解决方案。 Notepad++ 点击标签页

热心网友
05.03
WebStorm怎么设置点击外部自动保存
编程语言
WebStorm怎么设置点击外部自动保存

WebStorm点击外部窗口时自动保存需勾选“Synchronize files on frame activation”,该选项独立于空闲保存,失焦瞬间即触发保存并支持on sa ve格式化,但须启用Mark modified标识以确认生效。 点击外部窗口时自动保存文件 你是不是也遇到过这种情况?

热心网友
05.03
Hyperliquid (HYPE):价格预测与每日回购推动潜在上涨
web3.0
Hyperliquid (HYPE):价格预测与每日回购推动潜在上涨

Hyperliquid (HYPE):价格预测与每日回购推动潜在上涨 Hyperliquid 的原生代币 HYPE,最近可是赚足了眼球。强劲的上涨势头,配合着持续不断的每日回购和扎实的技术面结构,正在吸引越来越多投资者的目光。一个绕不开的问题是:它是否已经具备了向加密货币市值前十发起冲击的潜力? 市

热心网友
05.03
如何利用CPUInfo优化系统性能
编程语言
如何利用CPUInfo优化系统性能

如何利用CPUInfo优化系统性能 在Linux系统调优的领域里,硬件信息是决策的基石。一个高效的优化闭环,往往始于对硬件的透彻理解,再辅以“监控—分析—调优”的持续迭代。今天要聊的,就是如何从 proc cpuinfo这个看似简单的文件出发,一步步提升系统的吞吐量、降低延迟,并兼顾能效。这套方法,

热心网友
05.03