专栏首页Golang语言社区mac系统下搭建go语言环境

mac系统下搭建go语言环境

1,首先查看是否安装go,或者安装版本

yishiyaonie:GO liuhanlin$ go versiongo version go1.5.1 darwin/amd64

记住版本不能过低,比如1.2,在以后的编译项目过程中可能会带来很多很多麻烦。切记。

2,配置go的开发环境

  • 首先要确定你的开发目录,也就是go项目的代码存放位置
mkdir -p /Users/liuhanlin/GO

  • 其次需要vi ~/.bash_profile ,有就直接打开,没有就创建一个新的。
export GOPATH=/Users/liuhanlin/GOexport GOBIN=$GOPATH/binexport PATH=$PATH:$GOBIN

加入如下环境变量控制,最后保存

source ~/.bash_profile 

3,检查搭建情况

yishiyaonie:GO liuhanlin$ go envGOARCH="amd64"GOBIN="/Users/liuhanlin/GO/bin"GOEXE=""GOHOSTARCH="amd64"GOHOSTOS="darwin"GOOS="darwin"GOPATH="/Users/liuhanlin/GO"GORACE=""GOROOT="/usr/local/go"GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"GO15VENDOREXPERIMENT=""CC="clang"GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"CXX="clang++"CGO_ENABLED="1"

gobin文件夹是用来存放go项目编译的二进制文件的

4,环境已经配置好,接下来搭建个工程玩玩

yishiyaonie:~ liuhanlin$ go get -u github.com/qor/qor-examplepackage golang.org/x/net/html: unrecognized import path "golang.org/x/net/html"package golang.org/x/image/bmp: unrecognized import path "golang.org/x/image/bmp"package golang.org/x/image/tiff: unrecognized import path "golang.org/x/image/tiff"package golang.org/x/net/context: unrecognized import path "golang.org/x/net/context"

我们发现有几个依赖的库没有下载下来,导致go get 没能正常的build编译。 解决方法有三种 1,访问外国网站,直到能够下载golang.org/x下的文件位置,建议不采用,因为我尝试过各种方式。 2,去gopm上去下载,手动下载的是zip包,但是在编译的时候会报错误,具体错误应该是跟git有关的。 3,最简单,最快捷的方式就是直接到git上面去git clone。接下来采用git clone的方式。

mkdir -p golang.org/x/
cd /Users/liuhanlin/GO/src/golang.org/xgit clone https://github.com/golang/net.gitgit clone https://github.com/golang/image.git

5,重新运行下go get

go get -u github.com/qor/qor-exampleyishiyaonie:GO liuhanlin$ ls
bin pkg src

我们看到go get 在下载包的同时,也编译了文件,但是此时的文件是有问题的,当真正运行的时候是有错误的。可能就是所谓的动态编译何静态编译的问题吧。

6,接下来需要创建数据库

登录云主机
liuhanlin$ ssh -i ~/.ssh/vm1-ssh-key root@ip
登录mysql
mysql -u root -p输入:
GRANT ALL ON *.* TO username@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 
退出
vi /etc/mysql/my.cnf
bind-address = 127.0.0.1改为:
bind-address = 0.0.0.0sudo /etc/init.d/mysql restart
然后访问下
mysql -h ip -u root -p

如果成功代表ok

7,运行go cms 项目

liuhanlin$ cd $GOPATH/src/github.com/qor/qor-example

liuhanlin$ go run main.goFailed to find configuration config/database.yml, using example file config/database.example.ymlpanic: dial tcp 127.0.0.1:3306: getsockopt: connection refused

goroutine 1 [running]:
github.com/qor/qor-example/db.init.1()
    /Users/liuhanlin/GO/src/github.com/qor/qor-example/db/db.go:44 +0x4c1github.com/qor/qor-example/db.init()
    /Users/liuhanlin/GO/src/github.com/qor/qor-example/db/db.go:46 +0x6dgithub.com/qor/qor-example/app/models.init()
    /Users/liuhanlin/GO/src/github.com/qor/qor-example/app/models/user.go:21 +0x74github.com/qor/qor-example/config/admin.init()
    /Users/liuhanlin/GO/src/github.com/qor/qor-example/config/admin/worker.go:133 +0x6cmain.init()
    /Users/liuhanlin/GO/src/github.com/qor/qor-example/main.go:29 +0x4agoroutine 17 [syscall, locked to thread]:
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:1696 +0x1goroutine 20 [chan receive]:
database/sql.(*DB).connectionOpener(0xc820282f00)
    /usr/local/go/src/database/sql/sql.go:634 +0x45created by database/sql.Open
    /usr/local/go/src/database/sql/sql.go:481 +0x336exit status 2

哇,报错了。很显然啊,这是数据库的链接报错,或许是因为密码不对,或者数据库不存在,或者数据库网络不通都有可能。所以接下来。

yishiyaonie:qor-example liuhanlin$ vi config/database.example.yml加入访问密码yishiyaonie:qor-example liuhanlin$ cat config/database.example.yml db:
  adapter: mysql
  name: qor_example
  user: root
  password: 。。。

8, 修改远程连接数据库代码

fmt.Sprintf("%v:%v@tcp(ip:3306)/%v", dbConfig.User, dbConfig.Password, dbConfig.Name))

9,运行go项目

yishiyaonie:qor-example liuhanlin$ go run main.go 
Failed to find configuration config/database.yml, using example file config/database.example.yml
[info] replacing callback `gorm:delete` from /Users/liuhanlin/GO/src/github.com/qor/publish/publish.go:144Failed to create unique index for translations key & locale, got: Error 1170: BLOB/TEXT column 'key' used in key specification without a key length(Error 1170: BLOB/TEXT column 'key' used in key specification without a key length) [2016-05-29 18:00:07]  
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /                         --> github.com/qor/qor-example/app/controllers.HomeIndex (3 handlers)
[GIN-debug] GET    /products/:code           --> github.com/qor/qor-example/app/controllers.ProductShow (3 handlers)
Listening on: 7000[GIN] 2016/05/29 - 18:00:48 | 200 |  282.869157ms | ::1 |   GET     /

10,访问本地环境

http://localhost:7000/admin

ok,花了周末两天时间学了好多东西,希望能帮到同样需要帮助的人。

本文分享自微信公众号 - Golang语言社区(Golangweb)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-06-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Go语言TCP Socket编程--1

    Go语言TCP Socket编程 Golang的 主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应...

    李海彬
  • GO语言学习:go语言实现android应用的步骤

    go语言在1.4版本就提供了编辑Android应用的功能,但当时最简单的方法是使用Docker来配置,而且在编辑和导入过程也不是很方便。 在go语言1.5以后提...

    李海彬
  • Golang 命令

    go buildgo build 命令用于编译我们指定的源码文件或代码包以及它们的依赖包。go build [-o output] [-i] [build fl...

    李海彬
  • CentOS系统自动下载RPM包及其所有依赖的包

    程序员同行者
  • SpringCloud分布式配置中心

    Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持。配置服务器为各应用的所有环境提供了一个中心化的外部配置。它实现了对服务端...

    刘文正
  • R语言基础教程——第六章:函数

    一个函数是组合在一起以执行特定任务的一组语句。R具有大量内置函数,当然用户也可以创建自己的功能。

    DoubleHelix
  • C++核心准则E.17:不要试图在所有函数中捕捉所有异常

    E.17: Don't try to catch every exception in every function

    面向对象思考
  • ​引入一项新技术前,我们该想清楚什么?

    很多小伙伴在工作遇到一定瓶颈的时候,都希望引入一些新技术来解决问题,比如最近经常在群里看到大家聊:

    木东居士
  • CVE-2019-0232-ApacheTomca远程执行代码漏洞复现

    2019年4月13号,Apache Tomcat 9.0.18版本公告中提到,本次更新修复了一个代号为CVE-2019-0232的漏洞。

    墙角睡大觉
  • Activity 的 Window 创建过程

    Activity Window创建最终在ActivityThread 中的performLaunchActivity方法中,调用Activity的attach方...

    Yif

扫码关注云+社区

领取腾讯云代金券