使用工具箱,RPM-Ostree&FlatPak管理Fedora SilverBlue的软件包
Fedora SilverBlue是一种来自Fedora工作站的不可变桌面操作系统。
它为我们提供了常规桌面操作系统的外观和感受,但具有极端稳定性和可靠性。
$neofetch /:-------------:\ Hyman@theitroad :-------------------:: ----------------------------- :-----------/shhOHbmp---:\ OS: Fedora 31.20191219.0 (Workstation Edition) x86_64 /-----------omMMMNNNMMD ---: Host: 20LTS1RE0Y ThinkPad L480 :-----------sMMMMNMNMP. ---: Kernel: 5.3.16-300.fc31.x86_64 :-----------:MMMdP------- ---\ Uptime: 2 hours, 5 mins ,------------:MMMd-------- ---: Packages: 1629 (rpm), 7 (flatpak) :------------:MMMd------- .---: Shell: zsh 5.7.1 :---- oNMMMMMMMMMNho .----: Resolution: 1368x771 :-- .+shhhMMMmhhy++ .------/ WM: sway :- -------:MMMd--------------: Theme: Adwaita [GTK2/3] :- --------/MMMd-------------; Icons: Adwaita [GTK2/3] :- ------/hMMMy------------: Terminal: termite :-- :dMNdhhdNMMNo------------; Terminal Font: Monospace 9 :---:sdNMMMMNds:------------: CPU: Intel i5-8350U (8) @ 3.600GHz :------:://:-------------:: GPU: Intel UHD Graphics 620 :---------------------:// Memory: 3920MiB/15529MiB
Fedora SilverBlue旨在成为开发人员的优秀平台,超级系统和使用Docker的工作流程 - 与工具箱,船长,苏比亚,CRI-O和Kubernetes一起使用。
SilverBlue是不可变的,这意味着磁盘上的操作系统从一台机器到下一个机器完全相同,而且它永远不会随着所用而改变。
Fedora SilverBlue的软件管理
Fedora SilverBlue为其用户提供了不同选项,用于管理软件应用程序,与其他基于包的Linux发行版相比。
这些选项是:使用工具箱:这主要用于安装CLI应用程序和开发和调试工具。
对于GUI应用程序,主要安装方式是通过Flathub App Store.Package分层:RPM-OSTree工具是混合图像/包系统具有原子升级和包装分层。
1.使用工具箱管理Fedora SilverBlue的软件包
SilverBlue附带了工具箱实用程序,它使用容器提供可以安装和使用开发工具和库的环境。
该实用程序允许我们运行多个包含Fedora Server(没有GUI)的容器,并安装我们想要的软件包以进行开发目的。
Toolbox提供了一个熟悉的基于包的环境,其中可以使用标准Fedora Package Manager - DNF安装工具和库。
使用工具箱的优点
它保持主机操作系统清洁且稳定 - 我们不必在我们并不总是使用的主机系统上安装数百个软件包.Isolate软件依赖项:容器是隔离和组织不同项目所需依赖性的好方法。
最佳实验 - 如果我们想使用新的软件或者不稳定的包版本,工具箱是正确的位置。
如果在没有破坏主机系统的情况下,我们可以随时清理环境。
我们快乐的良好 - 我们将永远微笑,了解主机系统不会因安装错误包而无法破坏。
工具箱在引擎盖下使用以下技术:Buildahoci容器镜像镜像
安装工具箱
Fedora SilverBlue船用预安装的工具箱实用程序。
如果出于任何原因,命令行工具不可用,请使用命令安装:
$rpm-ostree install toolbox
由于包分层,因此使用工具箱启动重启才能启动到图像。
工具箱也可以通过运行在Fedora工作站中安装:
sudo dnf install toolbox
在Fedora SilverBlue上使用工具箱
安装工具箱后,可以使用命令创建新的容器:
$toolbox create
我们可以为要创建的容器提供一个名称,以及特定的Fedora版本。
$toolbox create --container myfed --release f31 Created container: myfed Enter with: toolbox enter --container myfed
这将创建一个名为MyFED的容器,从Fedora 31基础图像中创建一个MyFed。
对于Fedora 30,使用F30.to列出现有工具箱容器和图像,使用命令:
$toolbox list IMAGE ID IMAGE NAME CREATED a198bc8c3cda registry.fedoraproject.org/f31/fedora-toolbox:31 2 months ago CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME 70ca4cdc725d fedora-toolbox-31 5 weeks ago Up 6 seconds ago registry.fedoraproject.org/f31/fedora-toolbox:31 8bad25c92c74 myfed 16 seconds ago Created registry.fedoraproject.org/f31/fedora-toolbox:31
要输入工具箱容器以进行交互式用途:
$toolbox enter -c myfed We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. Welcome to the Toolbox; a container where you can install and run all your tools. - Use DNF in the usual manner to install command line tools. - To create a new tools container, run 'toolbox create'. For more information, see the documentation. ⬢[Hyman@theitroad ~]$
从终端开始,我们可以使用DNF来管理软件包,如我们将在Fedora工作站机器中执行。
sudo dnf -y install vim bash-completion curl wget
要删除工具箱容器,请使用:
--- Remove all toolbox containers -- $toolbox rm -a --- Remove a toolbox container named myfed -- $toolbox rm myfed --- Force removal of running toolbox container -- $toolbox rm -f myfed
要删除所有现有的Podman工具箱容器,图像和配置:
$toolbox reset
2.使用FLOTPAK管理FEDORA SilverBlue的软件包
FLATPAK是应用程序可以安装在SilverBlue上的主要方式。
FlatPak应用程序的主要来源是Flathub - 可以安装的FlatPak应用程序的大型存储库。
使用FlatPak.
通过打开Fedora的Flathub设置页面可以轻松地完成Flathub上的Flathub设置,然后单击"Flathub存储库文件"按钮以下载Flathub配置。
终端用户还可以通过运行手动添加Flathub存储库:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
在Fedora上使用FLATPAK
要列出我们在系统上配置的遥控器,请运行:
$flatpak remotes Name Options fedora system,oci flathub system
要搜索存储库上的应用程序,请使用搜索命令。
例如:
$flatpak search chromium Name Description Application ID Version Branch Remotes Chromium B.S.U. Fast paced, arcade-style, top-scrolling space shooter net.sourceforge.chromium-bsu 0.9.16.1 stable flathub $flatpak search skype Name Description Application ID Version Branch Remotes Skype Call and message skype users, with video chat support com.skype.Client 8.55.0.141 stable flathub Franz Messenger for the desktop com.meetfranz.Franz 5.4.1 stable flathub Discord Chat client com.discordapp.Discord 0.0.9 stable flathub
每个搜索结果包括应用程序ID和远程应用程序所在的遥控器。
要安装应用程序,请运行:
$flatpak install flathub <APP-ID> Example: $flatpak install com.skype.Client -y ...... 1. [✓] org.freedesktop.Platform x86_64 19.08 flathub 178.2 MB/238.0 MB 2. [✓] org.freedesktop.Platform.GL.default x86_64 19.08 flathub 90.9 MB/90.9 MB 3. [✓] org.freedesktop.Platform.Locale x86_64 19.08 flathub 16.7 kB/318.2 MB 4. [✓] org.freedesktop.Platform.VAAPI.Intel x86_64 19.08 flathub 8.7 MB/8.7 MB 5. [✓] org.freedesktop.Platform.openh264 x86_64 19.08 flathub 594.2 kB/593.4 kB 6. [—] com.skype.Client x86_64 stable flathub 80.9 MB/80.8 MB Installing 6/6… ████████████████████ 100% 2.6 MB/s 00:00
要列出已安装的应用程序,请运行:
$flatpak list --app Name Application ID Version Branch Origin Installation Skype com.skype.Client 8.55.0.141 stable flathub system Chromium B.S.U. net.sourceforge.chromium-bsu 0.9.16.1 stable flathub system GNU Image Manipulation Program org.gimp.GIMP 2.10.14 stable fedora system File Roller org.gnome.FileRoller stable fedora system
要运行已安装的应用程序,请使用:
$flatpak run com.skype.Client
要将所有已安装的应用程序和运行时更新为最新版本,请运行:
$flatpak update
要删除应用程序,请运行:
$flatpak uninstall com.skype.Client
有关更多详细信息,请检查FlatPak CLI参考页面。
3.使用RPM-OSTREE管理FEDORA SilverBlue的包装
最多(但不是全部)Fedora提供的RPM包可以使用此方法安装在SilverBlue上。
这是通过修改SilverBlue安装来扩展SilverBlue的包装的作品。
包分层创建一个新的"部署"或者可引导文件系统根,并且在包分层后必须重新启动系统。
这保留回滚和事务模型。
首先,生成RPM repo元数据:
$rpm-ostree refresh-md
使用包装可以安装在SilverBlue上:
$rpm-ostree install <package name>
例子:
$rpm-ostree install vim $for i in neofetch zsh feh sway; do rpm-ostree install $i; done
我们可以使用不同版本的包装替换包 rpm-ostree override
命令:
$rpm-ostree override replace <path to package>
要卸载包,请运行:
$rpm-ostree uninstall flameshot Checking out tree 675ab14... done Resolving dependencies... done Checking out packages... done Running pre scripts... done Running post scripts... done Running posttrans scripts... done Writing rpmdb... done Writing OSTree commit... done Staging deployment... done Freed: 242.4 MB (pkgcache branches: 2) Removed: flameshot-0.6.0-4.fc31.x86_64 qt5-qtsvg-5.12.5-1.fc31.x86_64 Run "systemctl reboot" to start a reboot
在Fedora SilverBlue上执行升级和回滚
标准行为是自动下载更新并安装它们,而是作为用户,我们可以手动执行系统更新。
$rpm-ostree upgrade
或者,我们可以在不下载它们的情况下检查可用的更新,运行:
$rpm-ostree upgrade --check
执行回滚
SilverBlue会记录以前的操作系统版本,可以切换到最新版本。
有两种方法可以回滚到以前的版本:临时回滚:只需重新启动系统并从引导菜单中选择以前的版本以执行临时滚动.PerManant回滚:要永久切换到以前的部署,请使用命令:
$rpm-ostree rollback