- Published on
Fedora 36 Installation
- Authors
- Name
- ttyS3
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:
[ttys3@fedora ~]$ 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" 的错误
[root@fedora 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
XMODIFIERS=@im=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