Deepin 操作系统是由武汉深之度科技有限公司基于 Debian 开发的Linux发行版。
因为这是本人关于在 Deepin 虚拟机上工作、学习的第一篇博客,所以想简要介绍一下 Deepin 的使用情况。
优势
- 个人选择 Deepin 是因为其安装简单,而且没有Ubuntu那么多坑,可以在10分钟内很轻松地进行 Deepin 虚拟机的创建。
- Deepin 的界面十分友好,有时尚模式和高效模式,但无论哪种模式都可以满足我个人审美的体验,相比于身边同学使用的比较多的 Ubuntu ,这款操作系统以它的小巧和精致打动了我。
遇到问题的解决
Deepin采用的是Debian的一个稳定分支进行拓展而来,因此遇到诸如软件包安装此类的问题,可以直接参考Debian系统下的解决方案。
版本的选择
目前Deepin已经更新到了23预览版以及20.7的稳定版,15.4版已确定停止更新,建议选择15.4的旧版,其稳定性是20版完全无法媲美的,而且对于虚拟机使用的系统来说,保持更新不如求稳。
官网已停止提供15版的虚拟光盘下载,此处提供一个百度网盘下载链接:
下载链接:https://pan.baidu.com/s/17zxA1dCBlxP3qN6RUn7utQ?pwd=sg4y
提取码: sg4y
# VSCode 安装 在官网下载 VSCode 程序包: 下载地址: [https://go.microsoft.com/fwlink/?LinkID=760868](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 包进行管理,包括安装、卸载、升级等。
go version
GoLang 环境变量配置
Go程序包默认安装到了 /usr/local/go,并且已经自动配置了 GOROOT。
我们现在需要自己创建一个文件夹作为 Go 的工作空间。
为方便起见我直接在桌面创建了 GoEnv 文件夹(鼠标右键 - 新建文件夹),由于不是在终端创建的,所以可以直接使用图形化的界面进行文件的创建和修改,这个在后面用 VSCode 打开工作空间,才能够直接在 VSCode 中创建文件。
/etc/profilesudo vim /etc/profile
# GOROOT: GO的安装路径
export GOROOT=/usr/local/go
# GOPATH: GO的工作路径
export GOPATH=
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
然后在终端运行:
source /etc/profilego env
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
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
$GOPATH/src/golang.org/x/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 指定的工作区间查找,我们只需保证包的名字是正确的即可:
$GOPATH/bin/hello$GOPATH/bin
安装、运行 go tour
git clonego install
git clone https://github.com/Go-zh/tour.git
go install
go install github.com/Go-zh/tour.git
安装后执行结果如下:
为 hello 包添加自定义的库
之前我们创建与编写的 hello 包只是一个非常基本的示例,现在我们要创建一个自己的库供 hello.go 文件使用。
- 在 $GOPATH/src/github.com/github-user/文件夹下创建库所在的文件夹 /stringutil
// 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)
}
go build github.com/github-user/stringutil
go install github.com/github-user/hello
测试
Go 自带的轻量级测试框架会自动运行每一个名字以 _test.go 结尾的,且包含名为 TestXXX 且签名为 func (t *testing.T) 函数的文件来进行测试;若该函数调用了像 t.Error 或 t.Fail 这样表示失败的函数,此测试即表示失败。
下面直接说明测试流程:
$GOPATH/src/github.com/github-user/stringutil/reverse_test.go
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)
}
}
}
go test
sudo apt-get install gitgo installgo rungo install$GOPATH/src$GOPATH