最近翻起了自己之前购买的树莓派,决定拿起树莓派结合自己正在学习的Go 语言搞搞事情。这里第一先搭建环境配合运行Go 程序。
一、树莓派的安装
环境介绍: 树莓派3B、WIN10、16G CLASS10 TF卡、读卡器、Advanced IP Scanner、MobaXterm、go1.8.3.linux-armv6l.tar.gz
树莓派是直接启动SD卡上的系统,这里有一个16GB的TF卡,一个读卡器,连接到电脑。在电脑上下载一个软件 win32DiskImager 。并且到树莓派官网下载一个最新的镜像文件,RASPBIAN STRETCH LITE。这里因为我没有多余的显示器,就直接用最新的镜像文件了。
上面都准备好了过后就可以使用 win32DiskImager 烧录上面的 IMG文件 文件到SD卡上了,这里要注意别选错分区。烧录好了打开 我的电脑 找到TF卡上的 BOOT 分区,并在里面新建一个以 ssh 为名字的文件(树莓派默认不打开ssh了,使用这个方式可以让其默认打开ssh)。
现在可以启动树莓派了,插上网线到路由器上,在路由器上就可以看到树莓派的IP了。但是因为我这里是交换机,上次也有很多设备,所以我使用了IP扫描工具 Advanced IP Scanner。扫描后可以看到我的树莓派的 IP 是 192.168.77.140
找到IP过后就可以使用 ssh 登录上去了(默认帐号:pi 默认密码:raspberry)。这里我的ssh软件使用的是 mobaXterm 非常的强大,举个列子就是:登录ssh上去的时候默认也会在旁边开启sftp,可以直接拖文件,非常的方便。
二、树莓派的配置
树莓派使用ssh登录进去过后需要先配置一下,这里就介绍下最基本的配置:
2.1 密码修改
使用下面命令,修改初始密码。这里需要按照提示先输入原始密码,然后两次输入新密码。
passwd
2.2 修改默认源
树莓派的默认源是在国外,国内使用时可能会出现比较慢的情况,这里将源修改为 aliyun 提供的源。为了方便我先安装了 vim 软件,因为实在用不惯树莓派自带的 vi 软件。
sudo apt-get update
sudo apt-get install vim -y
然后进行修改源的操作:
sudo vim /etc/apt/sources.list
//注释掉原来的源
//然后添加以下源
deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main non-free contrib rpi
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ stretch main non-free contrib rpi
//这里因为下载的系统是 RASPBIAN STRETCH LITE 所有我这里使用了 stretch 源。
保存过后就可以直接更新了:
sudo apt-get update
sudo apt-get upgrade -y
到此系统简单配置上来说已经完成了。
三、Go 的安装
书写本文时候,golang 最新版本是 1.8.3 ,同时提供了arm版本的二进制包,可以在如下网站上下载 go1.8.3.linux-armv6l.tar.gz。
下载好了之后就可以进行安装测试了,首先将压缩包传入树莓派中。这里我使用的是 mobaxterm 的sftp端,非常便捷的拖入进去了。
进入相应目录后:
sudo tar -C /usr/local -zvxf go1.8.3.linux-armv6l.tar.gz
然后修改下环境变量,这里我就偷懒直接修改系统的。
sudo vim /etc/profile
//在文件末尾添加如下内容
export PATH=$PATH:/usr/local/go/bin
然后重启一下树莓派就好了。
sudo reboot
//不重启也行,使用source 命令应用修改
source /etc/profile
到这里可以试一下看看go是否安装好了。在bash中输入 go 回车,如果输出一堆东西而不是找不到文件,那么就是安装好了。
四、实验
环境安装好了过后就可以尝试下运行go程序了,编写如下代码:
package main
import "fmt"
func main(){
fmt.Printf("hello world\n");
}
保存为 main.go 文件。敲入以下命令:
go build main.go
strip main -o main1
ls -al
最后我们看到目录中出现了三个文件,main main1 main.go ,查看到文件过后发现编译生成的文件是真的大,好家伙这样子直接1M多。strip过后也有900K左右。下面运行下看看正确否。
./main
./main1
正常输出,没什么毛病。