使用工具箱,RPM-Ostree&FlatPak管理Fedora SilverBlue的软件包

时间:2020-02-23 14:33:20  来源:igfitidea点击:

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