Fedora COSMIC Atomic 后需要安装必要的软件

安装第三方源

docker配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
curl -fsSL https://download.docker.com/linux/fedora/docker-ce.repo -o docker-ce.repo

sudo install -o root -g root -m 644 docker-ce.repo /etc/yum.repos.d/docker-ce.repo

sudo rm -f /etc/yum.repos.d/docker-ce.repo

sudo tee /etc/yum.repos.d/docker-ce.repo > /dev/null <<'EOF'
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/fedora/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/fedora/gpg
EOF

安装nofree源

1
2
3
rpm-ostree install \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

安装高频软件

1
2
3
rpm-ostree install fcitx5 fcitx5-rime fcitx5-configtool fcitx5-gtk3 fcitx5-gtk4 fcitx5-qt5 fcitx5-qt6 librime-lua \
vim net-tools host-spawn \
docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
1
systemctl reboot
阅读更多

Fedora Atomic安装docker

安装软件包

下载 docker 官方 repo 文件到系统 etc

ostree 只读,不能 dnf config‑manager

1
2
curl -fsSL https://download.docker.com/linux/fedora/docker-ce.repo -o docker-ce.repo
sudo install -o root -g root -m 644 docker-ce.repo /etc/yum.repos.d/docker-ce.repo

替换 docker‑ce.repo 为阿里云源

1
2
3
4
5
6
7
8
9
10
sudo rm -f /etc/yum.repos.d/docker-ce.repo

sudo tee /etc/yum.repos.d/docker-ce.repo > /dev/null <<'EOF'
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/fedora/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/fedora/gpg
EOF

安装软件

1
2
3
sudo rpm-ostree install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl reboot

配置docker服务

1
2
3
sudo systemctl enable --now docker
sudo usermod -aG docker $USER # 没有报错,但实际会执行失败
sudo gpasswd -a s$USER docker # 用此命令替换,仍然执行失败

失败原因
docker 组由 docker‑ce rpm 在 **/usr/lib/group**注册,没有写入可写的 /etc/group。
gpasswd / usermod 只会读写 /etc/group

把 docker 组条目复制到可写的 /etc/group

1
2
getent group docker | sudo tee -a /etc/group
grep docker /etc/group

输出应当看到 docker:x:964:。

此时再次执行sudo usermod -aG docker $USER 。把用户加入 docker 组。通过id命令查询到groups 列表里面出现 docker。

测试

1
docker run --rm hello-world

Fedora Atomic安装node.js和npm

原因

Atomic /usr 是只读OSTree镜像;系统nodejs的npm默认全局目录指向 /usr/lib/node_modules,root也无法写入,会直接报错 EACCES。

sudo npm‑g 不仅会权限报错,npm脚本以root执行还有安全风险。

通过NVM安装

node、npm、全部全局包都放在家目录,完全不碰系统layered包。

1
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

写入shell配置,重启终端:

1
source ~/.bashrc

安装LTS版本:

1
2
3
4
5
nvm install --lts
nvm use --lts

# 查看默认的全局包位置,通常在用户的home目录下
npm config get prefix

安装成功之后就可以不需要sudo安装全局包:

1
npm install -g typescript

全程不需要sudo,全局包自动放在 ~/.nvm/versions/node/* 下面。

优点:可以随意切换node版本;系统rpm‑ostree操作完全不影响node环境。


排查命令

1
2
3
4
5
6
7
8
# npm全局安装路径
npm config get prefix

# 看PATH是否包含npm‑global bin
echo $PATH

# 列出已经安装的全局包
npm list -g --depth=0

在单系统中如何隐藏grub菜单

在单系统中隐藏grub菜单

在 Fedora 44 中,可以启用 GRUB 的自动隐藏功能让启动过程更流畅。启用后,每次启动都会直接进入系统,如果需要时,可以在启动时按 F8 或长按左 Shift 键唤出菜单。具体操作如下:

1
2
sudo grub2-editenv - set menu_auto_hide=1
sudo grub2-editenv - unset menu_show_once

执行后重启电脑,GRUB 菜单应该就不再显示了。

如果之后想恢复菜单,可以取消这个设置:

1
2
sudo grub2-editenv - unset menu_auto_hide

注意:将值设为 0 是无效的,必须使用 unset 命令来移除这个变量

参考资料

阅读更多