本文最后更新于 2024年4月10日 晚上
当虚拟机安装好以后,我的步骤一般是先更新 apt 软件源,再安装 zsh,git, docker 等软件。
更新 apt 软件源
首先将软件源配置文件备份。
1
| sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
|
然后在 清华大学 Ubuntu 镜像站 复制对应版本的软件源配置并更新。
其他常用镜像站:
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}"
git config --global core.editor "vim"
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
| sudo groupadd docker
sudo gpasswd -a ${USER} 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_rsa
和 id_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_ed25519
和 id_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
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
| export GOPATH="/root/go" export GOROOT="/usr/local/go" export GO111MODULE="on" export GOPROXY="https://goproxy.cn,direct"
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
根据官网文档进行安装。