如何在 Ubuntu 上安装 dracut?

Flo*_*aus 6 boot initramfs dracut software-installation

我只是尝试安装 dracut,它是新 Ubuntu 12.10 服务器上 initramfs-tools 的替代品,以使用 dracut 的高级功能通过两个绑定接口从 NFS 启动。

不幸的是安装遇到了以下冲突:

root@ubuntu:~# aptitude install dracut
The following NEW packages will be installed:
  cryptsetup{a} cryptsetup-bin{a} dmraid{a} dracut{b} kpartx{a} kpartx-boot{a} libcryptsetup4{a} libdevmapper-event1.02.1{a} libdmraid1.0.0.rc16{a} libreadline5{a} lvm2{a} mdadm{a} postfix{a} ssl-cert{a} watershed{a} 
0 packages upgraded, 15 newly installed, 0 to remove and 2 not upgraded.
Need to get 3,004 kB of archives. After unpacking 8,428 kB will be used.
The following packages have unmet dependencies:
 dracut : Conflicts: initramfs-tools but 0.103ubuntu0.2 is installed.
          Conflicts: initramfs-tools:i386 which is a virtual package.
The following actions will resolve these dependencies:
     Keep the following packages at their current version:
1)     dracut [Not Installed]                             
Accept this solution? [Y/n/q/?] 
Run Code Online (Sandbox Code Playgroud)

建议的解决方案“dracut [未安装]”没有帮助。不幸的是,我在 Ubuntu 上没有找到关于 dracut 的太多信息,因此我可以确定它是否应该工作。我在 debian 中发现了以下错误报告,直到现在仍未解决:http : //bugs.debian.org/cgi-bin/bugreport.cgi? bug= 669342

我很快在 Ubuntu 12.04 服务器上测试了 dracut 的安装,它安装得很好,但我需要它用于 Ubuntu 12.10。

我已经尝试强制 dpkg 忽略冲突,但结果是一样的

aptitude -o Dpkg::Options::="--force-conflicts" install dracut
Run Code Online (Sandbox Code Playgroud)

从源代码安装 dracut 正在工作,但要在 initramfs 中包含网络设置,需要 dracut-network 包,我找不到它的源代码,即使它在 Ubuntu 12.10 中可用,它取决于 dracut 包...

有人可以帮助我如何安装 dracut 并分享一些关于为什么在 Ubuntu 中使用 dracut 如此困难的内幕吗?

And*_*ini 5

这里的问题是,Aptitude 不建议你删除initramfs,因为它被认为是一个核心包,而Aptitude 从不建议你删除核心包。

解决此问题的唯一明显方法是告诉 Aptitude 删除initramfs-tools

aptitude install dracut initramfs-tools-
Run Code Online (Sandbox Code Playgroud)

然而,如果你尝试这个命令,你会发现它触发了其他重要的依赖问题:

The following packages have unmet dependencies:
 dmsetup : Depends: initramfs-tools but it is not going to be installed.
 console-setup : Depends: initramfs-tools (>= 0.85eubuntu12) but it is not going to be installed.
 linux-image-3.5.0-22-generic : Depends: initramfs-tools (>= 0.36ubuntu6) but it is not going to be installed.
 linux-image-3.5.0-17-generic : Depends: initramfs-tools (>= 0.36ubuntu6) but it is not going to be installed.
 kpartx-boot : Depends: initramfs-tools but it is not going to be installed.
 [...]
Run Code Online (Sandbox Code Playgroud)

所有这些包实际上都应该依赖linux-initramfs-tools(这是由initramfs-tools和提供的虚拟包dracut)。这是一个错误,应该像这样报告

简而言之,唯一的解决方案是修改这些包的依赖项。在当前情况下,如果dracut没有损坏的软件包,您将无法安装。(不过,如果您的软件包损坏没有问题,那么您可以使用dpkg --force-all、删除initramfs-tools和安装dracut。)