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

[gelöst] Sauberes System

Hallo,

ich habe mir scheinbar das System "kaputtaktualisiert". Nachdem ich regelmäßig mit smart aktualisiert haben und gelegentlich mal einen Channel, der mir doch zu experimentell war, rausgenommen habe, kann ich das, was ich doch aktualisieren möchte wegen ungelöster Abhängigkeiten usf. nicht mehr ausführen. So geschehen beim letzten (ofiziellen) amarok update.

Die Frage ist eine prinzipielle (auch wenn ich keine Scheu hätte Euch seitenweise mit Fehlermeldungen zuzudecken):

Kann ich, mit der Auswahl bestimmter Channels (base, guru, packman etc.) mit smart mein System -z.B. per "upgrade"- "säubern", oder schlägt sowas fehl? Ich möchte im Grunde eine komplette Neuinstallation vermeiden... aber wenn der AUfwand nicht lohnt...

Aktuell habe ich ein (sonst) stabiles und aktuelles SuSE 10.0 und das aktuelle smart laufen.

Gruß,

L.
 
Hallo,
Du kannst Dein System nicht so ohne weiteres mit einer abgespeckten Channel- Liste "sauberupdaten". Das wäre ein Prozess für die Ewigkeit. Denn smart sucht ja nur, ob NEUERE Pakete vorhanden sind.

Prinzipiell empfiehlt es sich sicherlich, eine vernünftige Channelliste zu haben, die allerdings auch nicht, wie mir grade passiert, vor fehlgeschlagenen Kernel- Updates usw schützt.

Ich würde Dir empfehlen, erstmal Deinen Paketbestand aufzuräumen und Dein System von Ballast zu befreien, der so mitgeschleppt wird. Oder bist Du Dir sicher, dass Du alle Pakete brauchst, die Du installiert hast?

Danach kannst Du dann anfangen, Stück für Stück die Pakete mittels Smart neu zu installieren: Wenn Du eine abgespeckte Channelliste hast, kannst Du Stück für Stück einzelne Pakete neu installieren lassen. Hast Du jetzt beispielsweise ein Paket aus dem jenglth- Repo, diesen Channel aber gestrichen, wird Smart das aktuellste gefundene aus einem anderen Channel installieren.

Ich glaube, eine Neuinstallation und danach ein Update mit einer guten Channel- Liste ist einfacher, schneller, sinnvoller. Aber warte mal ab, was die Cracks hier noch sagen.
 
Naja, so ohne Meldungen und der jetzigen Channelliste kann man dazu kaum was sagen.
Poste die doch mal nach phpfi.com
 
das wollte ich zwar vermeiden, aber sei's drum:

Code:
Traceback (most recent call last):

  File "/usr/lib/python2.4/site-packages/smart/interfaces/gtk/interactive.py", line 171, in callback
    exec code in globals

  File "<callback>", line 1, in ?

  File "/usr/lib/python2.4/site-packages/smart/interfaces/gtk/interactive.py", line 415, in applyChanges
    if self._ctrl.commitTransaction(transaction, 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 518, in commitChangeSet
    pmclass().commit(pmcs, pkgpaths)

  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/pm.py", line 270, in commit
    probs = ts.run(cb, None)

  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/pm.py", line 338, in __call__
    self._process_rpmout()

  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/pm.py", line 323, in _process_rpmout
    output = self.rpmout.read()

  File "/usr/lib/python2.4/codecs.py", line 277, in read
    newchars, decodedbytes = self.decode(data, self.errors)

UnicodeDecodeError: 'utf8' codec can't decode bytes in position 109422-109423: invalid data

Channel...

Code:
[suse-extra]
type = yast2
name = SUSE Linux extra proprietary packages
baseurl = http://ftp.belnet.be/mirrors/ftp.suse.com/suse/i386/10.0/inst-source-extra

[suse]
type = yast2
name = SUSE 10.0 OpenSource Repository
baseurl = http://download.opensuse.org/distribution/SL-10.0-OSS/inst-source/

[suse-100-apt-security]
type = apt-rpm
name = SUSE Linux 10.0 APT Security Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = security

[suse-kde-backports]
type = rpm-md
name = Current KDE applications
baseurl = http://software.opensuse.org/download/KDE:/Backports/SUSE_Linux_10.0

[suse-100-apt-kde]
type = apt-rpm
name = SUSE Linux 10.0 APT kde Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = kde

[suse-100-apt-wine]
type = apt-rpm
name = SUSE Linux 10.0 APT wine Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = wine

[suse-100-apt-samba3]
type = apt-rpm
name = SUSE Linux 10.0 APT Samba3 Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = samba3

[rpm-sys]
type = rpm-sys
name = RPM System

[suse-100-yum-base]
type = rpm-md
name = SUSE Linux 10.0 YUM Base Repository
baseurl = ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse

[guru]
type = yast2
name = Guru 3rd party package repository
baseurl = http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.0

[suse-100-apt-gnome]
type = apt-rpm
name = SUSE Linux 10.0 APT Gnome Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = gnome

[guru-100-apt]
type = apt-rpm
name = Guru 10.0 APT Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = suser-guru

[suse-100-apt-update]
type = apt-rpm
name = SUSE Linux 10.0 APT Update Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = update

[suse-100-apt-mozilla]
type = apt-rpm
name = SUSE Linux 10.0 APT Mozilla Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = mozilla

[packman-100-yum]
type = rpm-md
name = Packman 10.0 YUM Repository
disabled = yes
baseurl = http://packman.iu-bremen.de/suse/10.0/

[packman-100-apt]
type = apt-rpm
name = Packman 10.0 APT Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = packman

[suse-100-apt-java]
type = apt-rpm
name = SUSE Linux 10.0 APT Java Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = java

[suse-100-apt-openoffice]
type = apt-rpm
name = SUSE Linux 10.0 APT OpenOffice.org Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = openoffice

[suse-kde]
type = rpm-md
name = Latest KDE packages
disabled = yes
baseurl = http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.0

[suse-100-apt-extra]
type = apt-rpm
name = SUSE Linux 10.0 APT Extra Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = extra

[suse-100-apt-kde3-stable]
type = apt-rpm
name = SUSE Linux 10.0 APT KDE3-stable Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = kde3-stable

[suse-100-apt-base]
type = apt-rpm
name = SUSE Linux 10.0 APT Base Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = base

[suse10.1-buildservice-kde_yum]
type = rpm-md
name = Suse Linux 10.0 BuildService - KDE (YUM)
disabled = yes
baseurl = http://software.opensuse.org/download/KDE:/KDE3/SUSE_Linux_10.0/

[suse-wine]
type = rpm-md
name = Latest wine packages
baseurl = http://software.opensuse.org/download/Emulators:/Wine/SUSE_Linux_10.0/

[suse-java]
type = yast2
name = SUSE 10.0 Java Repository
baseurl = http://download.opensuse.org/distribution/SL-10.0-OSS/inst-source-java

[suse-100-yum-extra]
type = rpm-md
name = SUSE Linux 10.0 YUM Extra Repository
baseurl = ftp://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/i386/10.0/SUSE-Linux10.0-GM-Extra/suse

[suse-100-apt-suse-projects]
type = apt-rpm
name = SUSE Linux 10.0 APT Suse Projects Repository
disabled = yes
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = suse-projects

[suse10.1-buildservice-kde backports_yum]
type = rpm-md
name = Suse Linux 10.0 BuildService - KDE Backports (YUM)
disabled = yes
baseurl = http://software.opensuse.org/download/repositories/KDE:/Backports/SUSE_Linux_10.0/

[packman]
type = yast2
name = Packman 3rd Party Package Repository
disabled = yes
baseurl = http://packman.inode.at/suse/10.0

[suse-100-apt-usr-local-bin]
type = apt-rpm
name = SUSE Linux 10.0 APT usr-local-bin Repository
disabled = yes
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = usr-local-bin

[suse-update]
type = rpm-md
name = SUSE Linux Online Updates
baseurl = ftp://ftp.suse.com/pub/suse/update/10.0/

[packman-i686-100-apt]
type = apt-rpm
name = Packman-i686 10.0 APT Repository
baseurl = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
components = packman-i686

[suse-100-yum-java]
type = rpm-md
name = SUSE Linux 10.0 YUM Java Repository
baseurl = ftp://ftp.gwdg.de/pub/opensuse/distribution/SL-10.0-OSS/inst-source-java/suse

... also Grothesk, her mit der Schelte und sag mir was doppelt ist, raus kann usf. :?
 
Um die ursprünglich gestellte Frage zu beantworten:

Was Du suchst, ist dieses "Orphans"-Feature, das andere Paketmanager haben. "Orphans" sind Pakete, die in keinem konfigurierten Channel existieren.

Du hattest quasi vor, die Channel-Auswahl abzuspecken und dann die Pakete rauszuwerfen, die in keinem der verbleibenden Channels vorhanden sind.

Nun, die Sache ist relativ einfach: smart kann das nicht. Andere Tools können es aber:

- apt
- yum-utils (genauer gesagt, das Tool "package-cleanup" aus dem Paket "yum-utils")

Ich nehme dafür immer package-cleanup. Man muss alle Channels, die man behalten will, in /etc/yum.repos.d konfigurieren (quasi so, als würde man yum benutzen wollen) und dann
Code:
package-cleanup --orphans
ausführen. Daraufhin werden alle Pakete angezeigt, die nicht in ganz genau dieser Versions- und Releasenummer in einem konfigurierten Channel existieren, also auch diejenigen, die aus einem rausgeworfenen Channel kamen.

Das wäre die allgemeine Vorgehensweise, allerdings liegt Dein Problem wahrscheinlich nicht an zu vielen Channels, sondern an einem simplen Bug: smart kommt mit diversen Strings in falschem Unicode nicht klar und zeigt dann gerne Tracebacks an.

Ich kann an Deiner smart-Ausgabe nicht erkennen, dass smart die Abhängigkeiten nicht mehr auflösen will, sondern nur, dass es mehr oder weniger abstürzt. => Kein Konfigurationsproblem, sondern ein Bug

Versuch mal die Holzhammermethode:
Code:
rm -f /var/lib/smart/cache
rm -f /var/lib/smart/channels/*
rm -f /var/lib/smart/packages/*
 
Oben