在 Fedora 上,我可以使用以下命令获取另一个软件包所依赖的软件包列表:
dnf repoquery --requires --resolve <package>
Run Code Online (Sandbox Code Playgroud)
但我想要相反的。
即列出所有包,我正在查询的包依赖。
如果可能,要么仅针对已安装的软件包,也可能针对我的存储库中的所有软件包。
这个问题类似于What is secure to remove from GNOME Desktop => GNOME(但不是重复的)。
我想删除 GNOME 桌面环境。运行此问题中建议的命令在 Fedora 29 上不起作用。
$ sudo dnf group remove gnome-desktop-environment
Warning: Group 'gnome-desktop-environment' is not installed.
Error: No groups marked for removal.
Run Code Online (Sandbox Code Playgroud)
我注意到有一个名为的组gnome-desktop。
但是,sudo dnf group remove gnome-desktop列出了数百个(全部?)已安装的软件包以供删除。它包括与 GNOME 完全无关的软件包(例如lib*、plasma-*、texlive-*、 ...)。我担心运行此命令会迫使我完全重新安装系统。
有没有一种安全的方法可以从 Fedora 29 中删除 GNOME 的桌面环境,从而使我可以安装正常运行的 KDE?
我只想回收一些磁盘空间(不是全部..)
尝试完成包名称时,选项卡完成挂起。例如dnf info fire[TAB]。我怎样才能解决这个问题?
它通常适用于 bash,也适用于完成dnf选项,但不适用于包名。它似乎冻结了命令行,我必须按 Ctrl-C 两次才能返回命令提示符。
Tab 补全曾经在 Fedora 28 上工作,这个问题是在升级到 Fedora 29 后开始的。
我已经安装了bash-completion和sqlite软件包,这是完成所必需的。
使用sudo strace -pXXXX -fro /tmp/strace.log(其中 XXXX 是正在尝试 tab 完成的 bash 终端的进程 ID)从这里生成了一个 9MB 80k+ 行日志文件并附加了 55 个进程。建议在那里寻找什么提示?
对dnf包名选项卡完成的观察
dnf install或之后不起作用dnf infodnf remove(包括我的用户)当我想列出已安装的软件包时,我通常采用以下两种方式之一。
老式的方法是使用rpm -qa | grep <whatever I look for>,仅此而已。
但最近我想要更全面地展示我的包,因此,我使用dnf list --installed <whatever I look for>.
但是,在查看结果时,有几件事我不明白。
考虑这个例子:
# dnf list --installed zsh
Last metadata expiration check: 0:13:25 ago on Mon Jul 11 05:48:04 2016.
Installed Packages
zsh.x86_64 5.2-5.fc24 @@commandline
Run Code Online (Sandbox Code Playgroud)
(实际打印的空间更宽)
所以结果条目是:«package» «version» «repo»。
在我的例子中是:
到目前为止,结果表是可以理解的,但我对 repo 名称前面的两个“@@”的含义感到困惑。
此外,“命令行”表明该软件包是从命令行安装的(下载 RPM,然后dnf install whatever.rpm 在命令行中安装,等等)。但是我很确定我已经zsh通过dnf install zsh.
但这还不是全部。
我在我的系统上从 repo 安装了几个包@System,@fedora(但是也fedora没有@)和诸如 …
我已经liveusb-creator在 Fedora 24 上使用 DNF 进行了安装。这些是与它一起安装的依赖项:
liveusb-creator.noarch 3.95.2-1.fc24
python-cssselect.noarch 0.9.1-9.fc24
python-lxml.x86_64 3.4.4-4.fc24
python-pyquery.noarch 1.2.8-7.fc24
python-qt5.x86_64 5.6-4.fc24
python-qt5-rpm-macros.noarch 5.6-4.fc24
qt5-qtconnectivity.x86_64 5.6.1-2.fc24
qt5-qtenginio.x86_64 1:1.6.1-2.fc24
qt5-qtlocation.x86_64 5.6.1-2.fc24
qt5-qtmultimedia.x86_64 5.6.1-3.fc24
qt5-qtquickcontrols.x86_64 5.6.1-1.fc24
qt5-qtsensors.x86_64 5.6.1-2.fc24
qt5-qtserialport.x86_64 5.6.1-1.fc24
qt5-qttools-common.noarch 5.6.1-2.fc24
qt5-qttools-libs-clucene.x86_64 5.6.1-2.fc24
qt5-qttools-libs-designer.x86_64 5.6.1-2.fc24
qt5-qttools-libs-help.x86_64 5.6.1-2.fc24
qt5-qtwebchannel.x86_64 5.6.1-2.fc24
qt5-qtwebsockets.x86_64 5.6.1-2.fc24
sip.x86_64 4.18-2.fc24
Run Code Online (Sandbox Code Playgroud)
现在我想liveusb-creator再次卸载,但dnf remove liveusb-createor试图删除比安装更多的包(包括 Java,我不想删除):
java-1.8.0-openjdk x86_64 1:1.8.0.101-1.b14.fc24 @updates 496 k
java-1.8.0-openjdk-devel x86_64 1:1.8.0.101-1.b14.fc24 @updates 40 M
liveusb-creator noarch 3.95.2-1.fc24 @updates 2.1 M
python-cssselect noarch 0.9.1-9.fc24 @fedora 301 k …Run Code Online (Sandbox Code Playgroud) 在升级到 Fedora 28 时,我运行了两个命令
sudo dnf upgrade --refresh
sudo dnf install dnf-plugin-system-upgrade
Run Code Online (Sandbox Code Playgroud)
这些工作但下一个命令 sudo dnf system-upgrade download --releasever=28 进入了这个
Error:
Problem: package alsa-plugins-freeworld-lavcrate-1.1.5-1.fc27.i686 requires libavcodec.so.57, but none of the providers can be installed
- ffmpeg-libs-3.3.7-1.fc27.i686 does not belong to a distupgrade repository
- problem with installed package alsa-plugins-freeworld-lavcrate- 1.1.5-1.fc27.i686
Run Code Online (Sandbox Code Playgroud)
我的机器有声音问题: Fedora 27 上没有声音 告诉我该怎么办?
设置自己做一个 Fedora 发行版的图像。我想在 debian 上运行 dnf 包管理器 (fedora),因为该工具允许在指定的目标目录中下载和安装 rpm 包。
是否有存储库,如何在 debian/jessie 上安装“dnf?
这样的事情会很棒
apt-get install dnf
Run Code Online (Sandbox Code Playgroud)
rpm 和 python3 已经安装。所以我只需要“dnf”
我有一个临时情况,我正在使用预发布的 F27,并且需要将一个包保留为特定(工作)版本,并且在后续版本停止破坏某些内容之前不升级。我一般知道“你真的不想这样做”,但正如我所说,这是对 pre-rel 系统的临时处理。您可以使用 apt 系统“固定”软件包,但我找不到与 dnf 等效的任何内容。
1.9libssh2无法从 RHEL 8.1 及更高版本上的 EPEL 存储库安装(在 RHEL 8.3 上测试):
# dnf --enablerepo=epel install libssh2-1.9.0
...
All matches were filtered out by modular filtering for argument: libssh2-1.9.0
Error: Unable to find a match: libssh2-1.9.0
Run Code Online (Sandbox Code Playgroud)
其他 EPEL RPM 可以毫无障碍地安装。
如何在libssh2不下载并本地安装的情况下安装它?
我开始使用 Fedora 22 并开始学习 dnf 只是为了发现两个烦人的事实:
我该如何解决?
dnf ×10
fedora ×7
repository ×2
apt ×1
autocomplete ×1
bash ×1
cache ×1
debian ×1
gnome ×1
live-usb ×1
module ×1
networking ×1
rhel ×1
upgrade ×1