• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] brauche Hilfe mit smart...

miami_

Newbie
Hallo,

seit gestern kriege ich mit smart beim Versuch ein Paket zu (de-)installieren folgenden Fehler:

Code:
Traceback (most recent call last):

  File "/usr/lib/python2.4/site-packages/smart/interfaces/gtk/interactive.py", line 338, in <lambda>
    lambda x, y: self._pi.setPackage(y))

  File "/usr/lib/python2.4/site-packages/smart/interfaces/gtk/packageinfo.py", line 204, in setPackage
    installedsize = info.getInstalledSize()

  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 87, in getInstalledSize
    return self._h[rpm.RPMTAG_SIZE]

  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 58, in __get__
    obj._h = obj._loader.getHeader(obj._package)

  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 580, in getHeader
    mi = getTS().dbMatch(0, pkg.loaders[self])

TypeError: argument 2 must be string or None, not int

'smart --gui' & 'smart update' werden ohne Fehler ausgeführt. Der Fehler tritt nur dann auf wenn ich versuch ein Paket zu installieren bzw. deinstallieren. :?

Hab mir schon (fast) alle relevanten Theards hier im Forum angeschaut und die dort beschriebenen Lösungen (bzw. workarounds) ausprobiert. Es hat leider nichts gebracht.
Hab bis jetzt schon folgendes versucht:
1. smart channel --remove-all
2. rm -f /var/lib/smart/cache; rm -f /var/lib/smart/channels/*; rm -f /var/lib/smart/config

- danach kommt der o.g. Fehler wieder!

Bin für jeden Vorschlag & Idee sehr dankbar.

MfG
miami_
(suse-93 mit kde_3.5.4_r88.1)
 

Lurchi

Hacker
miami_ schrieb:
Hab bis jetzt schon folgendes versucht:
1. smart channel --remove-all
2. rm -f /var/lib/smart/cache; rm -f /var/lib/smart/channels/*; rm -f /var/lib/smart/config

Hi!
Hast Du danach auch mal smart update ausgeführt? Soll Wunder bewirken! Warum hast Du eigentlich die config gelöscht??
Soweit ich informiert bin, reicht "rm -f /var/lib/smart/cache; rm -f /var/lib/smart/channels/*"
und danach ein smart update aus.
 
OP
M

miami_

Newbie
Lurchi schrieb:
Hi!
Hast Du danach auch mal smart update ausgeführt? Soll Wunder bewirken! Warum hast Du eigentlich die config gelöscht??
Soweit ich informiert bin, reicht "rm -f /var/lib/smart/cache; rm -f /var/lib/smart/channels/*"
und danach ein smart update aus.

Hi Lurchi,

danke erstmal für Deine Antwort.
Also bis jetzt habe ich folgendes ausprobiert und noch keine Lösung gefunden:

1. rm -f /var/lib/smart/cache; rm -f /var/lib/smart/channels/*"
- danach gleich ein "smart update" und nach "smart upgrade"-> o.g. Fehler
2. rpm --rebuilddb
3. smart channel --remove-all (ex. rpm-sys)
4. smart & python-elementtre neu-installiert!

Mittlerweile weiß ich dass der Fehler irgendwie mit dem smart "sys-rpm channel" in Verbindung steht. Wenn ich diesen Channel deaktiviere, kommt der Fehler nicht mehr, dafür sind die Paket-Abhängigkeiten nicht mehr zu lösen :'(
Verzweiflung kommt immer näher :)!

Hier noch mal meine installierte Pakete (for suse93)

  • rpm -qa |grep python
    ------------------------------------
    python-xml-2.4-14
    python-qt-3.5.4-2.20
    python-elementtree-1.2.6-1.4
    libxml2-python-2.6.26-2.2
    python-gnome-2.12.3-12
    python-gtk-2.8.2-5
    kdebindings3-python-3.5.4-2.20
    python-tk-2.4-14
    python-devel-2.4-14
    python-numeric-23.7-3
    python-orbit-2.0.1-19
    python-pygame-1.6.2-4
    python-imaging-1.1.4-297
    python-2.4-14
    koffice-python-1.5.2-6.1
    rpm-python-4.1.1-208

    rpm-qa | grep smart
    ------------------------------
    smart-0.42-1.25
    smart-ksmarttray-0.42-1.25
    smart-gui-0.42-1.25

Und der Fehler (console)

Code:
Traceback (most recent call last):
  File "/usr/bin/smart", line 194, in ?
    main(sys.argv[1:])
  File "/usr/bin/smart", line 167, in main
    exitcode = iface.run(opts.command, opts.argv)
  File "/usr/lib/python2.4/site-packages/smart/interface.py", line 53, in run
    result = _command.main(self._ctrl, opts)
  File "/usr/lib/python2.4/site-packages/smart/commands/upgrade.py", line 180, in main
    ctrl.commitTransactionStepped(trans, confirm=confirm)
  File "/usr/lib/python2.4/site-packages/smart/control.py", line 552, in commitTransactionStepped
    caching, confirm)
  File "/usr/lib/python2.4/site-packages/smart/control.py", line 556, in commitChangeSetStepped
    if confirm and not iface.confirmChangeSet(changeset):
  File "/usr/lib/python2.4/site-packages/smart/interfaces/text/interface.py", line 107, in confirmChangeSet
    return self.showChangeSet(changeset, confirm=True)
  File "/usr/lib/python2.4/site-packages/smart/interfaces/text/interface.py", line 223, in showChangeSet
    size = report.getInstallSize() - report.getRemoveSize()
  File "/usr/lib/python2.4/site-packages/smart/report.py", line 200, in getRemoveSize
    size = info.getInstalledSize()
  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 87, in getInstalledSize
    return self._h[rpm.RPMTAG_SIZE]
  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 58, in __get__
    obj._h = obj._loader.getHeader(obj._package)
  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 580, in getHeader
    mi = getTS().dbMatch(0, pkg.loaders[self])
TypeError: argument 2 must be string or None, not int

Bitte dringend um Hilfe! Bedanke mich hier im Voraus.

miami_
 

Lurchi

Hacker
Hi!
Es ist zwar nicht die eleganteste Methode.
Deinstallier respektive installier smart und smart-gui nochmal und spiel die channels neu ein. Und aktualisiere smart und python auf die aktuellste Version.
Danach mach mal ein smart update; smart upgrade. Ein Versuch wär's wert!
 
OP
M

miami_

Newbie
Lurchi schrieb:
...
Deinstallier respektive installier smart und smart-gui nochmal und spiel die channels neu ein. Und aktualisiere smart und python auf die aktuellste Version.
Danach mach mal ein smart update; smart upgrade. Ein Versuch wär's wert!

Das hat leider auch nichts gebracht. danke trotzdem.

Hier die Ausgabe von 'smart upgrade'

Code:
bimbo:/var/lib/smart # smart upgrade
Lade Zwischenspeicher...
Update Zwischenspeicher...                        #################################################################### [100%]

Berechne Vorgang ...

Erneuere Pakete (137):
  MozillaFirefox                 kdebase3-nsplugin              kdemultimedia3-midi            koffice-devel
  MozillaFirefox-translations    kdebase3-samba                 kdemultimedia3-mixer           koffice-extra
  aqbanking                      kdebase3-session               kdemultimedia3-sound           koffice-i18n-de
  aqbanking-kde3                 kdebindings3                   kdemultimedia3-video           koffice-illustration
  aqbanking-qt3                  kdebindings3-java              kdemultimedia3-video-xine      koffice-planning
  arts                           kdebindings3-javascript        kdenetwork3                    koffice-presentation
  arts-devel                     kdebindings3-perl              kdenetwork3-IRC                koffice-python
  cups                           kdebindings3-python            kdenetwork3-InstantMessenger   koffice-spreadsheet
  de_willuhn_ds                  kdebindings3-ruby              kdenetwork3-dialup             koffice-wordprocessing
  de_willuhn_util                kdeedu3                        kdenetwork3-lan                kommander-runtime
  ffmpeg                         kdegames3                      kdenetwork3-lisa               konversation
  foomatic-filters               kdegames3-arcade               kdenetwork3-news               ktorrent
  ghostscript-library            kdegames3-board                kdenetwork3-query              libakode
  hbci_passport_pintan           kdegames3-card                 kdenetwork3-vnc                libdvdread
  hibiscus                       kdegames3-tactic               kdenetwork3-wireless           libdvdread-devel
  hibiscus-BIRT-ChartEngine-rt   kdegraphics3                   kdepim3                        libffmpeg0
  hibiscus-manual                kdegraphics3-3D                kdepim3-devel                  libffmpeg0-devel
  jameica                        kdegraphics3-devel             kdepim3-kpilot                 libmusicbrainz
  jameica-swt3-gtk               kdegraphics3-extra             kdepim3-mobile                 libmusicbrainz-devel
  kde3-i18n-de                   kdegraphics3-fax               kdepim3-networkstatus          libxine1
  kdeaddons3-kate                kdegraphics3-imaging           kdepim3-sync                   libxine1-aa
  kdeaddons3-kicker              kdegraphics3-kamera            kdepim3-time-management        libxine1-arts
  kdeaddons3-konqueror           kdegraphics3-pdf               kdesdk3                        libxine1-devel
  kdeaddons3-kontact             kdegraphics3-postscript        kdesdk3-devel                  live
  kdeaddons3-sound               kdegraphics3-scan              kdetoys3                       mckoi
  kdeadmin3                      kdegraphics3-tex               kdeutils3                      obantoo
  kdeartwork3                    kdelibs3                       kdeutils3-devel                python-qt
  kdeartwork3-kscreensaver       kdelibs3-devel                 kdeutils3-laptop               swtcalendar
  kdeartwork3-sound              kdelibs3-devel-doc             kdevelop3                      syntax
  kdeartwork3-xscreensaver       kdelibs3-doc                   kdewebdev3                     xine-ui
  kdebase3                       kdemultimedia3                 kernel-default                 xine-ui-aa
  kdebase3-devel                 kdemultimedia3-CD              kernel-default-nongpl          xmms-lib
  kdebase3-extra                 kdemultimedia3-devel           kernel-docs
  kdebase3-kdm                   kdemultimedia3-extra           kernel-source
  kdebase3-ksysguardd            kdemultimedia3-jukebox         koffice

Stufe Pakete zurück (1):
  xmms-lib

Installing packages (1):
  koffice-database

Traceback (most recent call last):
  File "/usr/bin/smart", line 194, in ?
    main(sys.argv[1:])
  File "/usr/bin/smart", line 167, in main
    exitcode = iface.run(opts.command, opts.argv)
  File "/usr/lib/python2.4/site-packages/smart/interface.py", line 53, in run
    result = _command.main(self._ctrl, opts)
  File "/usr/lib/python2.4/site-packages/smart/commands/upgrade.py", line 182, in main
    ctrl.commitTransaction(trans, confirm=confirm)
  File "/usr/lib/python2.4/site-packages/smart/control.py", line 464, in commitTransaction
    return self.commitChangeSet(trans.getChangeSet(), caching, confirm)
  File "/usr/lib/python2.4/site-packages/smart/control.py", line 467, in commitChangeSet
    if confirm and not iface.confirmChangeSet(changeset):
  File "/usr/lib/python2.4/site-packages/smart/interfaces/text/interface.py", line 107, in confirmChangeSet
    return self.showChangeSet(changeset, confirm=True)
  File "/usr/lib/python2.4/site-packages/smart/interfaces/text/interface.py", line 223, in showChangeSet
    size = report.getInstallSize() - report.getRemoveSize()
  File "/usr/lib/python2.4/site-packages/smart/report.py", line 200, in getRemoveSize
    size = info.getInstalledSize()
  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 87, in getInstalledSize
    return self._h[rpm.RPMTAG_SIZE]
  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 58, in __get__
    obj._h = obj._loader.getHeader(obj._package)
  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 580, in getHeader
    mi = getTS().dbMatch(0, pkg.loaders[self])
TypeError: argument 2 must be string or None, not int
bimbo:/var/lib/smart #

Den Tracenack Fehler ist immer dabei, wenn der rpm-sys channel aktiv ist. Ohne den geht aber leider gar nichts, da sonst keine Abhängigkeiten vorhanden(wird auch automatisch wieder hergestellt). Also ein Teufelskreis...

Ach, gerade jetzt wo das neue KDE raus ist muss der smart rumzicken. Muss wohl die Pakete alle von Hand installieren :x

Könnte mir sonst jemand noch einen Tipp geben oder muss ich mich geschalgen geben...?
 
OP
M

miami_

Newbie
Grothesk schrieb:

Würde ich gerne mache, wenn du mir verräts wo sich die KDE repositories für APT befinden. War früher mit apt ziemlich zufrieden, aber dann war auf einmal Schluß mit KDE auf ftp.gwdg und ich musste auf smart umsteigen.

Na mal sehen, vielleicht wird sich das ganz von allein lösen, was ich nicht glaube. hab im Moment leider nicht viel Zeit rumzuspielen.

Danke trotzdem für den Tipp! :)
 
OP
M

miami_

Newbie
traffic schrieb:
@miami_: Irgendetwas stimmt mit Deiner RPM-Datenbank nicht.

Muss aber was schlimmes sein, wenn es "rpm --rebuilddb" nicht korrigiert. :cry:

Und was macht man in diesem Fall dann? :?:

Danke für die Erleuchtung, eigentlich hatte ich immer schon die Vermutung, dass der arme smart unschuldig ist :)
 

Grothesk

Ultimate Guru
Sorry, hab heute meinen läpschen Abend. Die Antwort war auch eigentlich nicht Ernst gemeint. Hätte ich mir verkneifen sollen.

rpm --rebuilddb ist ja schon erfolgt.

Was passiert denn, wenn versucht wird, von Hand ein Paket zu installieren?

So ganz am Rande fand ich die Fehlermeldungen von apt immer etwas besser als das kryptische python-Zeug, das einem smart immer vor die Füße wirft.
 
miami_, wie lautet auf Deinem System die Ausgabe von:
Code:
rpmlocate rpmhelper.so
find /usr/lib/python2.4/site-packages -name 'rpmhelper.so'
Ich hab da so einen Verdacht...
 
OP
M

miami_

Newbie
Grothesk schrieb:
Sorry, hab heute meinen läpschen Abend. Die Antwort war auch eigentlich nicht Ernst gemeint. Hätte ich mir verkneifen sollen.

rpm --rebuilddb ist ja schon erfolgt.

Was passiert denn, wenn versucht wird, von Hand ein Paket zu installieren?

Das "rpm -Uvh " / "rpm -e" Kommando funktioniert wie gewohnt. Überhaupt keine Fehler oder Einschränkungen. :shock:
 
OP
M

miami_

Newbie
traffic schrieb:
miami_, wie lautet auf Deinem System die Ausgabe von:
Code:
rpmlocate rpmhelper.so
find /usr/lib/python2.4/site-packages -name 'rpmhelper.so'
Ich hab da so einen Verdacht...

Code:
bimbo:/var/lib/smart # rpmlocate rpmhelper.so
Searching for rpmhelper.so in rpm db...
bimbo:/var/lib/smart # find /usr/lib/python2.4/site-packages -name 'rpmhelper.so'
bimbo:/var/lib/smart #

Findet wohl gar nichts... Ist das schlimm? :S
 
Nicht unbedingt.

rpmhelper.so ist ein Workaround für einen Bug in RPM, der nur 64-Bit-Systeme betrifft. Auf 32-Bit-Systemen sollte man das Ding nicht brauchen. Ich hätte vermutet, dass es genau umgekehrt ist, d.h. dass Du es hast, obwohl Du es nicht haben solltest, und dann empfohlen, es zu löschen.

Also der umgekehrte Weg - installier das Ding mal:
Code:
rpm -Uvh http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/9.3/RPMS/i686/smart-0.42-14.guru.suse93.i686.rpm
http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/9.3/RPMS/i686/smart-gui-0.42-14.guru.suse93.i686.rpm
http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/9.3/RPMS/i686/smart-ksmarttray-0.42-14.guru.suse93.i686.rpm
(alles eine Zeile!)

Irgendwelche Änderungen?
 
OP
M

miami_

Newbie
traffic schrieb:
...
Also der umgekehrte Weg - installier das Ding mal:
Code:
rpm -Uvh http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/9.3/RPMS/i686/smart-0.42-14.guru.suse93.i686.rpm
http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/9.3/RPMS/i686/smart-gui-0.42-14.guru.suse93.i686.rpm
http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/9.3/RPMS/i686/smart-ksmarttray-0.42-14.guru.suse93.i686.rpm
(alles eine Zeile!)

Irgendwelche Änderungen?

Jup, die Welt ist wieder in Ordnung :roll:

Was war eigentlich mit meiner smart Version los (0.42-1.25@i586)? Ich dachte die wäre direkt von den smart Entwicklern
Code:
bimbo:/home/bimbo # smart channel --show smart
[smart]
type = rpm-md
name = smart
baseurl = ftp://ftp.gwdg.de/pub/opensuse/repositories/smart/SUSE_Linux_9.3/

Ach..., Hauptsache es geht nun wieder. Bin gerade am Upgraden 8)

Ich danke Dir traffic für die schnelle und Kompetente Hilfe.

Und jetzt kann ich das endlich als "solved" deklarieren und Euch allen wünsche ich einen erfolgreichen Freitag (der 13-te) :twisted:

miami_
 
Nein, die Version ist nicht direkt von den smart-Entwicklern. Die smart-Entwickler bieten selbst gar keine RPMs an.

Aber die smart-Entwickler kennen ihre eigene Software offenbar nicht so genau, denn in der README-Datei steht:
If you have RPM >= 4.4.1-0.18, or is not on x86_64, DO NOT USE IT,
because this is a hotfix, is ugly, and will die soon.
http://svn.labix.org/smart/trunk/contrib/rpmhelper/README

Da steht also drin, dass man das Teil nur braucht, wenn man eine alte RPM-Version und ein x86_64-Bit-System hat, aber offenbar stimmt das nicht - bei Dir funktioniert dbMatch() nicht, obwohl Dein System nicht x86_64 ist.

Vielleicht sollte das besser dokumentiert werden. Aber mit dem Paket, in dem der Workaround drin ist, sollte es keine weiteren Probleme geben.

Edit: Ich versteh's auch nicht... Der Bug sagt ganz klar, dass das Problem nur 64-Bit-Systeme betrifft:

http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=146477

Vielleicht ist es auch einfach Zufall, dass der Workaround das Problem löst und die Ursache ist in Wirklichkeit eine ganz andere...
 

wmbolle

Newbie
Vielen Dank, ich hatte bei mir das selbe Problem und die Pakete von suse-guru haben's gebracht. Was machen die Jungs eigentlich anders als die Jungs von Novell?
 
Den Thread hier hast Du aber gelesen, oder?

Es steht alles im Thread.

Ich habe den Packager von Novell (das sind übrigens keine Jungs, sondern genau einer bei SUSE in Nürnberg, der für smart zuständig ist) informiert. Aber manchmal dauert es halt einfach eine Weile, bis das Paket auch wirklich auftaucht. Erschwerend hinzu kommt, dass er zur Zeit als Mentor des Google Summer of Code auf Konferenz in den USA ist => Pech gehabt.
 

wmbolle

Newbie
Im Thread war nur die Rede von den Smart-Entwicklern und dem Bug für 64-Bit-Systeme, der sich eigentlich nicht hätte auf 32-Bit-Systeme auswirken sollen, es aber doch tut usw. Mir geht es schon um die Packager. Die Abwesenheit des Novell-Menschen erklärt die Lage aber für mich jetzt ausreichend. Ist dann eben dumm gelaufen.

Betrifft das Thema eigenlich auch SuSE 10.x?
 
wmbolle schrieb:
Betrifft das Thema eigenlich auch SuSE 10.x?
:roll:

Auch das steht alles schon im Thread.

"SuSE 10.x" gibt es nicht. Und das Problem ist nicht von der SUSE-Version, sondern von der RPM-Version abhängig:

rpm-4.1.1 ist uralt und buggy und braucht das rpmhelper-Modul. Laut smart-Entwicklern nur auf x86_64, in Wirklichkeit aber auch auf i586.

rpm-4.4.2 braucht das rpmhelper-Modul nicht, weder auf x86_64 noch auf i586.

SUSE 9.3 und SUSE 10.0 haben rpm-4.1.1, SUSE 10.1 und openSUSE 10.2 haben rpm-4.4.2. Damit dürfte es dann wirklich geklärt sein.
 
Oben