如果存在使用apt安装的旧版golang,先卸载旧版程序
sudo apt-get remove golang-go

接着去官网下载最新版本的,下载地址:

https://golang.org/dl/

选择好须要安装的版本之后从Ubuntu上面下载该版本,这里我下载最新版本

wget https://golang.org/dl/go1.15.5.linux-amd64.tar.gz

然后解压压缩包到安装目录,这里我安装到 /opt 目录下面

tar -zxvf go1.15.5.linux-amd64.tar.gz -C /opt

接下来设置环境变量,编辑用户目录下面的.profile文件

cd ~/ && nano .profile

添加以下内容

export GOROOT=/opt/go              
export GOPATH=$HOME/go             
export GOBIN=$GOPATH/bin           
export PATH=$GOPATH:$GOBIN:$GOROOT/bin:$PATH 

GOROOT表示golang安装目录
GOPATH表示工作目录
GOBIN为可执行程序存放目录

.profile文件内容添加完之后使环境变量生效

source ~/.profile

最后测试是否安装成功,输入

go version

会显示

go version go1.15.5 linux/amd64

看到这里Ubuntu上面的golang就安装成功了

- 阅读剩余部分 -

写这篇文章的原因是公司的网络最近刚换了一个华三的路由器,然后出口带宽是两条联通的宽带,做了两条默认路由做的负载分担,但是今天上网的时候发现丢包很严重,于是排查了一下发现只用一条带宽上网就不会有丢包,于是就怀疑是负载分担的原因。然后就给路由器做了一下基于用户的负载分担,发现问题解决了。

这个是H3C对于基于用户的负载分担概述:

对同一路由协议来说,允许配置多条目的地相同且开销也相同的路由。当到同一目的地的路由中,没有更高优先级的路由时,这几条路由都被采纳,在转发去往该目的地的报文时,依次通过各条路径发送,从而实现网络的负载分担。
设备支持根据报文中的用户信息(源IP地址)对流量进行负载分担。对于具有相同源IP地址的报文认为来自同一个用户,基于用户进行负载分担。

- 阅读剩余部分 -

最近在玩rt-thread的时候遇到一个问题,tcp客户端在网卡网线断掉之后还一直保持recv数据中,等网线重新连上之后并不能恢复和客户端的连接,研究了一下之后发现可以通过`netdev.h`中的`netdev_is_link_up`函数来获取网卡状态。我通过这个函数判断网卡状态来解决了这个问题。用`netdev_get_by_name`这个函数来获取具体网络接口设备对象。

- 阅读剩余部分 -

树莓派针脚
   3V3  (1) (2)  5V    
 GPIO2  (3) (4)  5V    
 GPIO3  (5) (6)  GND   
 GPIO4  (7) (8)  GPIO14
   GND  (9) (10) GPIO15
GPIO17 (11) (12) GPIO18
GPIO27 (13) (14) GND   
GPIO22 (15) (16) GPIO23
   3V3 (17) (18) GPIO24
GPIO10 (19) (20) GND   
 GPIO9 (21) (22) GPIO25
GPIO11 (23) (24) GPIO8 
   GND (25) (26) GPIO7 
 GPIO0 (27) (28) GPIO1 
 GPIO5 (29) (30) GND   
 GPIO6 (31) (32) GPIO12
GPIO13 (33) (34) GND   
GPIO19 (35) (36) GPIO16
GPIO26 (37) (38) GPIO20
   GND (39) (40) GPIO21

- 阅读剩余部分 -