Is there a package manager that during installation/update will already start installing first fetched packages whlie other packages are still being downloaded?

Example made up scenario:

Chromium depends on libwebkit.

Normally when a user runs apt-get install chromium apt will fetch the small in size libwebkit.deb library and then still wait for chromium.deb to be fetched. This is simply a waste of time especially during big system updates.

Instead this scenario is much more reasonable:

apt-get install

Apt-get downloads libwebkit.deb and as soon as libwebkit.deb is downloaded it proceeds with installing it without waiting for chromium.deb to be fully fetched, chromium.deb at the same time is being fetched in the background. Once chromium.deb has finished downloading apt-get can proceed with its installation immediately without waiting for libwebkit to install as libwebkit was already installed during the fetching of chromium.deb


Actually, if you do a normal 'install me some packages' routine with portage, it does all of the below:

  • Calculates dependencies of the package and all the dependencies dependencies to the root of glibc;

  • Once the list of dependencies is found, it checks what packages are yet to be installed;

  • Determines the proper order to install them

So far this just about matches all package managers. Then something different happens:

  • Provided enough free space exists (yes, the tool stores source package size) it then starts downloading each source package in installation order.

(This happens in the background, the rest happens in-order as packages download)

  • If your link is slow enough where a 100MB source package is taking 20 minutes, yet the prior file is done, Portage will immediately start with configuring and building the prior file, as long as no further dependencies are required for it.

In the case of Clementine, it requires a large number of gstreamer modules one may not already have. It also requires QT. Let's imagine you don't have QT.

The gstreamer modules don't require qt; they will download before qt. They are much smaller. They will compile and, as part of the compilation process, fully install themselves, before qt even downloads if you have a slow enough connection.

Please understand that this behavior is quite useful, and nothing in Debian, Ubuntu, RPM-based or otherwise distros shares anything like it in my experience - which is about 15 years among 10 distributions and FreeBSD.

So the question, not decisively answered yet, is: "Does such a parallel-fetching/installing package manager exist" and my guess of the answer is "not yet". or perhaps, "patches welcome".

My $0.02, adjusted for inflation and currency exchange to your local monetary unit.

  • Thanks. I actually found out that Sabayon has this feature as well. (by default) – denysonique Dec 26 '13 at 19:53

Short answer: No.

Long answer: Why?

APT is very efficient at what it does, and it does well. It's counter productive download and uncompress and install all at the same time. If the process is interrupted for any motive apt hasn't ended any of its actions. Or every of it's actions take too much time to complete. Remember that one of UNIX advantages is being modular from its base. If something doesn't work you can identify and fix it.

Lets put this example:

(This is how you plan to)

While Chrome downloads the disk don't have space left, but wait, libwebkit is installing at the same moment too, then both fails, leaving nothing done.

(This is what happens)

Okey, I got no more space left, hey human free some space here or I can't download anything. *free some space* Okey, I got the download free space, but I don't have the installation space free, look something to remove from the filesystem. *removes stuff* Look, the installation is done.

As you can see by the simple example, the last uses a linear process to do it's work. Seems that takes more time, but is more secure that way and easy to fix any problem that could happens.

  • "It's counter productive download and uncompress and install all at the same time" this is actually very productive, especially when installing large packages with many dependencies or doing a system update. Gentoo Linux has this by default and I have never seen it having problem with this feature. gentoo.org/doc/en/handbook/… – denysonique Dec 26 '13 at 18:55
  • 1
    @denysonique compiling != installing. Please, read again. Also, this is not a place for feature requests or discussions, so thread carefully. – Braiam Dec 26 '13 at 19:01
  • "compilling != installing" - well after the package has been compiled it is installed by portage. Please read again, I asked a question and your answer does not answer my question - whether this is possible or if there is a package manager supporting this feature. This isn't a feature request neither. – denysonique Dec 26 '13 at 19:15
  • 1
    Common buddy, read well: When you are emerging a series of packages, Portage can fetch the source files for the next package in the list even while it is compiling another package, thus shortening compile times. It says nothing about install. – Braiam Dec 26 '13 at 19:18
  • 1
    Portage performs the install once the compilation is finished. I am a Gentoo user and I know what I am talking about. Please stop trying to prove me wrong everywhere you think you have a chance, this is not very constructive nor good for your reputation. After I pointed you with your error you should just accept it and possibly think of how to make this feature happen. We are here to help each other, not to prove one another wrong. – denysonique Dec 26 '13 at 19:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.