目录

Ubuntu 系统初始化与开发环境配置指南

这份配置清单包含了 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 弹窗:

https://cdn.jsdelivr.net/gh/aaronshqliu/blog-images@main/20260307184716680.png
Daemons using outdated libraries 弹窗

这是 Ubuntu 22.04 中的新功能,它是由系统工具 needrestart 带来的新特性,needrestart 现在是 Ubuntu 中 apt-get 升级过程的一部分。默认情况下,此设置为 “interactive” (交互式)模式,会导致脚本中断。

修改这个模式配置,我们编辑/etc/needrestart/needrestart.conf文件,

1
sudo vi /etc/needrestart/needrestart.conf

找到下面的这行:

https://cdn.jsdelivr.net/gh/aaronshqliu/blog-images@main/20260307190810685.png
needrestart.conf 修改前

这里有三个可选配置:

1
2
3
(l)ist only: 只列出需要重启的服务,不重启
(i)nteractive: 交互式询问需要重启的服务(默认值)
(a)utomatically: 自动重启服务

直接修改成:

https://cdn.jsdelivr.net/gh/aaronshqliu/blog-images@main/20260307191258708.png
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-essentiallibssl-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
技巧
使用cmake --version检查安装版本。

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. 编辑配置文件:
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
  1. 设置 Samba 用户密码并重启服务: (注:Samba 的用户必须已经是系统中的合法用户)
1
2
3
4
# 为用户 xxx 设置 Samba 访问密码
sudo smbpasswd -a xxx
# 重启 Samba 服务使配置生效
sudo systemctl restart smbd

6. 配置 Git

6.1 初次配置

安装好 Git 后,需要首先设置你的全局用户名和邮箱地址,并开启凭证缓存功能,以免每次推送代码都要反复输入密码。

  1. 设置全局用户名和邮箱

    全局配置意味着当前 Ubuntu 用户下所有的 Git 仓库默认都会使用此身份进行提交:

1
2
3
4
# 设置你的 Git 用户名
git config --global user.name "Git 用户名"
# 设置你的 Git 邮箱
git config --global user.email "Git 邮箱@example.com"
  1. 记住密码(凭证管理)

    为了避免每次git pushgit pull都被要求输入账号和密码(或 Personal Access Token),可以开启长期存储功能:

1
2
# 配置 Git 在本地存储密码
git config --global credential.helper store
注意
运行此命令后,当你第一次执行远程操作并输入正确的账号密码后,Git 会将凭证以明文形式保存在当前用户主目录下的~/.git-credentials文件中。此后操作即可免密。
  1. 检查当前配置

    运行以下命令确认配置是否成功写入:

1
git config --global --list

6.2 更改 Git 用户

6.2.1 全局更换 Git 用户(彻底替换当前账号)

  1. 覆盖旧的用户名和邮箱
1
2
git config --global user.name "新的用户名"
git config --global user.email "新的邮箱@example.com"
  1. 清除旧的账号密码缓存(关键步骤)

    编辑~/.git-credentials文件,删除对应账号的那一行;或者直接删除该文件。

7.2.2 局部更改 Git 用户(仅针对某一个项目)

  1. 进入目标项目目录
  2. 在项目内设置独立的用户名和邮箱(不要加 –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 架构。采用纯交互式引导,执行此脚本会对你的系统进行以下配置,请确保符合你的需求:

  1. APT 源与更新优化:自动备份系统默认源,并替换为清华大学开源软件镜像站 (TUNA)。同时针对 Ubuntu 22.04+ 系统,自动屏蔽 needrestart 服务重启交互弹窗。
  2. 基础工具链:自动安装 vim, git, curl, wget, build-essential, python3-pip, samba 等必备开发与网络运维工具。
  3. 终端环境美化:修改当前用户的 ~/.bashrc,加入纯 ASCII 的 Git 分支与状态高亮提示(兼容所有终端字体),并内置 proxy/unproxy 快捷代理命令(默认指向 127.0.0.1:7890)。
  4. GitHub Hosts 加速 (可选):执行中会交互式询问,是否从第三方拉取并更新 /etc/hosts 以加速本机的 GitHub 访问。
  5. 安全安装 CMake:自动通过 GitHub Proxy 加速拉取并安装 CMake 4.1.5(存放在 /opt 目录,软链接至 /usr/local/bin),全程执行严格的 SHA256 完整性校验。如果因网络极差导致多次下载失败,脚本将跳过该步骤而不会中断后续流程。
  6. Samba 局域网共享:默认将当前用户的家目录配置为 Samba 共享文件夹。执行中会提示你输入访问密码(直接回车即可跳过密码设置,服务照常启动,事后可手动配置)。
  7. 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