IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux golang 开发环境配置(Vscode Remote) -> 正文阅读

[系统运维]Linux golang 开发环境配置(Vscode Remote)

初始化root密码

sudo  passwd root

创建新用户

 sudo adduser jarvan1
 # 修改密码
 sudo passwd jarvan1

如果是本地 wsl 或者私人服务器你可以直接使用root开发


$ wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-18.04           Running         1
  Ubuntu-20.04           Running         2
  docker-desktop-data    Running         2
  docker-desktop         Running         2
# cmd 设置 ubuntu 默认用户为 root
$ ubuntu1804.exe config --default-user root 

(adduser 是脚本,会自动创建文件夹, 比 useradd 方便)

sudoer

切换到 root 账号

tee -a /etc/sudoers <<'EOF'
# jarvan1 免密 sudo
jarvan1 ALL=(ALL) NOPASSWD:ALL
EOF

(root权限执行, jarvan1 这里是你的用户名)

创建你的工作区

mkdir $HOME/code 

(所有代码都放到这里,后面要迁移比较方便)

apt国内镜像源

查看版本号

 lsb_release -a

再下面的地址找到自己版本的镜像源
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

备份原来的镜像源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bk

将原内容删除

sudo rm /etc/apt/sources.list 

替换为新的配置内容

sudo vim /etc/apt/sources.list 
# ubuntu20
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

刷新

sudo apt-get update 

安装常用工具

sudo apt install net-tools  -y
sudo apt install  git  -y
sudo apt install  make  -y
sudo apt install  automake  -y
sudo apt install  cmake -y
sudo apt install  telnet  -y
sudo apt install  gcc  -y 
sudo apt install  g++ -y
sudo apt install  libtool -y
sudo apt install  unzip -y

git

安装

sudo apt install git -y

或者手动安装安装高版本的git TODO:

配置

git config --global user.name "dengjiawen"    # 用户名改成自己的
git config --global user.email "dengjiawenxxx@gmail.com"    # 邮箱改成自己的
git config --global credential.helper store    # 设置 Git,保存用户名和密码
git config --global core.longpaths true # 解决 Git 中 'Filename too long' 的错误
# 设置全局默认编辑器为 vim ,一开始默认是 nano
tee -a ~/.gitconfig<<'EOF'
[core]
editor=vim
EOF

其次,如果你觉得访问 github.com 太慢,可以通过国内 GitHub 镜像网站来访问,配置方法如下(这个镜像同步更新有1天的延时):

#git config --global url."https://github.com.cnpmjs.org/".insteadOf "https://github.com/"
# 如果需要及时更新就把这个关闭
#git config --global --unset  url."https://github.com.cnpmjs.org/".insteadOf "https://github.com/"
# 看看成功没有
git config --list

最后,GitHub 限制最大只能克隆 100M 的单个文件,为了能够克隆大于 100M 的文件,我们还需要安装 Git Large File Storage,安装方式如下:

git lfs install --skip-repo

go

下载指定版本的go

wget https://golang.google.cn/dl/go1.18.2.linux-amd64.tar.gz -O /tmp/go1.18.2.linux-amd64.tar.gz

解压和安装

mkdir -p $HOME/go
tar -xvzf /tmp/go1.18.2.linux-amd64.tar.gz -C $HOME/go
mv $HOME/go/go $HOME/go/go1.18.2

配置环境变量

tee -a $HOME/.bashrc <<'EOF'
# Go envs
export GOVERSION=go1.18.2 # Go 版本设置
export GOROOT=$HOME/go/$GOVERSION # GOROOT 设置
export GOPATH=$HOME/go # GOPATH 设置
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 将 Go 语言自带的和通过 go install 安装的二进制文件加入到 PATH 路径中
export GO111MODULE="on" # 开启 Go moudles 特性
export GOPROXY=https://goproxy.cn,direct # 安装 Go 模块时,代理服务器设置
export GOPRIVATE=
export GOSUMDB=off # 关闭校验 Go 依赖包的哈希值
EOF

source ~/.bashrc

在使用模块的时候,$GOPATH 是无意义的,不过它还是会把下载的依赖储存在 $GOPATH/pkg/mod 目录中,也会把 go install 的二进制文件存放在 $GOPATH/bin 目录中。

另外,我们还要将$GOPATH/bin$GOROOT/bin 加入到 Linux 可执行文件搜索路径中。这样一来,我们就可以直接在 bash shell 中执行 go 自带的命令,以及通过 go install 安装的命令。

protobuf

安装 protoc

(1) goctl 工具提供了一键安装的脚本

GOPROXY=https://goproxy.cn/,direct go install github.com/zeromicro/go-zero/tools/goctl@latest
goctl env check -i -f --verbose 

(2) 或者手动安装

# 下载(可以去https://github.com/protocolbuffers/protobuf/releases找最新的包)
wget  https://github.com/protocolbuffers/protobuf/releases/download/v3.20.1/protoc-3.20.1-linux-x86_64.zip -O/tmp/protoc-3.20.1-linux-x86_64.zip
# 解压
unzip /tmp/protoc-3.20.1-linux-x86_64.zip -d /tmp/protoc-3.20.1-linux-x86_64
# 移动
mv protoc-3.20.1-linux-x86_64/bin/protoc $GOPATH/bin/

安装 protoc-gen-go 和 protoc-gen-go-grpc

go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

参考
protoc & protoc-gen-go安装 | go-zero

ssh远程免密登录

安装openssh-server

sudo apt remove openssh-server -y
sudo apt install openssh-server -y

修改配置文件

sudo vim /etc/ssh/sshd_config
# 打开监听的端口和地址
Port 22
ListenAddress 0.0.0.0
# 支持公钥登录
PubkeyAuthentication yes
# 支持密码登录
PasswordAuthentication yes

生成ssh密钥(全部按 enter 默认值就行)

ssh-keygen

重启

sudo service ssh restart

将本机的 id_rsa.pub 添加到 ~/.ssh/authorized_keys 中

vim ~/.ssh/authorized_keys 

修改文件权限

chmod 600 ~/.ssh/authorized_keys

vscode ssh

安装 remote ssh, remote wsl

使用对应的插件就行了

image-20220524134120634

如果是 wsl 可以直接连接

如果是 ssh 输入 ssh jarvan1@IP -p PORT 就行

安装 golang 插件

image-20220524134547374

快捷键 F1 然后输入 go tool 安装 go tools, 全选7个包然后安装

image-20220524134714018

安装调试工具(需要确保apt 安装 gcc 等环境, 上面有 apt 安装环境的命令)

go install -v github.com/go-delve/delve/cmd/dlv@latest

写一个demo 按 F5 调试,能成功运行就 OK

image-20220524135638857

关闭 go test 的缓存

打开vscode 设置,搜索 go.testFlags, 编辑 setting.json 增加如下内容, 显示测试输出和关闭测试缓存

    "go.testFlags": [
    "-v",
    "-count=1"
    ],

docker ubuntu

国内脚本一键安装

curl -sSL https://get.daocloud.io/docker | sudo sh

启动+自启

sudo service docker start
sudo systemctl enable docker

安装docker-compose

sudo apt install docker-compose -y

镜像加速

sudo tee -a /etc/default/docker << 'EOF'
# docker 加速镜像
DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"
EOF

sudo service docker restart

TODO: docker 常用脚本和命令

参考

https://www.runoob.com/docker/ubuntu-docker-install.html

Docker 镜像加速 | 菜鸟教程 (runoob.com)

docker-desktop

如果使用 window + wsl 开发的话建议在 window 上安装 docker-desktop

docker-desktop: 下载软件即可

docker-desktop: 镜像加速

打开软件->设置->Docker Engine 添加镜像加速

  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-01 15:29:48  更:2022-06-01 15:30:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 17:39:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码