Title: Speeding up the Debian installer using eatmydata and dpkg-divert
Tags: english, debian, debian edu
-Date: 2014-09-16 13:30
+Date: 2014-09-16 14:00
<p>The <a href="https://www.debian.org/">Debian</a> installer could be
a lot quicker. When we install more than 2000 packages in
it occurred to me that we could just divert the programs away, replace
them with a simple shell wrapper calling
"eatmydata $program $@", to get the same effect.
-Yesterday I decided to test the idea, and wrapped up a simple
+Two days ago I decided to test the idea, and wrapped up a simple
implementation for the Debian Edu udeb.</p>
<p>The effect was stunning. In my first test it reduced the running
remove_install_override
</pre></blockquote></p>
+<p>In Debian Edu, I placed both code fragments in a separate script
+edu-eatmydata-install and call it from the pre-pkgsel.d and
+finish-install.d scripts.</p>
+
<p>By now you might ask if this change should get into the normal
Debian installer too? I suspect it should, but am not sure the
current debian-installer coordinators find it useful enough. It also
fsync() having effect? Perhaps it should go into its own udeb, to
allow those of us wanting to enable it to do so without affecting
everyone.</p>
+
+<p>Update 2014-09-24: Since a few days ago, enabling this optimization
+will break installation of all programs using gnutls because of
+<a href="https://bugs.debian.org/702711">bug #702711</a>. An updated
+eatmydata package in Debian will solve it.</p>
+
+<p>Update 2014-10-17: The bug mentioned above is fixed in testing and
+the optimization work again. And I have discovered that the
+dpkg-divert trick is not really needed and implemented a slightly
+simpler approach as part of the debian-edu-install package. See
+tools/edu-eatmydata-install in the source package.</p>
+
+<p>Update 2014-11-11: Unfortunately, a new
+<a href="http://bugs.debian.org/765738">bug #765738</a> in eatmydata only
+triggering on i386 made it into testing, and broke this installation
+optimization again. If <a href="http://bugs.debian.org/768893">unblock
+request 768893</a> is accepted, it should be working again.</p>