我正在使用 fedora 25 gnome 最新更新。我的 dnf 仓库列表是
fedora-cisco-openh264.repo rpmfusion-free-updates.repo
fedora.repo rpmfusion-free-updates-testing.repo
fedora-spotify.repo rpmfusion-nonfree-rawhide.repo
fedora-updates.repo rpmfusion-nonfree.repo
google-chrome.repo rpmfusion-nonfree-updates.repo
rpmfusion-free.repo rpmfusion-nonfree-updates-testing.repo
昨天我用dnf更新了我的系统。今天 gnome 软件中心通知我有 19 个软件包需要更新。我尝试使用 dnf 进行更新,因为我讨厌使用软件中心进行更新,因为它需要重新启动,但找不到任何使用dnf update
.
所以我使用gnome软件中心更新了fedora,它安装了一个有问题的gdm版本,无法登录,不得不使用tty
登录,然后startx
。
然后我会sudo dnf distro-sync
删除 dnf 并降级 gnome 软件中心安装的所有更新,然后重新启动,一切正常。
Gnome 软件中心对我来说很熟悉,这不是我第一次在这个网站上询问它。值得信赖吗?它的仓库与dnf冲突吗?
答案1
Fedora Workstation 上的 GUI 使用 PackageKit 来安装操作系统软件包。 Fedora 上的 PackageKit 使用与/etc/yum.repos.d
.
也可以使用 PackageKit 来pkcon
代替。它不一定提供正常操作中的太多细节。不过,您可以查看一些工具:
pkcon get-updates
- 列出更新而不安装pkcon refresh force
- 刷新更新/包列表pkcon update
- 安装更新,无需重新启动或停止运行先前版本的任何程序。pkcon resolve gdm
- 如果有多个可用的 gdm 软件包(包括更新),文档表示应该将它们全部列出。显然这是一个谎言,但它没有列出更新。 https://bugzilla.redhat.com/show_bug.cgi?id=1429488
PackageKit 绕过dnf
.他们确实通过许多库共享大量代码。然而,它被粘合在一起并以不同的方式配置,例如它使用完全独立的缓存。它甚至以不同的方式处理签名验证(据我所知,dnf 主要将其委托给 rpm)。
FWIW,我在使用 Fedora Workstation 时还没有看到 PackageKit 导致任何此类问题。我在使用 PackageKit 时遇到的主要问题是它没有通知更新。
我的 Fedora 25 系统报告以下内容:
$ dnf repolist
Last metadata expiration check: 0:16:16 ago on Mon Mar 6 12:50:41 2017.
repo id repo name status
fedora Fedora 25 - x86_64 51,669
local-google-chrome local-google-chrome 3
*rpmfusion-free RPM Fusion for Fedora 25 - Free 541
*rpmfusion-free-updates RPM Fusion for Fedora 25 - Free - Updates 170
updates Fedora 25 - x86_64 - Updates 17,151
$ dnf info gdm | grep -E 'Version|Repo'
Version : 3.22.1
Repo : @System
Version : 3.22.2
Repo : updates
Version : 3.22.2
Repo : updates
$ pkcon refresh force
...
$ pkcon get-updates | grep gdm
Available gdm-1:3.22.2-1.fc25.x86_64 (updates)
(以及pkcon resolve
错误:)
$ pkcon resolve gdm
Resolving [=========================]
Installed gdm-1:3.22.1-1.fc25.x86_64 (installed:anaconda) The GNOME Display Manager
Available gdm-1:3.22.1-1.fc25.i686 (fedora) The GNOME Display Manager