Mailinglist Archive: opensuse (3450 mails)

< Previous Next >
[opensuse] Re: How to clean up /var/cache/zypper/RPMS ?
  • From: Joachim Schrod <jschrod@xxxxxxx>
  • Date: Thu, 22 Jan 2009 03:09:30 +0100
  • Message-id: <4977D55A.1030407@xxxxxxx>
Philipp Thomas wrote:
* Amedee Van Gasse (amedee@xxxxxxxxx) [20090118 15:19]:
Rodney Baker schreef:

From the command line, as root, zypper clean will remove all downloaded
rpms.

According to our zypper developer its all or nothing with the current
version. And it's not clear if there ever will be a way to do so. He has yet
to see plausible use cases for a package cache.

Then please give him mine:

I share package cache and repository meta infos via NFS for several
systems that are updated in sync; to prevent them all downloading
the same files again and again. There's no need to set up an own
package repository for that use case, a changed zypp.conf and an
NFS mount is all that's needed.

I don't do automatic updates, this would disturb operations too
much -- these are workstations where people are logged in for weeks
or months, not private home systems that get turned off at night.
Instead I do nightly checks and prefetch to-be-updated packages.
The nightly check sends an email to a sysadmin. After a quick
control if the update must be managed manually (e.g., kernel
updates, libc updates, X server updates, and such) I have a command
that does the update on all systems.

Please note that this is actually a reimplementation of THE
standard Debian update check functionality: apticron. apticron is
actually better than my solution because it includes package
changelogs in the email and thus eases the decision process how
important the update is. And apticron is one piece of Debian's
update management that I miss sorely on openSUSE.

But it should be clear from my description that I actually don't
need all packages in the cache: I need the currently installed one
and all newer ones, owing to the prefetch situation described above.

Not quite incidentally I have a daily cron job that cleans up my
package cache exactly for this situation and the process described
above. It's written in Perl and uses the CPAN classes
RPM::Header::PurePerl to parse version infos, and RPM::VersionSort
to compare package versions properly. (These two CPAN modules are
not available as SUSE packages, AFAIK, at least zypper search
doesn't find them; but I have my own Perl installation anyhow for
other reasons.) It deletes all packages from the cache where newer
versions are installed. It keeps all versions of uninstalled
packages, as one might be in the process to test them before
rolling them out on all systems.

One could think about keeping packages after an update around for a
few days, to be able to revert in case of problems, that would be
an easy enhancement. If people are interested, I can post that
script on the opensuse list; it's just 90 lines including POD docs.
But be aware that it won't run on a standard SUSE system due to the
missing Perl modules.

Just my 0.05 EUR (inflation adjusted).

Joachim

--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Joachim Schrod Email: jschrod@xxxxxxx
Roedermark, Germany

--
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups