如何在Silverblue上变基到Fedora 33?
原创怎样在Silverblue上变基到Fedora 33?
在Linux发行版的世界中,Silverblue 是一个基于 Flatpak 和 Podman 的操作系统,它提供了一个容器化的体验,允许用户在保持系统稳定的同时,可以轻松地安装和更新应用程序。如果你想在 Silverblue 上体验最新的 Fedora 33 发行版,可以通过变基(fork)的对策来实现。以下是在 Silverblue 上变基到 Fedora 33 的步骤:
### 准备工作
在起始之前,请确保你的 Silverblue 系统已经更新到最新状态,并且你有足够的权限进行系统级别的修改。
### 步骤 1: 添加 Fedora 33 的仓库
首先,你需要将 Fedora 33 的仓库添加到你的 Silverblue 系统中。这可以通过编辑 `/etc/yum.repos.d/fedora-33.repo` 文件来实现。
bash
sudo nano /etc/yum.repos.d/fedora-33.repo
添加以下内容到该文件中:
ini
[fedora-33]
name=Fedora 33 - Base
baseurl=https://download.fedoraproject.org/pub/fedora/linux/releases/33/Everything/x86_64/os/
enabled=1
gpgcheck=1
gpgkey=https://download.fedoraproject.org/pub/keys/fedora-release@fedoraproject.org.gpg
保存并关闭文件。
### 步骤 2: 安装必要的工具
为了能够从 Fedora 33 的仓库中安装软件包,你需要安装一些必要的工具。
bash
sudo dnf install dnf-plugins-core
### 步骤 3: 安装 Docker
Silverblue 默认没有安装 Docker,但是你可以通过 Fedora 33 的仓库来安装它。
bash
sudo dnf install docker
### 步骤 4: 安装 Podman
Podman 是一个不需要 root 权限的容器运行时,它也是 Silverblue 的一部分。确保你的 Podman 已经安装:
bash
sudo dnf install podman
### 步骤 5: 设置 Fedora 33 的用户空间
在 Silverblue 上,所有的应用程序都运行在用户空间中。为了变基到 Fedora 33,你需要创建一个新的用户空间。
bash
sudo podman run --rm -it --name fedora-33-base fedora bash
### 步骤 6: 安装必要的依存
在 Fedora 33 的用户空间中,你需要安装一些必要的依存,以便能够安装 Fedora 33 的系统包。
bash
sudo podman exec fedora-33-base dnf install dnf-plugins-core
### 步骤 7: 安装系统包
现在你可以起始安装 Fedora 33 的系统包了。这里我们以安装 `baseos` 包为例。
bash
sudo podman exec fedora-33-base dnf install @baseos
这个过程也许需要一些时间,基于它会下载和安装大量的系统包。
### 步骤 8: 检查安装
安装完成后,你可以检查 `/usr/lib/os-release` 文件来确认系统已经变基到 Fedora 33。
bash
sudo podman exec fedora-33-base cat /usr/lib/os-release
你应该会看到类似以下的内容:
ini
NAME="Fedora"
VERSION="33 (Thirty Three)"
ID="fedora"
ID_LIKE="rhel centos fedora"
VERSION_ID="33"
PLATFORM_ID="platform:f33"
PRETTY_NAME="Fedora 33"
ANSI_COLOR="0;38;5;214"
CPE_NAME="cpe:/o:fedoraproject:fedora:33"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
### 步骤 9: 配置系统
你也许需要配置一些系统设置,比如网络、时区等。
bash
sudo podman exec fedora-33-base systemctl enable --now NetworkManager
sudo podman exec fedora-33-base timedatectl set-timezone Asia/Shanghai
### 步骤 10: 创建启动脚本
为了在 Silverblue 上启动你的 Fedora 33 用户空间,你需要创建一个启动脚本。
bash
sudo nano /usr/lib/systemd/system/fedora-33.service
添加以下内容:
ini
[Unit]
Description=Start Fedora 33 user space
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/podman run --rm -it --name fedora-33 fedora bash
ExecStop=/usr/bin/podman stop fedora-33
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=10
[Install]
WantedBy=multi