web-dev-qa-db-fra.com

Comment installer dracut sur Ubuntu?

Je viens d'essayer d'installer dracut, un remplacement des outils initramfs sur un nouveau serveur Ubuntu 12.10, qui permet d'utiliser les fonctionnalités avancées de dracut pour démarrer à partir de NFS via deux interfaces liées.

Malheureusement, l'installation a rencontré le conflit suivant:

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/?] 

La solution proposée "dracut [non installée]" n'aide pas. Malheureusement, je n'ai pas trouvé beaucoup d'informations sur dracut sur Ubuntu, ce qui m'a permis de déterminer si cela fonctionnerait. J'ai trouvé dans Debian le rapport de bogue suivant qui n'a pas été résolu jusqu'à présent: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=669342

J'ai rapidement testé l'installation de dracut sur un serveur Ubuntu 12.04 et tout s'est bien déroulé, mais j'en ai besoin pour Ubuntu 12.10.

J'ai déjà essayé de forcer dpkg à ignorer les conflits, mais le résultat était le même

aptitude -o Dpkg::Options::="--force-conflicts" install dracut

Installer dracut à partir du code source fonctionne, mais pour inclure la configuration réseau dans initramfs, le paquet dracut-network est nécessaire, mais je ne pouvais pas trouver les sources. Même s'il est disponible dans Ubuntu 12.10, cela dépend du paquet dracut ...

Quelqu'un peut-il m'aider à installer dracut et peut-être expliquer pourquoi il est si difficile d'utiliser dracut sous Ubuntu?

5
Florian Feldhaus

Le problème ici est qu'Aptitude ne suggère pas de supprimer initramfs, car il est considéré comme un package principal, et Aptitude ne propose jamais de supprimer les packages principaux.

Le seul moyen évident de contourner ce problème serait de dire à Aptitude de supprimer initramfs-tools:

aptitude install dracut initramfs-tools-

Cependant, si vous essayez cette commande, vous verrez qu'elle déclenche d'autres problèmes de dépendance importants:

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.
 [...]

Tous ces paquets devraient en réalité dépendre de linux-initramfs-tools (qui est un paquet virtuel fourni par initramfs-tools et dracut). Ceci est un bogue, et devrait être rapporté comme tel .

En bref, la seule solution consiste à modifier les dépendances de ces packages. Avec la situation actuelle, vous ne pouvez pas installer dracut sans avoir des paquets cassés. (Cependant, si vous avez des paquets cassés, vous pouvez jouer avec dpkg --force-all, supprimer initramfs-tools et installer dracut.)

3
Andrea Corbellini

Grâce à l'aide de Andrea Corbellini , le problème a été identifié et fait l'objet d'un suivi dans le rapport de bogue le paquet dracut ne peut pas être installé sur Ubuntu 12.1 . Le problème sous-jacent est suivi dans le rapport de bogue dépend de linux-initramfs-tools . Toute aide sur la sensibilisation au dernier rapport de bogue afin qu’il soit résolu au plus vite est très appréciée.

En collaboration avec le responsable Debian du paquet dracut, nous avons trouvé une solution de contournement pour installer dracut en supprimant le conflit dans initramfs-tools. Des informations détaillées peuvent être trouvées dans l'article du blog Installation et configuration de dracut pour démarrer Ubuntu 12.10 à partir d'une racine NFS sur un réseau balisé VLAN à l'aide d'interfaces liées .

En bref, les étapes sont

Sudo apt-get build-dep dracut # install build dependencies for dracut
Sudo apt-get install dpkg-dev # install dpkg-dev to build dracut .deb package
cd ~                          # change to your home folder
git clone git://git.kernel.org/pub/scm/boot/dracut/dracut.git # checkout dracut
cd dracut
sed -i 's/Conflicts: initramfs-tools/Conflicts: /' debian/control # fix conflict
sed -i 's/usr\/etc/etc/g' debian/dracut.install # fix another issue
dpkg-buildpackage -b          # build .deb packages
cd ..
dpkg -i dracut*.deb           # install dracut and dracut-network
1
Florian Feldhaus