Fedora 36 Installation
April 19, 2022
F36 当前已经 Beta, 不出意外, 4月份应该会正式发布.
由于发现磁盘还有一点空闲空间, 想来可以装一个 F36 玩玩. 主要是想体验它的 默认 btrfs 文件系统.
从 Fedora 33 起, btrfs 就已经是Fedora Linux 桌面版本的默认文件系统, 但是老灯当时是从 Fedora 31 升级的, 由于F33之前都是默认 ext4, 因此, 即使升级到 F33, 也还是用的 ext4.
安装配置⚓
整个安装过程还是非常顺利的, 并且安装过程比较简单, 点两下鼠标就搞定了.
安装后第一次进系统会要求创建第一个用户, 然后是有个启用第三方源(主要是 rpmfusion) 的选项, 默认是蓝色启用的.
所以 rpmfusion 也不用单独安装了.
默认的分区方案是一个 btrfs root volume, 然后 /
用 /root
subvolume, /home
用 /home
subvolume, 同时 /boot
使用单独分区, 且保持使用 ext4:
[[email protected] ~]$ mount | rg 'btrfs|ext4|vfat'
/dev/nvme0n1p5 on / type btrfs (rw,relatime,seclabel,compress=zstd:1,ssd,space_cache=v2,subvolid=257,subvol=/root)
/dev/nvme0n1p5 on /home type btrfs (rw,relatime,seclabel,compress=zstd:1,ssd,space_cache=v2,subvolid=256,subvol=/home)
/dev/nvme0n1p4 on /boot type ext4 (rw,relatime,seclabel)
/dev/nvme0n1p1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)
第一件事, 我们要调整一下 dnf 配置 /etc/dnf/dnf.conf
增加 max_parallel_downloads=8
或 max_parallel_downloads=16
(主要看你网速)
第一次启动后, `sudo dnf upgrade -y` 更新系统到最新内核并重启 (主要是为了后面安装显卡驱动).
nvidia 专有驱动安装
重启后, 我们先把显卡驱动安装了. 默认启动时加载的是 nouveau
开源驱动. 4K 屏 流畅度一般, 切成 专有驱动丝滑.
sudo dnf install akmod-nvidia -y
成功安装 nvidia 驱动后再重启一次系统.
好了, 再次重启后, 我们 cat /proc/cmdline
验证下 n 卡驱动的内核参数是不是正常, 主要驱动就是添加了 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1
,
即屏蔽开源驱动nouveau
, 并启用 nvidia_drm 内核模块的 modeset (即 KMS)
老灯还有个习惯就是, 编辑 /etc/default/grub
, 并删除 rhgb
, 修改 quiet
为 noquiet
. (需要sudo grub2-mkconfig -o /etc/grub2-efi.cfg
然后重启的时候才能看到效果)
在老灯看来, rhgb
不利于排查问题. (当系统真出现问题的时候, 你两眼一摸黑, 不知道卡在哪一步了)
Google Chrome 的安装方法参考 https://docs.fedoraproject.org/en-US/quick-docs/installing-chromium-or-google-chrome-browsers/
# Install Third Party Repositories
sudo dnf install fedora-workstation-repositories
# Enable the Google Chrome repo
sudo dnf config-manager --set-enabled google-chrome
# Finally, install Chrome
sudo dnf install google-chrome-stable
安装 zsh 并设置为 login shell:
sudo dnf install -y zsh
# 给 root 改:
# 提示时输入 /usr/bin/zsh
sudo lchsh
# 给当自己的用户名改:
# 提示时输入 /usr/bin/zsh
sudo lchsh username
安装一些必要小工具:
dnf install -y ripgrep htop nload ncdu neovim xlsclients neofetch gedit gnome-tweaks
安装完整版的 java:
Fedora 有个坏毛病就是, 默认安装的是 headless 版的 openjdk (F36 是 java-17-openjdk-headless
), 如果需要 GUI 支持, 还要安装 另一个包. 如果不安装, 你在运行基于 JAVA 的 GUI 程序时可能会遇到
“Can’t load library libawt_xawt.so” 的错误
[[email protected] yum.repos.d]# dnf list --installed | rg java
abrt-java-connector.x86_64 1.3.1-3.fc36 @anaconda
java-17-openjdk-headless.x86_64 1:17.0.2.0.8-7.fc36 @anaconda
javapackages-filesystem.noarch 6.0.0-7.fc36 @anaconda
tzdata-java.noarch 2022a-1.fc36 @fedora
sudo dnf install -y java-17-openjdk
F33 起 Fedora 的默认编辑器就成了 nano 了, 如果你想恢复 vim 为默认编辑器, 下面的命令会安装vim为默认编辑器并卸载nano–default-editor 包.
sudo dnf install vim-default-editor --allowerasing
输入法安装, 我习惯五笔:
sudo dnf install -y ibus-rime ibus-table-chinese-wubi-jidian
git clone https://github.com/ttys3/rime-wubi $HOME/.config/ibus/rime
using ibus-setup
and add Chinese - Rime
and English - English
Input Method
go to Gnome Keyboard
add Chinese(Rime)
编辑 /etc/environment
加上:
GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
[email protected]=ibus
INPUT_METHOD=ibus
SDL_IM_MODULE=ibus
GLFW_IM_MODULE=ibus
编译安装 neovim 最新版 (注: 也可以使用 sudo dnf builddep neovim
安装构建依赖):
sudo dnf groupinstall "Development Tools" "Development Libraries"
sudo dnf install -y cmake ninja-build gcc-c++ libtool
git clone https://github.com/ttys3/nvim-config.git $HOME/.config/nvim
cd $HOME/.config/nvim && make nvim
安装 golang
sudo dnf install -y golang-bin
安装 rust (ref https://www.rust-lang.org/tools/install)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装完成后, ~/.zshrc
加上:
export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
source $HOME/.cargo/env
去 https://www.nerdfonts.com/font-downloads 下载 nerdfont 并安装:
老灯主要下载了 Iosevka 和 JetBrainsMono
mkdir -p ~/.local/share/fonts
cp -r JetBrainsMono ~/.local/share/fonts/
cp -r IosevkaNerd ~/.local/share/fonts/
打开 gnome-tweaks 调整默认的 monospace 字体为 JetBrainsMono 或 Iosevka
grub配置更新:
sudo grub2-mkconfig -o /etc/grub2-efi.cfg
这里有点问题, 默认 Fedora 的 grub 扫到了我的 Arch grub 配置, 但是添加的条目有问题:
Arch 正确的menu是:
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-dc941692-cb41-44bc-9bf0-f045fc1fd9f8' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root a79b862f-1a07-413f-9537-3922300b3436
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=/dev/mapper/vgarch-lvroot rw loglevel=3 noquiet nvidia-drm.modeset=1
echo 'Loading initial ramdisk ...'
initrd /intel-ucode.img /initramfs-linux.img
}
Fedora 生成的 arch 启动menu 是这样的:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Arch Linux (on /dev/mapper/vgarch-lvroot)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz-linux--dc941692-cb41-44bc-9bf0-f045fc1fd9f8' {
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root a79b862f-1a07-413f-9537-3922300b3436
linux /vmlinuz-linux root=/dev/mapper/vgarch-lvroot rw loglevel=3 noquiet nvidia-drm.modeset=1
initrd /intel-ucode.img
}
没错, 最后那一行 initrd /intel-ucode.img
错了. 正确的应该是 initrd /intel-ucode.img /initramfs-linux.img
其它Wayland 相关配置请参考 /post/upgrade-to-gnome-42-and-switch-to-wayland/
Refs⚓
https://fedoraproject.org/wiki/Changes/BtrfsByDefault
https://fedoraproject.org/wiki/GRUB_2
https://github.com/neovim/neovim/wiki/Building-Neovim#building
https://ask.fedoraproject.org/t/java-cant-find-library/10128