本来打算交叉编译,就是在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 —— 如果不想保存文件,也可以这个命令退出;