当我探索 Fedora 22(我目前使用的是 Fedora 20)时,我了解到 Yum 已被 DNF 取代。基本上我想知道的是这两个 Fedora 包管理器之间的区别以及这种变化的原因。
我开始使用 Fedora 22 并开始学习 dnf 只是为了发现两个烦人的事实:
我该如何解决?
update调用/操作后是否有任何选项可以在 dnf 中添加当前版本的列check-update?默认情况下列表仅包含包名称、新版本和存储库。
我正在尝试为 Wine 安装构建依赖项,以便我可以对它进行一些黑客攻击。我正在运行 Fedora 22、64 位。
我已经使用dnf builddep以下方法成功安装了 64 位依赖项:
# dnf --version 1.1.0 # dnf 列出酒 可用套餐 wine.i686 1.7.47-1.fc22 更新 wine.src 1.7.47-1.fc22 更新源 wine.x86_64 1.7.47-1.fc22 更新 # dnf builddep wine Package ImageMagick-devel-6.8.8.10-9.fc22.x86_64已经安装,跳过. 包 alsa-lib-devel-1.0.29-1.fc22.x86_64已经安装,跳过. 包 audiofile-devel-1:0.3.6-6.fc22.x86_64已经安装,跳过. 包 autoconf-2.69-20.fc22.noarch已经安装,跳过. ...
现在我的问题 - 我还想安装 32 位依赖项,但无法让它工作。以下是我尝试过的事情:
# dnf builddep wine.i386 没有匹配的包:wine.i386 错误:找不到某些包。 # dnf builddep wine.i686 没有匹配的包:wine.i686 错误:找不到某些包。 # dnf builddep wine-1.7.47-1.fc22.i686 没有匹配的包:wine-1.7.47-1.fc22.i686 错误:找不到某些包。 # dnf builddep wine --target=i686 …
我使用的是 Fedora 22 和 dnf-1.1.2-4.fc22.noarch
作为用例场景:我发现没有安装 strace 包。我想弄清楚这个包是否属于任何其他组,以安装我可能也需要执行类似任务的软件。
我发现了这种蛮力方式(grepping 3 个空格,因为组名以缩进开头):
dnf grouplist | grep ' ' | while read line; do dnf groupinfo "$line"; done
Run Code Online (Sandbox Code Playgroud)
然后将此输出重定向到一个文件,搜索包名,并在那里找到组名。
以下是bash日志的一部分,完整的日志可以在https://gist.github.com/limkokhole/f2a423112aa005f10862获取:
[xiaobai@xiaobai hello]$ dnf --verbose download --source readline
cachedir: /var/cache/dnf
Loaded plugins: noroot, needs-restarting, reposync, copr, playground, kickstart, Query, generate_completion_cache, builddep, download, config-manager, protected_packages, system-upgrade, debuginfo-install
DNF version: 0.6.4
repo: using cache for: spot-chromium
not found deltainfo for: Copr repo for chromium owned by spot
not found updateinfo for: Copr repo for chromium owned by spot
repo: using cache for: rpmfusion-nonfree-updates-testing
not found deltainfo for: RPM Fusion for Fedora 21 - Nonfree - Test Updates
not found updateinfo …Run Code Online (Sandbox Code Playgroud) 回到过去,我曾经使用yum. 它简单、容易,让我可以做当时并不真正可用的事情(使用相同的基础架构在 ia64 和 ppc 等平台上为多个发行版构建包)。
快进 5 年,我想在 Fedora 23 上建立一个简单的 chroot jail。然而,dnf这并不容易。我曾经只能/etc/yum.repo.d/在监狱目录中创建一个文件并调用yum --installroot. 不幸的dnf是仍在阅读本地存储库,而不是在 chroot jail 中创建的存储库。
是否可以dnf使用不在/etc/dnf/dnf.conf或 中的conf 文件/etc/yum.repos.d/?
当我今天早些时候尝试升级 Fedora 26 服务器时,我在下载软件包后收到此错误消息:
warning: /var/cache/dnf/forensics-5e8452ee3a114fbe/packages/protobuf-c-1.3.0-1.fc26.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 87e360b8: NOKEY
Importing GPG key 0x87E360B8:
Userid : "CERT Forensics Operations and Investivations Team <forensics@cert.org>"
Fingerprint: 26A0 829D 5C01 FC51 C304 9037 E97F 3E0A 87E3 60B8
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-cert-forensics-2018-04-07
Is this ok [y/N]: n
Didn't install any keys
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: GPG check FAILED
Run Code Online (Sandbox Code Playgroud)
所以我中止了升级,我尝试重新dnf clean packages …
我将 Fedora 27 升级到 28,稍微处理了一下(没有运行 dnf update)然后升级到 29。今天早上我试过了
sudo dnf -v update
Run Code Online (Sandbox Code Playgroud)
我得到了
须藤 dnf -v 更新 加载的插件:builddep、config-manager、copr、debug、debuginfo-install、下载、generate_completion_cache、需要重启、playground、repoclosure、repodiff、repograph、repomanage、reposync、系统升级 DNF 版本:4.0.9 缓存目录:/var/cache/dnf 未知配置值:failovermethod=priority in /etc/yum.repos.d/fedora-cisco-openh264.repo;配置:不存在 ID 为“failovermethod”的 OptionBinding 未知配置值:failovermethod=priority in /etc/yum.repos.d/fedora-modular.repo;配置:不存在 ID 为“failovermethod”的 OptionBinding ... 回购:从远程下载:fedora-modular 错误:Curl 错误 (60):无法使用 https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-29&arch=x86_64 的给定 CA 证书对对等证书进行身份验证 [SSL 证书问题:证书链中的自签名证书] (https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-29&arch=x86_64)。 Fedora 模块化 29 - x86_64 0.0 B/s | 0 乙 00:01 无法下载“https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-29&arch=x86_64”:无法准备内部镜像列表:卷曲错误(60):对等证书无法使用https的给定CA证书进行身份验证:/ /mirrors.fedoraproject.org/metalink?repo=fedora-modular-29&arch=x86_64 [SSL 证书问题:证书链中的自签名证书]。 错误:无法同步 repo 'fedora-modular' 的缓存
真正的问题看起来像
[SSL certificate problem: self signed certificate in certificate chain]
Run Code Online (Sandbox Code Playgroud)
ca-bundle.crt 链接到 tls-ca-bundle.pem 和那个文件
205488 Dec …Run Code Online (Sandbox Code Playgroud) 我正在使用 Fedora 33。我可能对一个简单的事实感到困惑。
如果我尝试运行未安装的程序,dnf 将搜索 repos 并建议安装它。如果我回答是,它将被安装并且我可以正常使用它。
如果我要尝试安装该软件 ( dnf install <package>),则会要求我提供超级用户密码。
对于我的示例,我尝试以两种方式安装“游侠”,但似乎找不到区别。两者都位于同一个 bin 目录中,并且都在进程中的用户下运行。
我的问题如下:如果可以在没有密码的情况下简单地安装软件,为什么 dnf 会要求它?
dnf ×10
fedora ×8
cache ×1
dependencies ×1
dist-upgrade ×1
gpg ×1
networking ×1
repository ×1
rhel ×1
root ×1
rpm ×1
sudo ×1
upgrade ×1
yum ×1