我dig
在新安装的 CentOS 上找不到该命令。我试过了,dnf install dig
但它说找不到包裹。
如何在 CentOS 上安装 dig?
我正在设置一个 yum 存储库,并且需要调试 yum.conf 文件中的一些 URL。我需要知道为什么 Scientific Linux 试图抓取这个 URL,而我期望它抓取另一个 URL:
# yum install package
http://192.168.1.100/pub/scientific/6.1/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: sl. Please verify its path and try again
Run Code Online (Sandbox Code Playgroud)
该的yum.conf(5)手册页提供了有关这些变量的一些信息:
变量
您可以使用许多变量来简化 yum 配置文件的维护。它们在几个选项的值中可用,包括 name、baseurl 和 commands。
$releasever 这将替换为 distroverpkg 中列出的软件包版本的值。这默认为 'redhat-release' 包的版本。
$arch 这将被替换为您在 Python 中由 os.uname()[4] 列出的架构。
$basearch 这将替换为您在 yum 中的基础架构。例如,如果您的 $arch 是 i686,您的 $basearch 将是 i386。
$YUM0-$YUM9 …
如何从特定存储库(例如,“epel”)获取已安装在我的系统上的所有 RPM 软件包的列表?
我想安装一个旧版本的package <x>
,当我使用dnf
它时只显示当前版本的package <x>
.
有没有办法安装旧版本dnf
?
我刚刚从 Ubuntu 切换到 Fedora14。在 Ubuntu 中,我们apt-get autoremove
可以删除孤立/未使用的包。Fedora 中的对应物是什么?
Apt 和 DNF/Yum,据我所知,Linux 发行版的两个最流行的包管理方案,都只支持系统范围的包安装:root 拥有的文件,二进制文件进入(/usr)?/s?bin
,设置进入/etc
等等。
然而,在有多个没有 root 权限的个人用户的系统上,经常(如果不是总是)发生用户想要安装一些可用于该发行版的应用程序或实用程序;并且他/她对个人的安装很好,并且对于许多/所有用户来说并不常见。
现在,让包在安装时具有不同的根目录或一组根目录,以便用户可以执行此操作,这似乎并不是一个牵强或难以置信的复杂想法。管理已安装软件包的用户特定注册表(无论单个用户是否拥有他/她自己的软件包数据库)也不是什么大问题。
那么这个功能没有被添加到那些常见的包管理系统/方案中的原因是什么?
注意:这是一个信息丰富的问题,即我问的是人们对过去的了解,而不是人们对此功能的看法。
我正在尝试在rpm
不使用互联网的情况下在本地安装软件包。我尝试了以下方法:
sudo rpm -u kernel-devel-4.2.7-200.fc22.x86_64.rpm
Run Code Online (Sandbox Code Playgroud)
我得到了:
error: kernel-devel-4.2.7-200.fc22.x86_64.rpm: hdr blob(2060952): BAD, read returned 0
error: kernel-devel-4.2.7-200.fc22.x86_64.rpm cannot be installed
Run Code Online (Sandbox Code Playgroud)
我也试过:
sudo dnf --disablerepo='*' install kernel-devel-4.2.7-200.fc22.x86_64.rpm
Run Code Online (Sandbox Code Playgroud)
而且它似乎仍在使用互联网,所以我不知道它是否有效,因为互联网连接真的很慢。
有没有办法来解决这个问题?
在不干净的关机和丰富多彩的 fsck 之后,一大堆文件丢失了。'rpm -Va' 的输出有几百行长(主要是缺少文件,但也有一些校验和和其他不匹配)。有没有一种简单的方法可以重新安装丢失和/或损坏文件的软件包?
有问题的操作系统是 Fedora 22。
让我们阅读官方文档:
dnf history rollback <transaction-spec>
撤消在指定事务之后执行的所有事务。如果无法撤销任何交易,由于rpmdb中的当前状态,不撤消任何交易。
重点是我的。所以这个命令是指undo
命令。好的,让我们阅读有关撤消的文档:
dnf history undo <transaction-spec>
执行与指定事务中执行的所有操作相反的操作。如果由于 RPMDB 的当前状态无法撤消任何操作,请不要撤消任何操作。
听起来这两个命令做同样的事情,只是前者可以撤消多个事务,而后者只能撤消一个。
这种理解是否正确?(我希望从第一手经验中得到答案,而不是从您如何解释手册的角度来看,我对事实感兴趣,而不是猜测。)
上下文:我需要编写一个脚本来运行dnf upgrade -y
,然后运行一些测试,然后在测试失败时撤消 dnf 更改。我正在寻找实现这一目标的最佳方式。
我有一个 Fedora 系统 (A),我在那里安装了一些软件包。现在我想在另一台计算机 (B) 上安装 Fedora,并且我想在其上安装相同的软件包。
在 Debian 术语中,我想完成这样的事情:
$ dpkg --get-selections > pkg_sel_host_a # on host_a
$ dpkg --set-selections < pkg_sel_host_a # on host_b
Run Code Online (Sandbox Code Playgroud)
但老实说,我真的想要一种更好的方法来在新的 Fedora 19 系统 (B) 上选择相同的软件包:我只想从系统 A 安装在dnf install
(或yum install
)命令行中明确提到的软件包 - 而不是那些作为依赖项安装的!
为什么?因为可能依赖项已更改 - 我不想在新系统上安装过时的依赖项。另外,当我删除包时,我想删除(可能)然后不需要的自动安装的依赖项(即孤儿)。
我发现dnf list installed
- 但它不会显示是否明确选择了软件包或由于依赖关系而安装。
我如何在 Fedora 上获取这些信息?
Fedora/dnf 复制软件包选择的方式是什么?