介绍
Go ,也称为golang ,是由Google开发的一种现代开源编程语言。 Go在许多应用程序中越来越受欢迎,它采用极简主义的开发方法,帮助您构建可靠,高效的软件。
本教程将指导您下载和安装Go,以及在Debian 9服务器上编译和执行基本的“Hello,World!”程序。
先决条件
要完成本教程,您需要访问Debian 9服务器和具有sudo
权限的非root用户,如使用Debian 9进行初始服务器设置中所述。
第1步 - 下载Go
在此步骤中,我们将在您的服务器上安装Go。
首先,安装curl
这样你就可以获得最新的Go版本:
sudo apt install curl
Advanced Packaging Tool(apt)是Linux下的一款安装包管理工具,是一个客户/服务器系统。
cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
接下来,访问官方Go下载页面 ,找到当前二进制版本的tarball的URL。 确保复制与64位体系结构兼容的最新版本的链接。
从您的主目录,使用curl
检索tarball:
curl -O https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz
虽然tarball来自真正的来源,但最佳做法是验证从Internet下载的项目的真实性和完整性。 此验证方法证明文件在下载过程中既未被篡改也未被破坏或损坏。 sha256sum
命令产生一个唯一的256位哈希:
sha256sum go1.12.5.linux-amd64.tar.gz
Outputgo1.12.5.linux-amd64.tar.gz
aea86e3c73495f205929cfebba0d63f1382c8ac59be081b6351681415f4063cf go1.12.5.linux-amd64.tar.gz
将输出中的哈希值与Go下载页面上的校验和值进行比较。 如果它们匹配,则可以安全地断定下载是合法的。
下载Go并验证文件的完整性后,我们继续安装。
我们现在将使用tar
来提取tarball。 x
标志告诉tar
提取, v
告诉它我们想要详细输出,包括正在提取的文件列表, f
告诉它我们将指定一个文件名:
tar xvf go1.12.5.linux-amd64.tar.gz
您现在应该在主目录中有一个名为go
的目录。 递归地将此目录的所有者和组更改为root ,并将其移动到/usr/local
:
sudo chown -R root:root ./go
sudo mv go /usr/local
注意:虽然/usr/local/go
是官方推荐的位置,但有些用户可能更喜欢或需要不同的路径。
此时,使用Go将需要在命令行中指定其安装位置的完整路径。 为了使与Go的交互更加用户友好,我们将设置一些路径。
第2步 - 设置Go路径
在此步骤中,我们将在您的环境中设置一些路径。
首先,设置Go的根值,告诉Go在哪里查找其文件:
vi ~/.profile
在文件末尾添加以下行:
export GOPATH=$HOME/work
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
如果为Go选择了不同的安装位置,则应将以下行添加到此文件中, 而不是上面显示的行。 在此示例中,我们将添加在主目录中安装Go时所需的行:
export GOROOT=$HOME/go
export GOPATH=$HOME/work
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
使用粘贴到配置文件中的相应行,保存并关闭文件。
接下来,通过运行以下命令刷新您
source ~/.profile
在Go安装到位并设置必要的环境路径后,让我们通过编写一个简短的程序来确认我们的设置是否有效。
export用于声明一个环境变量:
export variable=value
该环境变量只在本进程和其子进程中可以访问。
如果是在系统级的配置文件中,如/etc/profile中export 一个变量,那么这个变量就会在整个系统运行期间都起作用。
如果在用户级~/.bash_profile之类的文件中,则每次启动shell都会去读这个文件,所以每次打开shell也是可以取到这个值的。
如果在某一次运行中,手动export一个变量,则只在这次shell的使用中,才能访问这个变量,或者在该shell启动的其他程序中,也是可以访问这个变量的,因为它们是这个shell的子进程。
linux的桌面程序,是不读取个人目录下的~/.bash_profile等配置文件的,因此这些export的变量对用户桌面程序是没有意义的。
你说的登录,指的是shell的生命周期。
Go 语言关键的参数就是GOPATH 和GOROOR
现在已经安装了Go并为您的服务器设置了路径,您可以确保Go按预期工作。
为Go工作区创建一个新目录,Go将构建其文件:
mkdir $HOME/work
然后,在此文件夹中创建目录层次结构,以便您可以创建测试文件。 我们将以my_project
目录为例:
mkdir -p work/src/my_project/hello
接下来,您可以创建传统的“Hello World”Go文件:
nano ~/work/src/my_project/hello/hello.go
在编辑器中,将以下代码添加到文件中,该文件使用主Go包,导入格式化的IO内容组件,并设置一个新函数来打印“Hello,World!”。 运行时:
〜/工作/ src目录/ MY_PROJECT /你好/ hello.go
package main
import "fmt"
func main() {
fmt.Printf("Hello, World!\n")
}
当它运行时,该程序将打印“Hello,World!”,表示Go程序正在正确编译。
保存并关闭该文件,然后通过调用Go命令install
编译它:
go install my_project/hello
编译程序后,您可以通过执行以下命令来运行它:
hello
如果您看到以下输出,则Go已成功安装并正常运行:
OutputHello, World!
您可以使用which
命令查看已安装编译的hello
二进制文件的位置:
which hello
Output/home/sammy/work/bin/hello
“Hello,World!”程序确定您拥有Go开发环境。