天天看点

Linux(Deepin):GoLang 安装、配置、简单使用与包测试Deepin 简介VSCode 安装GoLang 安装配置Go 必要工具与插件的安装安装、运行 go tour我的第一个(功能齐全的)包与测试小结

目录

  • Deepin 简介
    • 优势
    • 劣势
  • VSCode 安装
  • GoLang 安装配置
    • GoLang 环境变量配置
    • GoLang 的简单使用
  • Go 必要工具与插件的安装
    • git 客户端的安装
    • VSCode 插件安装
  • 安装、运行 go tour
  • 我的第一个(功能齐全的)包与测试
    • 为 hello 包添加自定义的库
    • 测试
  • 小结

Deepin 简介

Deepin 操作系统是由武汉深之度科技有限公司基于 Debian 开发的Linux发行版。

因为这是本人关于在 Deepin 虚拟机上工作、学习的第一篇博客,所以想简要介绍一下 Deepin 的使用情况。

优势

  1. 个人选择 Deepin 是因为其安装简单,而且没有Ubuntu那么多坑,可以在10分钟内很轻松地进行 Deepin 虚拟机的创建。
  2. Deepin 的界面十分友好,有时尚模式和高效模式,但无论哪种模式都可以满足我个人审美的体验,相比于身边同学使用的比较多的 Ubuntu ,这款操作系统以它的小巧和精致打动了我。
Linux(Deepin):GoLang 安装、配置、简单使用与包测试Deepin 简介VSCode 安装GoLang 安装配置Go 必要工具与插件的安装安装、运行 go tour我的第一个(功能齐全的)包与测试小结

劣势

本人目前主要是使用 Linux 来做一些小的编程工作,所以会用到很多的软件库,那么 Deepin 对软件库的支持目前来看没有无法解决的问题。但是有一点就是出现的问题往往无法在百度或者 CSDN 上直接搜索到 Deepin 操作系统的解决方案,只能是参考如:CentOS 等操作系统下的解决方案。

VSCode 安装

在官网下载 VSCode 程序包:

下载地址: https://go.microsoft.com/fwlink/?LinkID=760868

也可以在 /usr/local文件夹下打开终端,使用:

sudo wget https://go.microsoft.com/fwlink/?LinkID=760868

直接获取代码压缩包,然后解压即可。

打开代码文件夹,在 bin 文件夹下即可找到可执行文件 code,双击就可以开始使用 VSCode 了。

GoLang 安装配置

使用:

sudo yum install golang

即可安装 GoLang

yum 全称 Yellow dog Updater Modified,yum 的主要用途是对 rpm 包进行管理,包括安装、卸载、升级等。

可以参考:https://www.cnblogs.com/ct20150811/p/10696635.html 来进行 yum 的安装、配置。

安装完成,在终端输入:

go version

Linux(Deepin):GoLang 安装、配置、简单使用与包测试Deepin 简介VSCode 安装GoLang 安装配置Go 必要工具与插件的安装安装、运行 go tour我的第一个(功能齐全的)包与测试小结

GoLang 环境变量配置

Go程序包默认安装到了 /usr/local/go,并且已经自动配置了 GOROOT。

我们现在需要自己创建一个文件夹作为 Go 的工作空间。

为方便起见我直接在桌面创建了 GoEnv 文件夹(鼠标右键 - 新建文件夹),由于不是在终端创建的,所以可以直接使用图形化的界面进行文件的创建和修改,这个在后面用 VSCode 打开工作空间,才能够直接在 VSCode 中创建文件。

现在可以来配置工作空间的环境变量了:

Deepin 系统的环境变量的配置文件路径为

/etc/profile

可以直接运行:

sudo vim /etc/profile

然后在文件的最后面添加:

# GOROOT: GO的安装路径
export GOROOT=/usr/local/go
# GOPATH: GO的工作路径
export GOPATH=
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
           

然后在终端运行:

Linux(Deepin):GoLang 安装、配置、简单使用与包测试Deepin 简介VSCode 安装GoLang 安装配置Go 必要工具与插件的安装安装、运行 go tour我的第一个(功能齐全的)包与测试小结

source指令可以让配置文件立即生效,但是运行

source /etc/profile

之后命令行变为了奇怪的颜色,然后关闭终端后,配置便失效了,于是我尝试把网上两种更新源的方法组合起来,颜色恢复正常,同时配置也持久化了!

使用

go env

检验 GOPATH 配置情况:

GOPATH="/home/tommy/Desktop/GoEnv"
           

GoLang 的简单使用

首先在工作空间创建我们的项目文件夹:

mkdir $GOPATH/src/github.com/github-user/hello -p
           

然后我们用 VSCode 打开工作空间所在的文件夹(也就是之前创建在桌面的 GoEnv),在 VSCode 中找到我们创建项目文件夹,创建 hello.go 文件,编辑、保存:

package main
import "fmt"
func main() {
    fmt.Printf("hello, world\n")
}
           

在终端使用:

go run hello.go

Linux(Deepin):GoLang 安装、配置、简单使用与包测试Deepin 简介VSCode 安装GoLang 安装配置Go 必要工具与插件的安装安装、运行 go tour我的第一个(功能齐全的)包与测试小结

Go 必要工具与插件的安装

git 客户端的安装

使用:

sudo yum install git

VSCode 插件安装

在 VSCode 中创建了一个 .go 文件之后,会立即弹窗让我安装相关插件,但是点击安装,又全部都安装失败了。

只是因为无法连接 golang 的官网获取工具包。

于是我们只能从 Github 上下载工具包后进行安装:

# 创建文件夹
mkdir $GOPATH/src/golang.org/x/ -p
# 下载源码
go get -d github.com/golang/tools
# copy 
cp $GOPATH/src/github.com/golang/tools $GOPATH/src/golang.org/x/ -rf
           

下载源码的过程莫名失败,这时不必慌张,可以直接用 git clone 将源码克隆到我们需要的文件夹,也即

$GOPATH/src/golang.org/x/tools

具体过程即为:创建 tools 文件夹,然后在文件夹内打开终端,运行:

sudo git clone https://github.com/golang/tools.git
           

然后我们关闭 VSCode 后,再次进入,重新进入 .go 文件,VSCode便会再次弹窗让我们安装所有的插件,这时我们直接开始安装,稍等片刻(10 mins)即可安装完成。

现在我们可以安装我们自己编写的程序了:

go install github.com/github-user/hello
           

注意我们可以在系统的任何地方运行这个指令,因为 go 会自动在 GOROOT 和 GOPATH 指定的工作区间查找,我们只需保证包的名字是正确的即可:

Linux(Deepin):GoLang 安装、配置、简单使用与包测试Deepin 简介VSCode 安装GoLang 安装配置Go 必要工具与插件的安装安装、运行 go tour我的第一个(功能齐全的)包与测试小结

此命令会构建 hello 命令,产生一个可执行的二进制文件,接着它会将该二进制文件作为 hello 安装到工作空间的 bin 目录中,可以直接使用

$GOPATH/bin/hello

执行该命令。

如果已经把

$GOPATH/bin

添加到环境变量中了,就可以像图中那样,直接运行 hello 命令(感觉离写游戏脚本又近了一步)。

安装、运行 go tour

Go 语言学习之旅(go tour)是 Github 上的一个软件库,我们可以直接

git clone

下来,然后用

go install

进行下载,这样我们就可以离线运行这款软件。

git clone https://github.com/Go-zh/tour.git
           

然后执行

go install

go install github.com/Go-zh/tour.git
           

安装后执行结果如下:

Linux(Deepin):GoLang 安装、配置、简单使用与包测试Deepin 简介VSCode 安装GoLang 安装配置Go 必要工具与插件的安装安装、运行 go tour我的第一个(功能齐全的)包与测试小结

我的第一个(功能齐全的)包与测试

参考:如何使用 GO 编程

为 hello 包添加自定义的库

之前我们创建与编写的 hello 包只是一个非常基本的示例,现在我们要创建一个自己的库供 hello.go 文件使用。

  1. 在 $GOPATH/src/github.com/github-user/文件夹下创建库所在的文件夹 /stringutil
    Linux(Deepin):GoLang 安装、配置、简单使用与包测试Deepin 简介VSCode 安装GoLang 安装配置Go 必要工具与插件的安装安装、运行 go tour我的第一个(功能齐全的)包与测试小结
  2. 然后在 /stringutil 文件夹下创建名为 reverse.go 的文件,同时编辑:
// stringutil 包含有用于处理字符串的工具函数。
package stringutil

// Reverse 将其实参字符串以符文为单位左右反转。
func Reverse(s string) string {
	r := []rune(s)
	for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
		r[i], r[j] = r[j], r[i]
	}
	return string(r)
}
           
  1. 使用:

    go build github.com/github-user/stringutil

    编译该包,build 不会产生任何输出。
  2. stringutil 包构建完成后,将其添加到 hello 的 import 中:
Linux(Deepin):GoLang 安装、配置、简单使用与包测试Deepin 简介VSCode 安装GoLang 安装配置Go 必要工具与插件的安装安装、运行 go tour我的第一个(功能齐全的)包与测试小结
  1. 再次运行:

    go install github.com/github-user/hello

    ,运行生成的 hello 命令,可以看到 stringutil.Reverse 函数成功将字符串反向,输出为 “Hello, Go!”
Linux(Deepin):GoLang 安装、配置、简单使用与包测试Deepin 简介VSCode 安装GoLang 安装配置Go 必要工具与插件的安装安装、运行 go tour我的第一个(功能齐全的)包与测试小结

测试

Go 自带的轻量级测试框架会自动运行每一个名字以 _test.go 结尾的,且包含名为 TestXXX 且签名为 func (t *testing.T) 函数的文件来进行测试;若该函数调用了像 t.Error 或 t.Fail 这样表示失败的函数,此测试即表示失败。

下面直接说明测试流程:

  1. 创建文件

    $GOPATH/src/github.com/github-user/stringutil/reverse_test.go

    来为 stringutil 添加测试:
package stringutil

import "testing"

func TestReverse(t *testing.T) {
	cases := []struct {
		in, want string
	}{
		{"Hello, world", "dlrow ,olleH"},
		{"Hello, 世界", "界世 ,olleH"},
		{"", ""},
	}
	for _, c := range cases {
		got := Reverse(c.in)
		if got != c.want {
			t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
		}
	}
}
           
  1. 在 /stringutil 文件夹下运行:

    go test

    进行测试:
Linux(Deepin):GoLang 安装、配置、简单使用与包测试Deepin 简介VSCode 安装GoLang 安装配置Go 必要工具与插件的安装安装、运行 go tour我的第一个(功能齐全的)包与测试小结

小结

  1. 这是第一次真正在 CSDN 上写博客,感觉编辑工具非常人性化,看着自己打的 Markdown 语法在右侧呈现出了自己想要的效果还是很舒服的。
  2. 这次实验的过程中使用 Deepin 并不是很愉快,虽然表面上说 Deepin 可以完成大部分的需要,但是在使用 yum 安装 git 的时候出现 “事务检测错误“ ,但是网上只有 CentOs 的解决方案,而 Deepin 不支持直接使用 rpm 安装、卸载文件,导致无法使用教程,而且问题的报错也很是奇怪,但是最后使用

    sudo apt-get install git

    成功安装了 git,但没使用 yum 安装成功总还是有些担心。所以大家还是尽量使用 CentOS 或者 Ubuntu 等大规模的操作系统为好,这样可以在社区找到更多问题的解决方案。本人也考虑近期更换使用的虚拟机操作系统了。
  3. 初识 Go 语言,首先是为之

    go install

    命令的功能所震撼,创建一条二进制指令,在系统的任何地方都能够执行,感觉很高大上。关于语言的更多语法和特性应该会在之后的博客中总结。
  4. 在命令行使用

    go run

    go install

    等指令的时候,一定要记清楚指令自动的搜索范围是

    $GOPATH/src

    而不是

    $GOPATH

    因为 src 文件夹才是存储源码的文件夹,pkg 文件夹用来存储包对象,而 bin 文件夹下为可执行文件。

继续阅读