初始化 Ubuntu

本文最后更新于 2024年4月10日 晚上

当虚拟机安装好以后,我的步骤一般是先更新 apt 软件源,再安装 zsh,git, docker 等软件。

更新 apt 软件源

首先将软件源配置文件备份。

1
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak

然后在 清华大学 Ubuntu 镜像站 复制对应版本的软件源配置并更新。

1
sudo apt update

其他常用镜像站:

Git

安装最新版本

Ubuntu apt 安装的 git 版本都很低,现将其卸载,然后参考 官方文档 安装最新版本。

1
2
3
sudo apt remove -y git
sudo add-apt-repository ppa:git-core/ppa
sudo apt install -y git

初始配置

安装 Git 后需要更新用户信息和文本编辑器,根据 官方文档 更新。

1
2
3
4
5
6
git config --global user.name "{name}"
git config --global user.email "{email}"
# 将默认编辑器改为 vim
git config --global core.editor "vim"
# 配置 log 和 diff 等命令使用的分页器,默认是 less,可配置 more
git config --global core.pager ""

检查配置信息。

1
2
3
4
5
$ git config --global --list
user.name={name}
user.email={email}
core.editor=vim
core.pager=less

Docker

Docker 的安装以 官方文档 为准。

卸载旧版本

旧版本的 Docker 被称为 docker,docker.io 或 docker-engine。如果安装了它们,需要先卸载。

1
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt remove $pkg; done

另外需要删除旧版本的数据文件,否则有可能会出现 containerd 无法启动的问题。

1
2
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

配置软件库

更新 apt 的包索引,然后安装软件包允许 apt 通过 HTTPS 使用软件库。

1
2
3
sudo apt update

sudo apt install ca-certificates curl gnupg

添加 Docker 官方 GPG 密钥。

1
2
3
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

设置 Docker 软件库。

1
2
3
4
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装

更新 apt 包索引,然后安装最新版的 Docker 和 containerd。

1
2
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

使用以下命令测试是否安装成功。

1
2
$ docker --version
Docker version 24.0.2, build cb74dfc

更新国内源

创建 /etc/docker/daemon.json 文件并填入以下内容,也可以在 阿里云镜像加速 获取专属地址加入其中。

1
2
3
4
5
6
7
8
9
10
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com",
"https://registry.docker-cn.com"
]
}
EOF

重启 Docker 并测试镜像下载速度。

1
2
3
sudo systemctl daemon-reload
sudo systemctl restart docker
docker run --rm hello-world

设置非 root 用户

1
2
3
4
5
6
7
8
9
10
11
# 创建名为 docker 的组
sudo groupadd docker

# 将当前用户加入 docker 组
sudo gpasswd -a ${USER} docker

# 重启 docker 服务
sudo systemctl restart docker

# 添加访问和执行权限
sudo chmod a+rw /var/run/docker.sock

生成 SSH 公钥

服务器使用 SSH 公钥进行认证,所以需要使用 ssh-keygen 生成 SSH 公钥认证所需的公钥和私钥文件。

检查密钥目录

默认情况下,用户的 SSH 密钥存储在 ~/.ssh 目录下,先检查是否有该目录,该目录下使用已有密钥。

1
2
$ ls ~/.ssh
authorized_keys id_ed25519 id_ed25519.pub known_hosts

其中 id_ed25519 是私钥文件,对应算法是 ed25519,另一个带有 .pub 扩展名的文件是公钥。

生成 RSA 类型密钥对

ssh-keygen 默认会在密钥目录生成 RSA 类型密钥对,-C 参数用来添加注释,一般使用自己的邮箱。

1
ssh-keygen -C foo@bar.com

生成的密钥文件 id_rsaid_rsa.pub

1
2
$ ls ~/.ssh
authorized_keys id_rsa id_dsa.pub known_hosts

生成 ED25519 类型密钥对

ssh-keygen 可以使用 -t 参数指定密钥类型。

1
ssh-keygen -t ed25519 -C foo@bar.com

生成的密钥文件 id_ed25519id_ed25519.pub

1
2
$ ls ~/.ssh
authorized_keys id_ed25519 id_ed25519.pub known_hosts

免密登录

使用 ssh-copy-id 将公钥发送到服务器,之后就可以直接登录,而不用输入密码。

1
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@xxx.xxx.xxx.xxx

另外可以配置 ~/.ssh/config 更快捷的登录服务器。

1
2
3
4
5
Host demo
HostName xxx.xxx.xxx.xxx
User root
IdentifyFile ~/.ssh/id_ed25519
IdentitiesOnly yes

之后就可以直接 ssh demo 登录服务器。

Golang

apt 安装最新版本

不清楚该方法 GOPATH 需要怎么配置。

添加 apt 源。

1
2
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update

安装最新版本 Golang 或指定版本。

1
2
3
4
# 最新版本
sudo apt install -y golang-go
# 指定 1.19
sudo apt install -y golang-1.19-go

如果不需要了想删除源。

1
2
sudo add-apt-repository -r ppa:longsleep/golang-backports
sudo apt update

二进制文件安装

官方下载页面 下载对应版本的二进制压缩包,解压到指定目录,推荐 /usr/local//opt/

1
tar -zxvf go1.19.4.linux-amd64.tar.gz -C /usr/local

~/.bashrc~/.zshrc 更新 PATH。

1
2
3
4
5
6
7
# Go 配置
export GOPATH="/root/go"
export GOROOT="/usr/local/go"
export GO111MODULE="on"
export GOPROXY="https://goproxy.cn,direct"
# PATH
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

初始配置

除了直接写入文件的配置方式外,还可以使用 go env -w 进行配置,首先修改 PATH。

1
export PATH=/root/go/bin:/usr/local/go/bin:$PATH

再使用 go env 配置其他。

1
2
3
4
go env GOPATH="/root/go"
go env GOROOT="/usr/local/go"
go env -w GO111MODULE="on"
go env -w GOPROXY="https://goproxy.cn,direct"

可以使用 go env 验证是否修改成功。

1
2
3
4
5
6
7
8
$ go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOOS="linux"
GOPATH="/root/go"
GOPROXY="https://goproxy.cn,direct"
GOROOT="/usr/local/go"

Nodejs

根据官网文档进行安装。

参考


初始化 Ubuntu
https://www.yxuefeng.com/posts/76ae49e7.html
作者
yleoer
发布于
2023年7月20日
许可协议