IntelligentMirror: RPM and DEB Caching Improved (0.4)

IntelligentMirror version 0.4 is available now. There have been significant improvements in intelligent mirror since last release.


  1. Fixed defunct process problem. You will not see defunct python processes hanging around anymore. Previously every forked daemon used to got defucnt because parent never waited for the forked child to finish.
  2. IntelligentMirror now supports caching of Debian packages just like rpms. So now IntelligentMirror is best suited shared environments where people have different tastes.
  3. Intelligent Mirror now uses url_rewrite_program instead of redirect_program. This boosts the efficiency of IntelligentMirror by a significant factor as url_rewrite_program has an acl controller url_rewrite_access. And using url_rewrite_access only requests for rpm/deb packages will be passed to Intelligent Mirror. So, IM now need not process each and every incoming request. Also, it has redirector_bypass directive which will bypass IM in case all the instances of IM are busy serving requests. So, squid will not die with a fatal error in case of huge requests.
  4. Options to enable/disable caching for rpm and Debian packages have been added.
  5. Options to control the total size of caching directories and the size of individual package to be cached have also been introduced.
  6. Proxy authentication is also supported now just the way it is supported in yum.
  7. Packages are not checked for last-modified time anymore. Because in principle two rpms A and B can only have same name iff they have the same contents. So, the delay in response time in case of hits has reduced.


  1. RPMs for Fedora/Red Hat
  2. Source RPMs for Fedora/Red Hat
  3. Source Tar balls

Installation and configuration is easy and the INSTALL and README files should serve the purpose.

In case you have any suggestions or problems, leave a comment here or file a ticket on project page.


4 thoughts on “IntelligentMirror: RPM and DEB Caching Improved (0.4)

  1. Tried it on F9 and it seems to work (I’d already tweaked the SELinux settings when I installed 0.3). It should be noted that one should mv RPM packages in the spool directory to the new rpm/ subdirectory so as not to lose them.

  2. Unfortunately, your assumption 7. is not valid when packages can get signed/resigned. For example, Rawhide packages are replaced with signed versions for test releases and releases which are then put in the same location. And how does IntelligentMirror cope with the Fedora newkey resigning? Does it compare the whole URL (not just the file name)?

  3. Thanks for the wonderful insight. I’ll check/read the entire concept of packaging and then will see what can be done to sort out this problem.

Comments are closed.