
本来打算交叉编译,就是在Windows上配置:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64
之后进行打包
(记得在一个bash里面设置和打包,go env -w CGO_ENABLED=0…j进入项目根目录:go build -o=target -mod=vendor ./agent)
但在linux上执行的时候报Binary was compiled with ‘CGO_ENABLED=0’, go-sqlite3 requires cgo to work. This is a stub
遂在linux上安装go环境,在上面打包部署了:
--------------------.安装配置go环境--------------------
下载go1.10.linux-amd64.tar.gz到usr/local
.tar.gz 结尾 用 tar -zxvf go1.5.linux-amd64.tar.gz 解压
.tar 结尾 用 tar xvf go1.5.linux-amd64.tar 解压
cd到根目录 执行命令 mkdir /go_src
输入 vi /etc/profile 进行编辑profile文件
输入 i 编辑如下
输入 :wq保存 ,回车即可
使配置生效,执行source /etc/profile命令
go version查看结果,正常就配置好环境了
--------------------.编译打包go项目--------------
cd到代码目录
执行 go build -o=target -mod=vendor ./agent
chmod 777 agent
最后执行 ./agent httpagent就行了。
如果想让项目在后台执行:执行 nohup /app/target/agent httpagent &
-----附:
编辑:vi /etc/profile
插入:按一下i
保存并退出:按一下esc,然后输入 :wq ,回车即可
不保存退出 :按一下esc,然后输入 :q! ,回车即可
点击 Esc 键,Vim 进入命令模式。然后输入: :q ——退出(这是 :quit 的缩写) :q! ——不保存退出(这是 :quit! 的缩写) :wq ——写入文件并退出;(这是 :writequit 的缩写) :wq! ——(如果文件只有读权限)写入并退出(如果文件没有写权限,强制写) :x ——类似于 :wq,如果文件无变动,那就不写入 :qa ——退出全部(这是 :quitall 的缩写) ZZ —— (大写的 Z)如果文件有变动,写入/保存,然后退出; ZQ —— 如果不想保存文件,也可以这个命令退出;