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

Apt upgrade: Woher stammen die zurückgehaltenen Pakete?

ojkastl

Hacker
Hallo allerseits,

habe gestern mein Suse 9.1 auf den neuesten Stand bringen wollen. Dabie hat es neben Problemen mit xpdf-config und sensors (die ich wohl noch lösen werde) auch folgende Frage aufgeworfen:

RobinLinux:~ # apt upgrade -s
Lese Paketlisten... Fertig
Erzeuge Abhängigkeitsbaum... Fertig
Die folgenden Pakete sind zurÃŒckgehalten worden
amarok bind-utils curl-devel dirmngr eel gal2 gedit gnome-icon-theme gnome-keyring gpgme gtkhtml2 k3b libgcrypt libgnomeprint
libgnomeprintui libgnomeui libgnomeui-doc libksba libxine1 libxine1-aa libxine1-devel libxine1-directfb libxine1-dxr3
libxine1-gnome-vfs libxine1-sdl libxine1-syncfb libxine1-xvmc perl-XML-LibXML sensors xpdf-config
0 upgraded, 0 newly installed, 0 entfernt und 30 nicht upgegradet.

Woher stammen die zurückgehaltenen Pakete? In der apt.conf (die bei mir unter /etc/apt/apt.conf.d/apt.conf liegt) steht nur der Kernel drin, sowie sensors und xpdf.

Für Hilfe wär ich dankbar, auch ein genaues RTFM wäre nicht schlecht.
Saber
 
OP
O

ojkastl

Hacker
Hallo allerseits,

danke für die Aufklärung. Komisch dass ich das beim Durchsehen der ganzen Themen nicht gesehen hab, und auch bei der Google-Recherche wohl die falschen Suchkriterien eingegeben habe...

Gibt es irgendwo ein verständliches HowTo, bzw. eine Dokumentation in der sowas z.B. drinsteht?

Ich will nicht doof sterben...
 

pawe

Member
Hier der Thread für APT-Doku http://www.linux-club.de/viewtopic.php?t=24110
Aber da werden nicht alle Fehlermeldungen behandelt.

Aber in dem Thread, den Admine schon erwähnt hat, bekommt man reichlich Fehlermeldungen und deren Lösungen.
http://www.linux-club.de/viewtopic.php?t=16315
Falls du eine neue Fehlermeldung haben solltest, einfach dazuschreiben und die Lösung anbieten (falls du die Lösung weißt).
 
OP
O

ojkastl

Hacker
Hallo,


wenn ich euch schon da hab...ähm:

Ich hab versucht das dann per apt install zu machen. Und bis auf

gaim gnutls gtkhtml2 libopencdk libsoup

ging auch alles gut. Die wurden deinstalliert, die hängen nämlich von einer libgcrypt.so.7 ab, die aber das rpm

libgcrypt_1.2.0-2.1_i586.rpm

bietet.

RobinLinux:~ # apt-cache search libgcrypt.so.7
libgcrypt - The GNU Crypto Library
RobinLinux:~ #

Und das ist schon installiert.


RobinLinux:/Daten4/fuer_apt/archives # rpm -Uvh libgcrypt_1.2.0-2.1_i586.rpm
Preparing... ########################################### [100%]
package libgcrypt-1.2.0-2.1 is already installed
RobinLinux:/Daten4/fuer_apt/archives # rpm -Uvh gnutls_1.0.8-26_i586.rpm libopencdk_0.5.3-34.1_i586.rpm libsoup_2.2.2-100.SuSE.ulb.1_i586.rpm
warning: libsoup_2.2.2-100.SuSE.ulb.1_i586.rpm: V3 DSA signature: NOKEY, key ID f071d27d
error: Failed dependencies:
libgcrypt.so.7 is needed by gnutls-1.0.8-26
libgcrypt.so.7 is needed by libopencdk-0.5.3-34.1
libgcrypt.so.7 is needed by libsoup-2.2.2-100.SuSE.ulb.1
RobinLinux:/Daten4/fuer_apt/archives #

Hab jetzt mal an den Maintainer geschrieben, vielleicht weiss der was. Oder bin ich zu doof?

Saber
 

pawe

Member
bist du sicher, dass es die 1.2.0 sein muss? Hab die Version 1.1.91 und sie enthält die Datei libgcrypt.so.7
Warum ist das so wichtig: Die Version 1.2.0 kannst du zur Zeit nur bei suse-people erhalten.
oc2pus schrieb:
suse-people
Sammelsurium :wink: bleeding-edge Pakete :wink:
probier mal die libgcrypt 1.1.91 aus base zu installieren und dann die fehlenden Pakete erneut upzugraden (denglisch :lol: )

P.S. Ich würd mir dann gleich die sources.list anschauen, ob sie suse-people enthält. (falls es absicht ist => OK)
 

pawe

Member
hab grad nachgeschaut: Die libgcrypt 1.2.0-2.1 enthält die Datei libgcrypt.so.11
Also brauchst du deffinitiv die Version 1.1.91-39 denn die enthält die Datei libgcrypt.so.7
Wie gesagt: aus dem base-Repository

Gruß Pawe
 
OP
O

ojkastl

Hacker
Hallo,

also: Nach dem Einspielen der Version mit

apt install libgcrypt=1.1.91-39

geht es. Dann installiert er mir gaim, gnutls...

Warum zeigt mir apt das Paket bei der Suche nach der .so.7 an? Wieso upgradet (aargh, furchtbares Wort) apt es automatisch und schmeisst die anderen Pakete raus?

Bei der manuellen Installation der 1.1... wurden übrigens drei Pakete entfernt, wenn ich die wieder einspielen will möchte der die libgcrypt wieder updaten, und gaim etc. rausschmeissen...

RobinLinux:/Daten4/fuer_apt/archives # apt install libgcrypt=1.1.91-39
Lese Paketlisten... Fertig
Erzeuge Abhängigkeitsbaum... Fertig
Die folgenden Pakete werden ENTFERNT:
dirmngr gpg2 gpgme
Die folgenden Pakete werden DOWNGRADED:
libgcrypt
0 upgraded, 0 newly installed, 1 downgegradet, 3 entfernt und 3 nicht upgegradet.

RobinLinux:/Daten4/fuer_apt/archives # apt install dirmngr gpg2 gpgme
Lese Paketlisten... Fertig
Erzeuge Abhängigkeitsbaum... Fertig
Die folgenden zusätzlichen Pakete werden installiert werden:
libgcrypt
Die folgenden Pakete werden upgegradet werden:
libgcrypt
Die folgenden Pakete werden ENTFERNT:
gaim gnutls gtkhtml2 libopencdk libsoup
Die folgenden NEUEN Pakete werden installiert werden:
dirmngr gpg2 gpgme
1 upgraded, 3 newly installed, 5 entfernt und 3 nicht upgegradet.

Danke,
Saber
 

admine

Ultimate Guru
Evt. hilft dir das weiter:

[HOWTO] RPMs festnageln, unerwünschtes Update verhindern
http://www.linux-club.de/viewtopic.php?t=14567
 
OP
O

ojkastl

Hacker
Hallo,

danke dass kannte ich schon, aber danke für den Tipp.

Leider umgehe ich damit doch das Problem, anstatt es zu lösen, oder? Weil wenn kein Problem da wäre, würde mir apt ja die neueste Version von libgcrypt nur empfehlen, wenn ich sie auch gebrauchen kann.

Saber
 

bernd

Member
Hallo
Darf ich hier mal zwischenfragen ???? ganz allgemein.

Sollte suse-people NICHT in der sources.list stehen ???

Bernd
 

pawe

Member
@Saber_Rider: Du hast wirklich ein Problem: einige Pakete brauchen libgcypt 1.1.91 und manche 1.2.0
Ich hab grad nachgeschaut: Die Pakete, die die Version 1.2.0 (sprich libgcrypt.so.11) brauchen hast du auch von suse-people installiert. Die setzen dann auch ihre neusten Pakete vorraus.
Jetzt kannst du ein weinig rumpfuschen, aber zuerst überleg es dir gut, ob du die neuen Pakete von suse-people brauchst. Dann kannst du folgende Punkt durchführen (keine Gewähr):
1. du könntest einen Symlink erstellen mit namen libgcrypt.so.7 der auf die libgcrypt.so.11 verweist. Dann wird im grunde den anderen Programmen vorgegaukelt die so.7 wäre da, aber die so.11 würde verwendet werden. Das klappt manchmal :wink:

2.oder du istallierst die libgcrypt 1.1.91. Dieses Paket besteht aus den zwei Dateien: libgcrypt-pthread.so.7 und libgcrypt.so.7. Diese kopierst du raus (z.B. in dein home-Verzeichnis). Dann installierst du die neue libgcrypt 1.2.0 => die alten Dateien werden entfernt. Jetzt kopierst du die zwei so.7 Dateien zurück. Dann hast du die Bibliothek in zwei Versionen nebeneinander laufen. So könnte es auch klappen.

Die zweite Methode ist mir irgendwie sympatischer. Falls du es brauchst kannst es ja ausprobieren.

Gruß Pawe
 

pawe

Member
Saber_Rider schrieb:
Warum zeigt mir apt das Paket bei der Suche nach der .so.7 an? Wieso upgradet (aargh, furchtbares Wort) apt es automatisch und schmeisst die anderen Pakete raus?

Bei der manuellen Installation der 1.1... wurden übrigens drei Pakete entfernt, wenn ich die wieder einspielen will möchte der die libgcrypt wieder updaten, und gaim etc. rausschmeissen...

Wieso es dir bei der Suche nach so.7 die libgcrypt anzeigt, weiß ich nicht, aber das mit dem upgrade, kann man erklären

Diese Situation ist nicht einfach, aber ich versuche es...

Die Situation
Alle Pakete, die die libgcrypt brauchen, hast du von suse-people installiert: z.B. gaim gnutls gtkhtml2 libopencdk und andere Kandidaten. Sie verursachen noch keine Paket-Konflikte => Deshalb kann APT die libgcrypt auch problemlos auf 1.2.0 upgraden / muss sogar, da suse-people-Pakete es vorraussetzen!
Soweit aber noch keine Probleme! Ein Problem hast du dann erst, wenn du ein aktuelleres Paket aus einem anderen Repository installieren willst: in deinem Beispiel ist es gaim (bei suse-people 0.77 bei suser-guru 1.3)
Bei dir passierte folgendes:
nach dem apt-get upgrade würde apt gaim upgraden. ABER: Die neuere Version von gaim hat als Abhängigkeit eine ältere Version von libgcrypt, nämlich die Datei libgcrypt.so.7 (suser-guru arbeitet wahrscheinlich mit der älteren Version von libgcrypt)
Deshalb hat apt dir geschrieben, dass dieses Paket zurückgehalten wurde! Willst du es manuell installieren, schreibt apt, dass das neuere Paket die Datei libgcrypt.so.7 braucht.
installierst du die libgcrypt.so.7 manuell, kommt apt in einen Konflikt: Die suse-people-Pakete brauchen die libgcrypt 1.2.0 und Paketer anderer Repositorys die ältere 1.1.91. Da du aber ausdrücklich darum gebeten hast die ältere Version zu installieren, schmeißt apt dir die suse-people-Pakete raus! installierst du wieder die neue, schmeißt apt die nicht-suse-people-Pakete raus.

d.h. durch die Installation von libgcrypt bist du an die Pakete von suse-people gebunden!!! Einige sind die neusten, aber einige (z.B. gaim) sind älter.

Wie gesagt, entscheide, ob du die suse-people-Pakete brauchst, oder ob du sie ersetzt.
 
@pawe: Wenn man wie von dir beschrieben einen Symlink erstellt oder die alten Versionen manuell kopiert, werden doch die Abhängigkeiten in der rpm-Datenbank nicht geupdatet, oder?
Man müsste doch zusätzlich noch ein rpm-Paket erstellen, dass einen anderen Namen hat und dann die alten Versionen bereitstellt.


Daniel
 
OP
O

ojkastl

Hacker
Hallo,

also jetzt wird mir vieles klar.

Gibt es denn eine Übersicht welche Repositories "gefährlich" sind, also z.B. kernel-of-the-day und so? Damit ich die mal rausschmeissen kann.

Danke für die super Erklärung, jetzt hab es sogar ich kapiert.

Saber
 

pawe

Member
@Saber_Rider: klar gibt es das. Ist sogar als wichtig markiert: http://www.linux-club.de/viewtopic.php?t=16317

@Daniel2000: Jain! Das stimmt schon, dass apts RPM-Datenbank nichts von den Dateien weiß. Im Fall von Saber_Raider hängt das Paket gaim nicht von dem Paket libgcrypt-1.1.91 ab sondern von der Datei libgcrypt.so.7. Es schaut einfach ob sie da ist, oder nicht.
Wenn du natürlich ein anderes Paket istallierst, das vom Paket libgcrypt-1.1.91 abhängt, dann hast du ein Problem. Deshalb nannte diese Methoden auch pfuschen! Ich gehe solchen Methoden lieber aus dem Weg (wenn´s geht), auch wenn sie funktionieren.
Und zu den zwei Versionen eines Packets nebeneinander: das wollte ich auch schon mal machen, hat bei mir aber nicht geklappt
 
OP
O

ojkastl

Hacker
Danke,

das hatte ich übersehen.

Gefährlich sind also suse-people sowie usr-local-bin. Kernel-of-the-day steht da gar nicht drin. Ist das Absicht?


Hab ich was vergessen?

Danke,
Saber
 
Oben