栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

国产服务器上(银河麒麟)上玩转Golang

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

国产服务器上(银河麒麟)上玩转Golang

先挖个坑啊。今天的文章只是简单了写了一下如何把Goland程序跑起来。
随着现在政府国产化的要求越来越,现在的安可项目慢慢地深入了,之前只是要求客户端国产化,比如浏览器、办公电脑、数据库。现在到服务器这一层也要进行国产化。
国产服务器一般搭载Linux操作系统,而且服务器硬件基本上是以Arm为主。
公司今年采购了一台银河麒麟服务,上面已安装好了麒麟操作系统


下面开始

一、Hello World程序

如何编写就省过了。这块可以省略了。
我的开发环境是Windows,要编译Arm的程序,必进行进行交叉编译。
运行参数:
CGO_ENABLED=0 GOOS=linux GOARCH=arm go build main.go
直接把程序丢到服务器上,运行main。显示成功

二、自己的程序丢到服务器

很不幸,我的程序用到了Oracle Client驱动,是CGO的库,没法子进行交叉编译,只能把源码丢到服务器上编译。

安装Goland SDK

直接用wget 下载 Golang https://studygolang.com/dl/golang/go1.16.6.linux-amd64.tar.gz
放到 /usr/local 目录
解压后 配置环境变量

vi /etc/profile

加入

export PATH=$PATH:/usr/local/go/bin
source /etc/profile 

生配置生效
运行go version看是否成功

最后修改一下代理地址

go env -w GOPROXY=https://goproxy.cn
调试Oracle 环境

下载 arm版本的 oracle client
https://download.oracle.com/otn_software/linux/instantclient/191000/instantclient-basic-linux.arm64-19.10.0.0.0dbru.zip

/usr/local/oracle
解压之后进行配置 /etc/profile

export ORACLE_HOME=/usr/local/oracle
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME
export PATH=$ORACLE_HOME:$PATH

运行让配置生效

source /etc/profile 
上传代码进行编译

我这里手动上传代码
运行 go build 进行编译,我这里就出现个问题,由于之前,我的oracle驱动用的是oci8,这个驱动很麻烦,还有下载pkg-config,后来换成godror,只要client就可以了

编译成功,也能跑起来了
测试数据库连接发现一个问题,提示缺少 /usr/local/oracle/lib/libclntsh.so
但我的目录下是没有lib文件夹的,网上有资料可以用软链接。我直接生硬地建一个文件夹,再把文件复制一次。

再运行提示少了libaio.so 库,直接安装一下这个库即可。 apt-get install libaio*

最后大功告成,可以运行了。
详细的测试我还没有走过。先留一个坑。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/944485.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号