[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: yum update so slow

On Mon, 2007-09-24 at 11:45 +0200, Jochen Schlick wrote:
> Hi, I have a laptop where rawhide is installed since the days
> of Fedora Core 1. It has only 256MB ram so updating using yum
> was always like a lame duck but nowadays it's really a crap.

 This might not help, but if you'd like to try something I've attached
some python code which calls yum and "iterativlely updates". This might
make it be small enough that it isn't living in swap, or at least not as
 Let me know how it goes.

James Antill <james antill redhat com>
Red Hat
#! /usr/bin/python -tt

# Copyright 2007 Red Hat
# Author: James Antill <jantill redhat com>

import os
import sys

import yum
from yum.update_md import UpdateMetadata

def current_updates():
    y = yum.YumBase()

    y.localPackages = []
    y.updates = []


    return y.doPackageLists('updates')

ygh = current_updates()

sec_only  = False

if len(sys.argv) == 2:
    if sys.argv[1] == "security":
        sec_only = True

needsReboot = False
repos = []

if sec_only:
    upmd = UpdateMetadata()

    for i in ygh.updates:
        if i.repo not in repos:

    for r in repos:
        try: # attempt to grab the updateinfo.xml.gz from the repodata
        except yum.Errors.RepoMDError:
            pass # No metadata found for this repo

# Walk our list of updates trying to do them one at a time
my_updates = ygh.updates[:]
pkg = None
while my_updates:
    if pkg in ygh.updates:
        print >>sys.stderr, " Error: Failed to update:", pkg
    pkg = my_updates.pop(0)
    if pkg not in ygh.updates:
        pkg = None
    md = True
    if sec_only:
        md = upmd.get_notice((pkg.name, pkg.ver, pkg.rel))
    if md:
        if sec_only:
            md = md.get_metadata()
            if md['type'] != 'security':
                pkg = None
        print "Updating:", pkg
        os.system("yum update -d 0 -y %s" % pkg.name)

    ygh = current_updates()

Attachment: signature.asc
Description: This is a digitally signed message part

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]