Forums Neueste Beiträge
 

Wie repariere ich yum?

26/08/2008 - 09:11 von Ansgar Strickerschmidt | Report spam
Hallo NG,

bràuchte mal eine Schritt-für-Schritt-Anleitung.
Bei einem Server mit einem ollen RedHat wollte ich routinemàßig mal wieder
yum anwerfen.
Jetzt spuckt er das hier aus:

root@machine # yum
Traceback (most recent call last):
File "/usr/bin/yum", line 22, in ?
import yummain
ImportError: Bad magic number in /usr/share/yum/yummain.pyc
root@machine #


Das hat früher mal funktioniert, ohne dass ich bewusst etwas geàndert
hàtte. Anscheinend hat sich da zwischenzeitlich etwas verheddert.
/usr/bin/yum sieht so aus:


#!/usr/bin/python
# yum -- Yum rpm-updating Client (Yellowdog Updater Modified)
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
USA.
# Copyright 2002 Duke University


import sys
import os
sys.path.insert(1,'/usr/share/yum')
import yummain
import yumlock

uid = os.geteuid()
lockfile = '/var/run/yum.pid'
mypid = str(os.getpid())

if uid == 0:
#check out/get the lockfile
if yumlock.lock(lockfile, mypid, 0644):
pass
else:
fd = open(lockfile, 'r')
oldpid = fd.readline()
if not os.path.exists('/proc/' + oldpid):
os.unlink(lockfile)
yumlock.lock(lockfile, mypid, 0644)
else:
print 'Existing lock %s. Aborting.' % lockfile
sys.exit(1)

try:
yummain.main(sys.argv[1:])
except SystemExit, e:
if uid == 0:
yumlock.unlock(lockfile)
sys.exit(e)
except KeyboardInterrupt, e:
print 'Exiting on User Cancel'
if uid == 0:
yumlock.unlock(lockfile)
sys.exit(1)
except IOError, (errno, strerror):
print 'IOError - # %s - %s' % (errno, strerror)
if uid == 0:
yumlock.unlock(lockfile)
sys.exit(1)

# Ende /usr/bin/yum

Der Anfang von /usr/share/yum/yummain.pyc sieht so aus:

root@machine # less /usr/share/yum/yummain.pyc
<99>N
aE]?c^@^@^@^@^B^@^@^@s·^@^@^@^?^@^@^?^R^@k^@^@Z^@^@^?^S^@k^A^@Z^A^@^?^T^@k^B^@Z^B
^@^?^U^@k^C^@Z^C^@^?^V^@k^D^@Z^D^@^?^W^@k^E^@Z^E^@^?^X^@k^F^@Z^F^@^?^Y^@k^G^@Z^G
^@^?^Z^@^@^@^?ESC^@k ^@Z ^@^?^\^@k
^@l^K^@^A^?^]^@k^L^@l^M^@^A^?^_^@d^@^@<84>^@^@Z^N^@^?`^@d^A^@<84>^@^@Z^O^@^?^G^Ad
^B^@<84>^@^@Z^P^@^?^X^Ae^Q^@d^C^@j^B^@o^N^@^A^?^Y^Ae^O^@<83>^@^@^An^A^@^Ad^D^@S(
^E^@^@^@c^A^@^M^@^G^@^C^@s<9D>^C^@^@^?^_^@^?"^@t^@^@d^A^@d^B^@d^C^@t^A^@i^B^@<83>
^@^B}^A^@^?%^@t^D^@}^B^@^?&^@t^F^@i^G^@d^D^@t^F^@^@<83>^B^@o^M^@^A^?'^@d^D^@}^B^@
n^A^@^A^?)^@y%^@^?*^@t ^@i
^@|^@^@d^E^@d^F^@g^A^@<83>^C^@\^B^@}^C^@}^D^@Wn9
^@^?+^@^Dt ^@i^M^@j
^@o'^@^A^A}^E^@^A^?,^@|^A^@d^G^@^@|^E^@^V<83>^B^@^A^?-^@t^O^@<83>^@^@^An^B^@^AX^?
/^@y<96>^B^?0^@xY^@|^C^@d^G^@^?0^@rL^@\^B^@}^F^@}^G^@^?1^@|^F^@d
^@j^B^@o0
^@^A^?2^@t^R^@i^S^@t^T^@|^G^@<83>^A^@d
^@^T<83>^A^@^@^?4^@t^V^@i^W^@^@<83>^A^@^An^A^@^Aqà^@W^?6^@x6^@|^C^@d^G^@^?6^@r)^@
\^B^@}^F^@}^G^@^?7^@|^F^@d^K^@j^B^@o^M^@^A^?8^@|^G^@}^B^@n^A^@^Aq"^AW^?9^@|^B^@o
^V^@^A^?:^@t^X^@d^L^@|^B^@<83>^@^A}
^@n!^@^A^?<^@|^A^@d^G^@d^M^@<83>^B^@^A^?^@t^A^@i^Z^@d^N^@<83>^A^@^A^??^@t^F^@iESC^@<83>^@^@|
^@_^\^@^?B^@t^@^@d^A^@|
^@i^]^@d^C^@t^A^@i^^^@<83>^@^B}
^@^?D^@| ^@i^\^@d^G^@j^B^@o=^@^A^?E^@t ^@|
^@i!^@d^O^@<83>^B^@}^K^@
^?F^@t^@^@d^A^@d^B^@d^C^@|^K^@d^P^@t"^@i#^@<83>^@^@<83>^@^C}^L^@n%^@^A^?H^@t^@^@d
^A^@d^B^@d^C^@t^D^@d^P^@t"^@i#^@<83>^@^@<83>^@^C}^L^@^?J^@x^M^A|^C^@d^G^@^?J^@r^@
^A\^B^@}^F^@}^G^@^?K^@|^F^@d^Q^@j^B^@o(^@^A^?L^@t^T^@|^G^@<83>^A^@|
^@_%^@^?M^@t^T^@|^G^@<83>^A^@|
^@_^]^@n^A^@^A^?N^@|^F^@d^R^@j^B^@o(^@^A^?O^@t^T
^@|^G^@<83>^A^@|^A^@_%^@^?P^@t^T^@|^G^@<83>^A^@|
^@_&^@n^A^@^A^?Q^@|^F^@d
^S^@j^B^@o^P^@^A^?R^@d^N^@|
^@_'^@n^A^@^A^?S^@|^F^@d^T^@d^U^@f^B^@j^F^@o^N^@
^A^?T^@t^O^@<83>^@^@^An^A^@^A^?U^@|^F^@d^V^@j^B^@o^P^@^A^?V^@d^N^@|
^@_(^@n^A
^@^A^?W^@|^F^@d^W^@j^B^@o^P^@^A^?X^@d^N^@|
^@_)^@n^A^@^AqB^BWWn6^@^?Z^@^Dt*
^@j
^@o'^@^A^A}^E^@^A^?[^@|^A^@d^G^@^@|^E^@^V<83>^B^@^A^?\^@t^O^@<83>^@^@^An^B^@^AX^?
^^@|
^@|^A^@|^L^@| ^@|^D^@f^E^@Sd^@^@S(^X^@^@^@Ns ^@^@^@thresholdi
^@^@^@s^K^@^@^@file_objects^M^@^@^@/etc/yum.confs^L^@^@^@tCc:hR:e:d:ys^D^@^@^@hel
pi^@^@^@^@s^Q^@^@^@Options Error: %ss^B^@^@^@-Ri<^@^@^@s^B^@^@^@-cs
^@^@^@configfiles^Z^@^@^@Cannot find any conf file.i^A^@^@^@s^A^@^@^@as
^@^@^@pre
prefixs^B^@^@^@-ds^B^@^@^@-es^B^@^@^@-ys^B^@^@^@-hs^F^@^@^@--helps^B^@^@^@-Cs^B^@
^@^@-t(+^@^@^@s^F^@^@^@Loggers^C^@^@^@syss^F^@^@^@stderr^@^@^@errorlogs^D^@^@^@No
nes^K^@^@^@yumconffiles^B^@^@^@oss^F^@^@^@accesss^D^@^@^@R_OKs^F^@^@^@getopts^D^@
^@^@argss^E^@^@^@goptss^D^@^@^@cmdss^E^@^@^@errors^A^@^@^@es^E^@^@^@usages^A^@^@
^@os^A^@^@^@as^F^@^@^@randoms ^@^@^@randranges^C^@^@^@ints
^@^@^@sleeptimes
^D^@^@^@times^E^@^@^@sleeps^G^@^@^@yumconfs^D^@^@^@confs^D^@^@^@exits^G^@^@^@gete
uids^C^@^@^@uids
^@^@^@debuglevels^F^@^@^@stdouts^C^@^@^@logs^D^@^@^@opens^G^@^@^@logfiles^K^@^@^@
clientStuffs ^@^@^@printtimes^G^@^@^@filelogs ^@^@^@thresholds
^@^@^@errorlevels ^@^@^@assumeyess^E^@^@^@cache^@^@^@tolerants
^@^@^@ValueError(^M^@^@^@s^D^@^@^@args^@^@^@errorlogs^K^@^@^@yumconffiles^E^@^@^@
goptss^D^@^@^@cmdss^A^@^@^@es^A^@^@^@os^A^@^@^@as
^@^@^@sleeptimes^D^@^@^@c
onfs^C^@^@^@logs^G^@^@^@logfiles^G^@^@^@filelogs
^@^@^@yummain.pys^L^@^@^@parseCmdArgs^_^@sb^@^@^@^C^CESC^C
^A^Y^A^M^B^F^A%^A
^V^A^T^A^O^B^F^A^L^@^O^A^P^A^\^B^X^B^L^@^O^A^P^A^Q^A
...

Kann mit diesen Angaben irgendjemand etwa anfangen?
Was kann ich tun, damit es wieder geht?
Danke für Tipps.

Ansgar

Mails an die angegebene Adresse erreichen mich - oder auch nicht.
Nützliche Adresse gibt's bei Bedarf!
Mail to the given address may or may not reach me - useful address will be
given when required!
 

Lesen sie die antworten

#1 Sven Hartge
26/08/2008 - 09:52 | Warnen spam
Ansgar Strickerschmidt wrote:

bràuchte mal eine Schritt-für-Schritt-Anleitung.
Bei einem Server mit einem ollen RedHat wollte ich routinemàßig mal wieder
yum anwerfen.
Jetzt spuckt er das hier aus:

# yum
Traceback (most recent call last):
File "/usr/bin/yum", line 22, in ?
import yummain
ImportError: Bad magic number in /usr/share/yum/yummain.pyc
#



*.pyc sind kompilierte Python-Files, die kann man unbedenklich löschen,
Python erzeugt die dann beim nàchsten Lauf neu.



Sven Hartge -- professioneller Unix-Geek
Meine Gedanken im Netz: http://www.svenhartge.de/

Ähnliche fragen