跳过正文
Ubuntu 25.10 安装和配置

Ubuntu 25.10 安装和配置

·4431 字·9 分钟·
作者
Charles Chin
机会总是垂青于有准备的人!
目录

前言
#

以下内容为个人见解,本文为备忘录而非教程

高强度地日常使用 Ubuntu 25.10 一个月后,总结一下 Ubuntu 25.10 的安装和配置过程,方便以后重装时参考。

距离上一次记录 Ubuntu 安装和配置已经过去了五年了,《 Ubuntu 20.10 优化》一文中的有些配置已经过时了。

虽然 Ubuntu 每个 LTS 发布前的一个 xx.10 版本都挺不错的,但还是打算继续使用 Ubuntu 24.04.3 LTS 等下一个 LTS。结果整天念叨着要不要升级到 25.10 试试看,结果有一天一不小心就把 24.04.3 Btrfs 的 @root 子卷给搞没了,「墨菲定律」又一次应验了,这下就不得不重装系统了,索性就全新安装 Ubuntu 25.10。

在这期间还把排名靠前的 Linux 发行版试了个遍,比如说随处可见的 NixOS,还有爆火的 Hyprland 合成器。不得不说,Ubuntu 还是 Linux 桌面系统天花板。我没有拉踩的意思,只能说其他的不适合我。

我的要求很简单:

  • 开箱即用
  • 配置简单
  • 稳定

对,没有错,现在的 Ubuntu Desktop 已经非常稳定了。

  • 可复现:我配置一次系统要用几年,我为什么要复现?
  • 声明式:有 Docker 部署和交付。
  • 平铺:我不需要平铺窗口,我更喜欢当前任务的窗口占满整个屏幕,我更擅用鼠标点击。

一个东西,好就是好,不好就是不好,比如我是 Ubuntu 的死忠粉,但 Snap 不喜欢就是不喜欢,我会第一时间卸载。

安装 Ubuntu
#

我的电脑是三系统:

  • Ubuntu 25.10
  • AtlasOS
  • Windows 11

如果安装多系统,需要先安装 Windows,再安装 Ubuntu,按这个先后顺序安装会省去很多麻烦。

安装 Ubuntu 没什么好说的,从 官方网站 下载 ISO 镜像,放到 Ventoy 启动 U 盘里就可以安装了。

安装时选择最小化安装,后续需要什么软件再手动安装。

文件系统
#

我原来用的是 Btrfs,也用过 ZFS,但是我觉得个人桌面系统,用 Ext4 就够了。现在换回了 Ext4。
Old But Gold.

分区方案
#

我的分区:

  1. Swap 象征性地分了 4G 交换分区(虚拟运行内存),
  2. /boot 1G Ext4 格式的引导分区,
  3. /boot/efi 挂载的 EFI 分区,
  4. / 剩余空间都格式化为 Ext4 作为系统分区,
  5. /home 没再单独给 /home 分区了,现在的数据都在 NAS、云端和网盘。

配置 Ubuntu
#

1. 换源
#

安装完成后,第一件事就是换源,在 软件和更新 中选择 位于 中国 的服务 即可。
即:cn.archive.ubuntu.com
其他还有常见的阿里云、清华 Tuna 等镜像源。

2. 安装驱动
#

鼠标、键盘是不指望官方有 Linux 驱动的。NVIDIA 显卡驱动在 软件和更新附加驱动 里选择安装 tested 的驱动就行了。

3. 系统设置
#

打开 系统设置 按自己习惯设置就可以了。

其他的:

• 网络设置
#

网络设置要用应用列表中的高级网络设置,而不是系统设置中的 网络 设置。

IPv4 和 IPv6 双栈网络设置 IPv4 优先:在 /etc/gai.conf 中取消注释 # precedence ::ffff:0:0/96 100,即删掉这个 # 号。

• 鼠标设置
#

Gnome 49 Wayland 设置里自带关闭鼠标加速的选项。
鼠标指针速度,我是习惯拉到最右再向左移动 5 格(按 5 下左方向键 ⬅️)。Windows 下用鼠标驱动设置鼠标 DPI 800, 回报率 1000Hz,这些设置大多品牌的鼠标都会记录到鼠标固件里。

• 电源设置
#

台式机用的是性能 模式,关闭了休眠功能,15 分钟息屏。

• 键盘设置
#

禁用了一些系统默认的快捷键,配合 Gnome 扩展插件 Happy Appy Hotkey 来设置一些自定义快捷键。
这个插件最大的好处就是可以用快捷键打开软件,(且)如果检测到软件处于运行中就会在前台激活它,而系统默认的快捷键不会检测软件运行状态,只会新建一个新的运行实例。

这些快捷键,有些是默认的,有些虽然设置了也不常用,大多是围绕左手单手操作:

  • Super + X 终端
  • Super + A 显示所有应用
  • Super + B 浏览器
  • Super + C VS Code
  • Super + D 显示桌面
  • Super + E gnome-text-editor 文本编辑器
  • Super + F 文件管理器
  • Super + G GIMP
  • Super + H 主文件夹(/home/eallion/)
  • Super + I 打开设置面板
  • Super + K Google Keep App
  • Super + L 锁屏
  • Super + M 切换最大化窗口
  • Super + N Typora
  • Super + Q Obsidian
  • Super + S Spotify
  • Super + T Telegram
  • Super + V (剪切板) Clipboard Indicator 插件
  • Super + W WeChat
  • Super + 1 工作区 1
  • Super + 2 工作区 2
  • Super + 3 工作区 3
  • Super + 4 工作区 4
  • ALT + A Gradia 截图

4. 双系统时间
#

Windows 11 默认使用本地时间,Ubuntu 默认使用 UTC 时间,这会导致重启进入 Windows 后,Windows 的时间不正确。所以需要在 Ubuntu 中设置使用本地时间:

sudo vim /etc/systemd/timesyncd.conf

添加时间服务器:

[Time]
NTP=ntp.ntsc.ac.cn

设置为本地时间:

sudo timedatectl set-local-rtc 1 --adjust-system-clock

Status 命令可以查看时间同步状态:

sudo timedatectl status
...
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: yes

5. dotfiles
#

我把 dotfiles 放在 GitHub 上了: eallion/dotfiles,一般重装系统或者购买 VPS 都会用 Setup 一键脚本做一些基础配置。

curl -sSL https://e5n.cc/s/dotfiles | bash

脚本详情:

$ curl -I https://e5n.cc/s/dotfiles
HTTP/2 301
location: https://s.e5n.cc/dotfiles
strict-transport-security: max-age=15552000; includeSubDomains; preload
x-content-type-options: nosniff
server: cloudflare

脚本包含:

6. 安装字体
#

安装 JetBrains Maple Mono 字体。

wget https://github.com/SpaceTimee/Fusion-JetBrainsMapleMono/releases/latest/download/JetBrainsMapleMono-NF-XX-XX.zip
unzip JetBrainsMapleMono-NF-XX-XX.zip
mkdir -p ~/.fonts
cp *.ttf ~/.fonts/
rm JetBrainsMapleMono-NF-XX-XX.zip LICENSE.txt
fc-cache -f -v

7. 安装 Alacritty
#

https://github.com/alacritty/alacritty

以前经常用 Guake,下拉式终端挺方便,但经常容易失去焦点,后来慢慢就用得少了。Alacritty / Kitty 都是不错的终端,我更喜欢 Alacritty。

# APT 安装的不是最新版,最新版需要编译安装
sudo apt install alacritty

配置 Alacritty,创建配置文件目录,克隆主题:

mkdir -p ~/.config/alacritty/themes
git clone https://github.com/alacritty/alacritty-theme ~/.config/alacritty/themes

创建配置文件:

vim ~/.config/alacritty/alacritty.yml

现在在用的配置文件:

[general]
import = [
    "~/.config/alacritty/themes/themes/github_dark_dimmed.toml"
]

[window]
dimensions = { columns = 128, lines = 31 }
opacity = 0.99
padding.x = 10
padding.y = 10
decorations = "Full"
decorations_theme_variant = "Dark"

[font]
normal = { family = "JetBrains Maple Mono", style = "Regular" }
bold = { family = "JetBrains Maple Mono", style = "Bold" }
italic = { family = "JetBrains Maple Mono", style = "Italic" }
bold_italic = { family = "JetBrains Maple Mono", style = "Bold Italic" }
size = 11.0

8. 卸载 snap
#

snap list
# 卸载 snap list 命令列出的 snap 包,除了 bare core22
sudo snap remove firefox thunderbird snap-store firmware-updater desktop-security-center gnome-42-2204 gtk-common-themes prompting-client snap-store snapd-desktop-integration
# 单独卸载这 2 个
sudo snap remove bare core22
# 卸载 snapd 主体
sudo apt autoremove --purge snapd
# 删除 snapd 的相关目录
sudo rm -rf /snap /var/snap /var/lib/snapd /var/cache/snapd ~/snap

9. 安装 flatpak
#

sudo apt install flatpak
sudo apt install gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# 可选安装 Flatseal
flatpak install flathub com.github.tchx84.Flatseal

10. 安装软件
#

安装一些个人常用的软件,先配置一下 APT Source Key:

• 配置 GitHub CLI(gh)Key:

(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \
  && sudo mkdir -p -m 755 /etc/apt/keyrings \
  && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \
  && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
  && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
  && sudo mkdir -p -m 755 /etc/apt/sources.list.d \
  && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \

• 配置 VS Code Key:

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -D -o root -g root -m 644 microsoft.gpg /usr/share/keyrings/microsoft.gpg
rm -f microsoft.gpg

• 配置 Chrome Key:

curl -fsSL https://dl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor -o /usr/share/keyrings/google-chrome.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list

• 配置 Typora Key:

curl -fsSL https://downloads.typora.io/typora.gpg | sudo tee /etc/apt/keyrings/typora.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/typora.gpg] https://downloads.typora.io/linux ./" | sudo tee /etc/apt/sources.list.d/typora.list

安装软件:

sudo apt update
sudo apt install -y \
  code \
  curl \
  filezilla \
  flameshot \
  gdebi \
  gh \
  git \
  gnome-shell-extensions \
  gnome-tweaks \
  google-chrome-stable \
  htop \
  smplayer \
  timeshift \
  typora \
  vim

安装办公软件,仅安装 Libreoffice Calc 表格软件,不安装其他组件:

sudo apt install --no-install-recommends libreoffice-calc

其他一些软件APT 包管理器里没有,使用 flatpak 安装:

# Collision
flatpak install flathub dev.geopjr.Collision
# DBeaver Community
flatpak install flathub io.dbeaver.DBeaverCommunity
# GIMP
flatpak install flathub org.gimp.GIMP
# Gradia
flatpak install flathub be.alexandervanhee.gradia
# OBS Studio
flatpak install flathub com.obsproject.Studio
# Spotify Client
flatpak install flathub com.spotify.Client
# Telegram Desktop
flatpak install flathub org.telegram.desktop
# Thunderbird
flatpak install flathub org.mozilla.Thunderbird

一些软件需要到其官方网站下载 deb 包安装:

11. 配置 Git
#

前面的下载 dotfiles 的步骤已经复制了 .gitconfig,现在需要配置常用的 SSH Key 以使用 ssh 协议。替换下面命令中 SSH Key 备份所在的 PATH,复制到 ~/.ssh/ 目录,重命名为 ~/.ssh/id_rsa,设置权限:

mkdir -p ~/.ssh
cp path/to/github.rsa ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa

配置 GitHub CLI(gh)时,输入下面命令,按提示一步一步操作:

gh auto login

12. 导入 GPG 密钥
#

替换下面命令中 GPG 密钥备份所在的 PATH,导入个人 GPG 密钥,导入时需要输入 PGP 密钥的密码:

gpg --import path/to/private.asc

13. 安装 NVM
#

安装 NVM 管理 Node.js 版本,配置 npm pnpm 等:

# 安装 NVM 注意版本号
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

# 导入 NVM 环境变量, dotfiles 已经包含了
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

# 使环境变量生效
source ~/.bashrc

安装 Node.js LTS:

nvm install --lts

安装 pnpm

npm install -g pnpm

14. 安装 Docker
#

使用官方脚本 安装 Docker

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

把当前用户加入 docker Group: Linux Post Installation

sudo usermod -aG docker $USER
newgrp docker

禁止 Docker 服务开机启动,按需启动:

sudo systemctl disable docker.service
sudo systemctl disable docker.socket
sudo systemctl disable containerd.service

15. 自动挂载
#

如果有需要,自动挂载硬盘,或者挂载 NAS 上的目录到本地,可以编辑 /etc/fstab 文件。

• 挂载本地磁盘
#

比如要挂载 Windows 下的 NTFS 格式的 D 盘到 Ubuntu 的 /home/eallion/Files 目录:

新建挂载目录:

mkdir -p /home/eallion/Files

查看磁盘 UUID,找到对应的 NTFS 分区的 UUID:

sudo blkid

编辑 /etc/fstab 文件:

sudo vim /etc/fstab

添加以下内容:

UUID=xxxx /home/eallion/Files ntfs3 defaults,nofail,uid=1000,gid=1000,x-gvfs-hide 0 0
• 挂载 NAS 目录
#

创建挂载目录:

sudo apt install cifs-utils
mkdir -p /home/eallion/Photos

添加凭证:

vim ~/.smbcredentials

写入以下内容:

username=YOUR_SMB_USERNAME
password=YOUR_SMB_PASSWORD

设置严格权限:

chmod 600 ~/.smbcredentials

编辑 /etc/fstab 文件:

sudo vim /etc/fstab

添加以下内容:

//192.168.0.2/photos    /home/eallion/Photos    cifs    credentials=/home/eallion/.smbcredentials,uid=1000,gid=1000,vers=3.0,_netdev,nofail    0 0

16. 输入法 fcitx5-rime
#

Rime 中州韵输入法引擎已经成为事实上的全平台最优秀的输入法了。毕竟只有亚洲 CJK 用户(广义)才需要输入法,而中国又是最大的用户群体,但国产输入法太垃圾了,不争气啊,专坑自己人,给爷靠边站。

fcitx5 默认是带有 五笔拼音 的,但还是习惯配置 Rime 引擎的 五笔拼音 ,在 Windows 下也是用的 Weasel。所以我安装 fcitx5-rime 输入法并配置 中州韵五笔拼音 输入法:

安装 fcitx5-rime 和相关包:

sudo apt install fcitx5 \
  fcitx5-rime \
  fcitx5-configtool \
  fcitx5-chinese-addons \
  fcitx5-frontend-all \
  im-config

初步配置:

im-config

选择 fcitx5 作为默认输入法框架。

配置 中州韵 输入法:

fcitx5-configtool

一定要选择 中州韵 输入法,而不是其他的方案,不然只使用了 fcitx5,而没有用上 Rime 输入法引擎。

配置 東風破 /plum/(中州韵的配置管理器):

git clone https://github.com/rime/plum.git

cd plum
rime_frontend=fcitx5-rime bash rime-install --select :all lotem/rime-forge/lotem-packages.conf

# 选择需要安装的输入法方案
# 选择 16 21 12 .(12 Emoji 是可选的)。
# 注意最后一个选择是一个点,安装完成后重启 fcitx5

我自己用的自定义配置:

wget https://raw.githubusercontent.com/eallion/dotfiles/refs/heads/main/.local/share/fcitx5/rime/custom_phrase.txt -O ~/.local/share/fcitx5/rime/custom_phrase.txt
wget https://raw.githubusercontent.com/eallion/dotfiles/refs/heads/main/.local/share/fcitx5/rime/default.custom.yaml -O ~/.local/share/fcitx5/rime/default.custom.yaml
wget https://raw.githubusercontent.com/eallion/dotfiles/refs/heads/main/.local/share/fcitx5/rime/wubi_pinyin.custom.yaml -O ~/.local/share/fcitx5/rime/wubi_pinyin.custom.yaml

# 重新部署输入法

GitHub 上有一款 fcitx5-rime 仿微信输入法的皮肤:

https://github.com/witt-bit/fcitx5-theme-wechat

但我对微信爱不起来,而且也更喜欢 Kimpanel: https://extensions.gnome.org/extension/261/kimpanel

Gnome Wayland 下 Kimpanel 会修复一些软件对输入法的兼容性问题,如:选词面板漂移。

17. Grub 美化
#

没有安装常见的 Grub Customizer,而是用了 vinceliuice/grub2-themes 这个项目来一键美化。

git clone https://github.com/vinceliuice/grub2-themes.git
cd grub2-themes
sudo ./install.sh -b -t whitesur

去掉一些 Grub 菜单杂项:

# 去掉可执行权限 memtest86+
sudo chmod -x /etc/grub.d/20_memtest86+
sudo cat /etc/default/grub

修改以下内容:

...
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`( . /etc/os-release && echo ${NAME} )`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_SUBMENU=true
GRUB_DISABLE_RECOVERY=true
...

如果 Grub 的 UEFI 菜单项没有图标:

sudo vim /etc/grub.d/30_uefi-firmware

查找 menuentry ... 'uefi-firmware' 添加 --class efi

- menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' 
+ menuentry '$LABEL' --class efi \$menuentry_id_option 'uefi-firmware'

更新 Grub 配置,使其生效:

sudo update-grub

18. DEB822 格式 APT 源
#

一条内置命令就可把 APT 源改为 DEB822 新版源格式:

sudo apt modernize-sources

如果遇到提示:

注意: 鉴于仓库 'https://download.docker.com/linux/ubuntu questing InRelease'
不支持 'i386' 体系结构,跳过配置文件 'stable/binary-i386/Packages' 的获取。

修改源配置文件,添加:Architectures: amd64,例如 Docker 的源:

sudo vim /etc/apt/sources.list.d/docker.sources

添加

+ Architectures: amd64

完整内容如下:

Types: deb
URIs: https://download.docker.com/linux/ubuntu/
Suites: questing
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
Architectures: amd64

19. 配置 Gnome Shell 扩展
#

配置 Gnome Shell 扩展插件: https://extensions.gnome.org/

先安装 Gnome Shell 扩展插件:

sudo apt install gnome-shell-extensions

查看本机已安装并启用的插件:

gnome-extensions list --enabled --details

备份插件配置:

dconf dump /org/gnome/shell/extensions/ > extensions.dconf

恢复插件配置:

dconf load /org/gnome/shell/extensions/ < extensions.dconf

20. 常用命令
#

本来没有第 20 条的,就凑个数吧。

虽然桌面系统可以用 GUI 操作,但有些事情还是需要用命令来完成的。

我作为 update 型人格,没事就要 update 一下,所以 update 命令:

sudo apt update && sudo apt upgrade -y && sudo apt autoremove

管理服务:

# status:stop:start:restart:disable:enable
sudo systemctl status docker

添加 PPA 源:

sudo add-apt-repository ppa:obsproject/obs-studio
# 卸载
sudo add-apt-repository remove ppa:obsproject/obs-studio

修改 APT 源为 DEB822 格式:

sudo apt modernize-sources
# + Architectures: amd64

安装软件:

# APT
sudo apt install vim
# 下载的 .deb 包
sudo dpkg -i ./vscode.deb -f
# Flathub 仓库
flatpak install flathub com.obsproject.Studio
# Snap 仓库,下载的 Snap 包可能需要加 --danderous
sudo snap install code

卸载软件:

# APT
sudo apt remove --purge vim
# Flathub 包
flatpak uninstall flathub com.obsproject.Studio --delete-data
# Snap 包
sudo snap remove --purge code

登录 SSH 服务器,但我是专门用 Tabby 来管理 SSH 登录的:

# 基本
ssh user@ip
# 密钥
ssh -i path/id_rsa user@ip
# 端口
ssh -i path/id_rsa user@ip -p 22

启用一个临时的 Web 服务器:

python3 -m http.server

传输数据,比如把 VPS 上的 data.tar.gz 传回本地当前目录:

# Rsync
rsync -avz -e "ssh -i path/id_rsa -p 22" user@ip:/home/user/data.tar.gz ./
# SCP,-P 要大写
scp -r -i path/id_rsa -P 22 user@ip:/home/user/data.tar.gz ./

 秋假

Click to load Giscus
or