这份配置清单包含了 Ubuntu 系统基础更新、终端美化、开发工具链安装以及常用网络服务(SSH、Samba)的搭建,文末附带自动化配置脚本。
1. 基础系统配置
1.1 替换国内软件源
为了提高软件下载速度,首先将系统的 APT 软件源替换为以下任意国内镜像源。
清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/ubuntu/
中科大镜像:https://mirrors.ustc.edu.cn/ubuntu/
腾讯云镜像:https://mirrors.cloud.tencent.com/ubuntu/
阿里云镜像:https://mirrors.aliyun.com/ubuntu/
华为镜像:https://mirrors.huaweicloud.com/ubuntu/
1.2 更新系统
1.2.1 关闭 Daemons using outdated libraries 弹窗
在一个全新安装的 Ubuntu 22.04 LTS 上,每次使用 apt 安装或更新软件包时,会出现一个 Daemons using outdated libraries 弹窗:
Daemons using outdated libraries 弹窗这是 Ubuntu 22.04 中的新功能,它是由系统工具 needrestart 带来的新特性,needrestart 现在是 Ubuntu 中 apt-get 升级过程的一部分。默认情况下,此设置为 “interactive” (交互式)模式,会导致脚本中断。
修改这个模式配置,我们编辑/etc/needrestart/needrestart.conf文件,
1
| sudo vi /etc/needrestart/needrestart.conf
|
找到下面的这行:
needrestart.conf 修改前这里有三个可选配置:
1
2
3
| (l)ist only: 只列出需要重启的服务,不重启
(i)nteractive: 交互式询问需要重启的服务(默认值)
(a)utomatically: 自动重启服务
|
直接修改成:
needrestart.conf 修改后之后系统更新就不会再弹出提示。
1.2.2 更新系统
1
| sudo apt clean && sudo apt update && sudo apt upgrade -y
|
2. 终端环境定制 (Shell)
为了让终端更加美观并方便快速配置代理,我们需要修改当前用户的~/.bashrc文件。使用 vim 打开~/.bashrc文件,追加以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| parse_git_info() {
local branch dirty ahead behind status behind_count ahead_count
branch=$(git symbolic-ref --short HEAD 2>/dev/null) || \
branch=$(git rev-parse --short HEAD 2>/dev/null) || return
dirty=""
[[ -n "$(git status --porcelain 2>/dev/null | head -n 1)" ]] && dirty="*"
ahead=""; behind=""
status=$(git rev-list --left-right --count @{upstream}...HEAD 2>/dev/null)
if [[ -n "$status" ]]; then
read -r behind_count ahead_count <<< "$status"
[[ "$ahead_count" -gt 0 ]] && ahead="+"
[[ "$behind_count" -gt 0 ]] && behind="-"
fi
printf " \001\e[36m\002(%s%s%s%s)" "$branch" "$dirty" "$ahead" "$behind"
}
export PS1="\[\e[1;32m\]\u\[\e[m\]@\[\e[1;31m\]\h\[\e[m\] \[\e[33m\]\w\$(parse_git_info)\[\e[m\]\n$ "
alias proxy='export {http,https,all,HTTP,HTTPS,ALL}_proxy="http://127.0.0.1:7890"; echo "Proxy enabled -> 127.0.0.1:7890"'
alias unproxy='unset {http,https,all,HTTP,HTTPS,ALL}_proxy; echo "Proxy disabled"'
'
|
保存并退出后,执行source ~/.bashrc命令使配置生效。
3. 安装开发环境与工具库
安装常用的开发工具、系统工具和依赖库:
1
2
3
4
| sudo apt install -y \
git curl wget zip unzip tree build-essential ninja-build \
python3-pip pipx libssl-dev valgrind samba samba-common \
openssh-server gnome-tweaks
|
4. 安装 CMake
4.1 通过源码编译安装
注意
上一步安装的build-essential和libssl-dev是编译 CMake 的必要前提。
1
2
3
4
5
6
7
8
9
10
| cd /tmp
# 下载 CMake 源码包 (以 v4.1.5 为例)
wget https://github.com/Kitware/CMake/releases/download/v4.1.5/cmake-4.1.5.tar.gz
# 解压并进入目录
tar -zxvf cmake-4.1.5.tar.gz
cd cmake-4.1.5
# 配置、编译与安装 (使用多线程加速编译)
./bootstrap
make -j$(nproc)
sudo make install
|
4.2 安装官方二进制版本
1
2
3
4
5
6
7
| cd /tmp
wget https://github.com/Kitware/CMake/releases/download/v4.1.5/cmake-4.1.5-linux-x86_64.tar.gz
tar -zxvf cmake-4.1.5-linux-x86_64.tar.gz
sudo rm -rf /opt/cmake-4.1.5-linux-x86_64
sudo mv cmake-4.1.5-linux-x86_64 /opt/
sudo ln -sf /opt/cmake-4.1.5-linux-x86_64/bin/* /usr/local/bin/
rm cmake-4.1.5-linux-x86_64.tar.gz
|
5. 配置网络与共享服务
5.1 SSH 远程登录配置
确保 SSH 服务处于运行状态,并配置免密登录:
1
2
3
4
| # 启动 SSH 服务
sudo systemctl enable --now ssh
# 查看 SSH 状态
sudo systemctl status ssh
|
配置免密登录
在客户端机器(你用来连接这台服务器的电脑)上执行以下命令,将公钥发送到本机:
1
| ssh-copy-id username@ip
|
5.2 Samba 局域网文件共享配置
配置 Samba 以便在局域网内与其他设备(如 Windows/Mac)共享目录。
- 编辑配置文件:
1
| sudo vim /etc/samba/smb.conf
|
在文件最末尾追加以下配置(请将xxx替换为你的实际用户名):
1
2
3
4
5
6
7
8
9
10
| [Share]
comment = Shared Folder
path = /home/xxx
valid users = xxx
directory mask = 0775
create mask = 0775
public = yes
writable = yes
available = yes
browseable = yes
|
- 设置 Samba 用户密码并重启服务:
(注:Samba 的用户必须已经是系统中的合法用户)
1
2
3
4
| # 为用户 xxx 设置 Samba 访问密码
sudo smbpasswd -a xxx
# 重启 Samba 服务使配置生效
sudo systemctl restart smbd
|
6. 配置 Git
6.1 初次配置
安装好 Git 后,需要首先设置你的全局用户名和邮箱地址,并开启凭证缓存功能,以免每次推送代码都要反复输入密码。
设置全局用户名和邮箱
全局配置意味着当前 Ubuntu 用户下所有的 Git 仓库默认都会使用此身份进行提交:
1
2
3
4
| # 设置你的 Git 用户名
git config --global user.name "Git 用户名"
# 设置你的 Git 邮箱
git config --global user.email "Git 邮箱@example.com"
|
记住密码(凭证管理)
为了避免每次git push或git pull都被要求输入账号和密码(或 Personal Access Token),可以开启长期存储功能:
1
2
| # 配置 Git 在本地存储密码
git config --global credential.helper store
|
注意
运行此命令后,当你第一次执行远程操作并输入正确的账号密码后,Git 会将凭证以明文形式保存在当前用户主目录下的~/.git-credentials文件中。此后操作即可免密。
检查当前配置
运行以下命令确认配置是否成功写入:
1
| git config --global --list
|
6.2 更改 Git 用户
6.2.1 全局更换 Git 用户(彻底替换当前账号)
- 覆盖旧的用户名和邮箱
1
2
| git config --global user.name "新的用户名"
git config --global user.email "新的邮箱@example.com"
|
清除旧的账号密码缓存(关键步骤)
编辑~/.git-credentials文件,删除对应账号的那一行;或者直接删除该文件。
7.2.2 局部更改 Git 用户(仅针对某一个项目)
- 进入目标项目目录
- 在项目内设置独立的用户名和邮箱(不要加 –global)
1
2
| git config user.name "工作用户名"
git config user.email "工作邮箱@company.com"
|
注意
- 在 Git 中,局部配置的优先级高于全局配置。在这个特定目录内,Git 会优先使用刚设置的工作邮箱进行提交,而其他目录依然默认使用全局邮箱。
- 可通过
git config --local --list确认该项目是否已成功应用了独立配置。
7. 配置完成
至此,Ubuntu 基础开发环境已全部配置完毕!
8. Ubuntu 初始化与开发环境配置脚本
警告
本脚本专为国内 Ubuntu(20.04 / 22.04 / 24.04)环境深度优化,全面兼容 x86_64 与 arm64 架构。采用纯交互式引导,执行此脚本会对你的系统进行以下配置,请确保符合你的需求:
- APT 源与更新优化:自动备份系统默认源,并替换为清华大学开源软件镜像站 (TUNA)。同时针对 Ubuntu 22.04+ 系统,自动屏蔽
needrestart 服务重启交互弹窗。 - 基础工具链:自动安装
vim, git, curl, wget, build-essential, python3-pip, samba 等必备开发与网络运维工具。 - 终端环境美化:修改当前用户的
~/.bashrc,加入纯 ASCII 的 Git 分支与状态高亮提示(兼容所有终端字体),并内置 proxy/unproxy 快捷代理命令(默认指向 127.0.0.1:7890)。 - GitHub Hosts 加速 (可选):执行中会交互式询问,是否从第三方拉取并更新
/etc/hosts 以加速本机的 GitHub 访问。 - 安全安装 CMake:自动通过 GitHub Proxy 加速拉取并安装 CMake 4.1.5(存放在
/opt 目录,软链接至 /usr/local/bin),全程执行严格的 SHA256 完整性校验。如果因网络极差导致多次下载失败,脚本将跳过该步骤而不会中断后续流程。 - Samba 局域网共享:默认将当前用户的家目录配置为 Samba 共享文件夹。执行中会提示你输入访问密码(直接回车即可跳过密码设置,服务照常启动,事后可手动配置)。
- Git 身份配置 (可选):运行结束前会交互式询问是否配置全局的 Git 用户名 (
user.name) 和邮箱 (user.email)。
根据你的使用场景,选择以下任意一种方式执行即可:
方式一:在线安装(推荐)
1
| bash <(curl -sL aarons.pages.dev/ubuntu-setup.sh)
|
(注:执行过程中遇到 sudo 提权时,需输入当前用户的系统密码,请根据屏幕黄色 [WARN] 或蓝色 [INFO] 提示进行互动。)
方式二:下载到本地执行
1
| curl -sLO aarons.pages.dev/ubuntu-setup.sh && bash ubuntu-setup.sh
|