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

Zypper oder YaST - wer informiert mich richtig?

halo44

Hacker
Ich habe mal wieder eine Verständnisfrage. Diesmal die Paketverwaltung mittels zypper bzw. YaST betreffend.

In einem älteren Forenbeitrag fand ich einen Hinweis darauf, wie man mit zypper überprüfen kann, welche Pakete aus einer bestimmten Paketquelle installiert sind :

Code:
zypper se -sir absolute-Repo-Nummer

Bei den meisten von mir verwendeten Repos zeigt dieser Befehl auch (vermutlich) zutreffende Ausgaben.

Bei anderen Quellen, z.B.

Code:
 2 | Lazy_Kent-Repo_12.3  | Lazy_Kent-Repo_12.3 | Ja | Ja | 99 | http://download.opensuse.org/repositories/home:/Lazy_Kent/openSUSE_12.3/
zeigt meine Suse mir

Code:
zypper se -sir 2
Daten des Repositories laden ...
Installierte Pakete lesen ...
Keine Pakete gefunden.

YaST zeigt mir aber bei der Auswahl "Software installieren oder löschen" > Reiter Installationsquellen > Lazy_Kent-Repo_12.3 an, daß folgende Pakete aus diesem Repo installiert sind :

Code:
antiword
catdoc
icoutils
pstotext
python-PyCHM
python-rarfile
recoll
recoll-lang
unrtf

Warum gibt mir zypper nicht die gleiche, offensichtlich zutreffende Information?

Ähnliche "Fehlinformationen" erhalte ich die Pakete aus den Repos betreffend

Code:
http://download.opensuse.org/repositories/system:/SynCE/openSUSE_12.2/         
http://download.opensuse.org/repositories/system:/packagemanager/openSUSE_12.1/

Kann mich bitte jemand "aufklären"? Hierfür vielen Dank.

Gruss H.
 

Trekkie00

Member
Ist das Repository auch aktiviert, damit die Paketverwaltung das zuordnen kann?Ansonsten sind die als Systempakete ausgewiesen und Du müsstest die über
Code:
zypper se -si | grep Systempakete
suchen.
 

tomm.fa

Administrator
Teammitglied
halo44 schrieb:
YaST zeigt mir aber bei der Auswahl "Software installieren oder löschen" > Reiter Installationsquellen > Lazy_Kent-Repo_12.3 an, daß folgende Pakete aus diesem Repo installiert sind :

Code:
antiword
catdoc
icoutils
pstotext
python-PyCHM
python-rarfile
recoll
recoll-lang
unrtf
Wie überprüfst du das genau? Hast du auch das KDE:Extra Repo eingebunden? Zeige mal die Ausgabe von:
Code:
zypper lr -d
und:
Code:
zypper se -si antiword catdoc icoutils pstotext python-PyCHM python-rarfile recoll recoll-lang unrtf

Installierte Pakete aus einem bestimmten Repo kannst du auch mit:
Code:
zypper pa
überprüfen. Beispiel anhand des Lazy Kent Repo:
Code:
zypper pa -ir 2
oder:
Code:
zypper pa -ir http://download.opensuse.org/repositories/home:/Lazy_Kent/openSUSE_12.3/
oder:
Code:
zypper pa -ir Lazy_Kent-Repo_12.3
 
Ich zitiere mal:
Code:
2 | Lazy_Kent-Repo_12.3 | Lazy_Kent-Repo_12.3 | Ja | Ja | 99 | http://download.opensuse.org/repositories/home:/Lazy_Kent/openSUSE_12.3/
und nehme an das das Ja Ja für aktiv und auto-refresh stehen...
Trekkie00s erste Idee ist aber gar nicht mal so dumm, nur das ich das grep mal auf azy oder ent mach würde, nur für den Fall das der Reponame merkürdige Sonderzeichen beinhaltet oder ähnlich dumme Späße wie Zeichenkodierungen...
 

Trekkie00

Member
2 | Lazy_Kent-Repo_12.3 | Lazy_Kent-Repo_12.3 | Ja | Ja | 99 | http://download.opensuse.org/repositori ... SUSE_12.3/
Da ist mir ja im ersten Post ein wesentlicher Teil durch die Lappen gegangen.

für den Fall das der Reponame merkürdige Sonderzeichen beinhaltet oder ähnlich dumme Späße wie Zeichenkodierungen...
In dem Fall kann man ja auch den String, nach dem gegreped wird (heisst das so?), in Anführungszeichen setzen. In diese Kategorie fällt ja auch z.B. das Leerzeichen bei Repositorynamen und Aliasen.
Ein Beispiel dafür wäre :
Code:
zypper se -si | grep "Packman Repository"
Dann funktioniert auch das.
 
Hallo Geier0815,

halo44 schrieb:
In einem älteren Forenbeitrag fand ich einen Hinweis darauf, wie man mit zypper überprüfen kann, welche Pakete aus einer bestimmten Paketquelle installiert sind :

Code:
zypper se -sir absolute-Repo-Nummer

Hmm, ich habe einen anderen Befehl um die Pakete abzufragen, mit dem erhalte ich weniger als mit Deinem:
Code:
openSUSE-Desk:/home/herz-von-hessen # zypper se -sir 20|grep ^i|wc -l
713
openSUSE-Desk:/home/herz-von-hessen # zypper pa -ir 20|grep ^i|wc -l
498
Da muß ich wohl nochmal genau nachlesen was mein Kommando tut und was das Deine.
Kannst ja mal überprüfen ob sich die Summe meines Kommandos mit den Ausgaben Deines YAST deckt.

Lieben Gruß aus Hessen
 
Bei Sonderzeichen wie Leerzeichen non-breakable-space etc, ja. Aber bei zB UTF-16 kodierten Zeichen? Eher nicht. Oder wenn etwas wie ein Doppelpunkt von einem Webserver verstümmelt wurde. Aber da weiß ich nicht was libzypp überhaupt als Kodierungen akzeptiert, ist also nur ein Schuß ins Blaue.
@Herz-von-Hessen: Der zitierte Befehl stammt nicht von mir.
 

josef-wien

Ultimate Guru
halo44 schrieb:
YaST zeigt mir aber bei der Auswahl "Software installieren oder löschen" > Reiter Installationsquellen > Lazy_Kent-Repo_12.3 an, daß folgende Pakete aus diesem Repo installiert sind :
Das interpretierst Du falsch. Es werden alle Pakete angezeigt, die im ausgewählten Repo vorhanden sind und aus einer beliebigen Quelle installiert wurden (bzw. bei noch nicht installierten Paketen aus einem aktiven Repo installiert werden können). Um Deine Anforderung mit YaST zu erfüllen, mußt Du bei jedem einzelnen Paket im Reiter "Versionen" nachschauen, in welchem Repo die installierte Version enthalten ist (bzw. aus welchem Repo welche Version installiert werden kann). Somit ist in diesem Fall zypper die "freundlichere" Auskunftsquelle.
 

Trekkie00

Member
Bist Du auch sicher, dass diese Programme aus diesem Repository installiert sind?
Falls Du in yast auf Installationsquellen umstellst und Dir dann die installierten Pakete anguckst, siehst Du lediglich, dass das Paket mit diesem Namen installiert ist. Um zu überprüfen, dass das Paket auch tatsächlich aus diesem Repository kommt, müsstest Du das unterhalb des Hauptfensters mal überprüfen, indem Du auf den Reiter Versionen klickst,
Alternativ kannst Du das auch mit
Code:
zypper se -s $PAKETNAME
überprüfen.

Das Problem stellt sich natürlich nur dann, wenn es, wie in Deinem Beispiel, zwischen Lazy_Kent-Repo_12.3 und anderen Repositories Überschneidungen gibt.
 
OP
H

halo44

Hacker
Vielen Dank für die zahlreichen Anregungen. Ich bin allen nachgegangen und weiß jetzt mehr.

Zypper gibt offensichtlich die richtige Auskunft und zeigt dies auch sehr schön mit
Code:
zypper pa -ir 2
Loading repository data...
Reading installed packages...
S | Repository          | Name           | Version       | Arch  
--+---------------------+----------------+---------------+-------
v | Lazy_Kent-Repo_12.3 | antiword       | 0.37-3.2.lk   | x86_64
v | Lazy_Kent-Repo_12.3 | antiword       | 0.37-3.2.lk   | i586  
v | Lazy_Kent-Repo_12.3 | catdoc         | 0.94.2-3.5.lk | x86_64
v | Lazy_Kent-Repo_12.3 | catdoc         | 0.94.2-3.5.lk | i586  
v | Lazy_Kent-Repo_12.3 | icoutils       | 0.31.0-1.6.lk | x86_64
v | Lazy_Kent-Repo_12.3 | icoutils       | 0.31.0-1.6.lk | i586  
v | Lazy_Kent-Repo_12.3 | pstotext       | 1.9-8.5.lk    | x86_64
v | Lazy_Kent-Repo_12.3 | pstotext       | 1.9-8.5.lk    | i586  
v | Lazy_Kent-Repo_12.3 | python-PyCHM   | 0.8.4-4.6.lk  | x86_64
v | Lazy_Kent-Repo_12.3 | python-PyCHM   | 0.8.4-4.6.lk  | i586  
v | Lazy_Kent-Repo_12.3 | python-rarfile | 2.6-1.5.lk    | noarch
v | Lazy_Kent-Repo_12.3 | recoll         | 1.19.5-1.7.lk | x86_64
v | Lazy_Kent-Repo_12.3 | recoll         | 1.19.5-1.7.lk | i586  
v | Lazy_Kent-Repo_12.3 | recoll-lang    | 1.19.5-1.7.lk | noarch
v | Lazy_Kent-Repo_12.3 | unrtf          | 0.21.5-1.4.lk | x86_64
v | Lazy_Kent-Repo_12.3 | unrtf          | 0.21.5-1.4.lk | i586
daß die Pakete zwar im Lazy_Kent-Repo vorhanden, aber nicht daraus installiert sind.

Etwas verwirrend ist für mich allerdings die Ausgabe wenn ich mittels "zypper if" die von mir aufgeführten Pakete überprüfe, so erhalte ich mit einer Ausnahme bei allen die Ausgabe
Code:
Repository: Lazy_Kent-Repo_12.3
aber auch den Hinweis "Status veraltet" oder "Out-of-date".

Die Ausnahme betrifft das Paket "icoutils", welches wohl aktuell ist, aber ausgibt
Code:
Repository: openSUSE-12.3-Oss

Auch die unterschiedliche Information, die mir zypper z.B. hinsichtlich der Pakete "antiword" und "icoutils" gibt, trägt für mich nicht zur Klarheit bei:
Code:
S | Name     | Type    | Version     | Arch   | Repository       
--+----------+---------+-------------+--------+------------------
i | antiword | package | 0.37-2.3.lk | x86_64 | (System Packages)

und

i | icoutils | package | 0.30.0-2.1.1 | x86_64 | openSUSE-12.3-Oss


Offensichtlich geht wohl der Hinweis von josef-wien - was YaST betrifft - in die richtige Richtung
Es werden alle Pakete angezeigt, die im ausgewählten Repo vorhanden sind und aus einer beliebigen Quelle installiert wurden

Gruss H.
 

josef-wien

Ultimate Guru
halo44 schrieb:
Pakete "antiword" und "icoutils"
Ich behaupte ganz einfach, daß das erste Paket in einer Version installiert ist, die in keinem eingebundenen Repo enthalten ist. Das zweite Paket stammt eindeutig aus dem oss-Repo. In diesem Fall ist YaST die "freundlichere" Auskunftsquelle.
 

Trekkie00

Member
Dieser Aussage würde ich mich anschliessen.
Wenn ein installiertes Paket als Systempaket ausgewiesen wird, lässt das den Schluss zu, dass das betreffende Repository deaktiviert oder gelöscht wurde.
Es könnte auch sein, dass ein Paket mittlerweile obsolet ist, also in keinem der Repositories mehr vorhanden ist.
Ein Beispiel hierfür wäre :
Code:
zypper se -s libx264
Daten des Repositories laden ...
Installierte Pakete lesen ...

S | Name              | Typ        | Version              | Arch   | Repository        
--+-------------------+------------+----------------------+--------+-------------------
  | libx264           | Quellpaket | 0.135svn20130723-1.1 | noarch | Packman Repository
i | libx264-129       | Paket      | 0.129svn20130224-2.2 | x86_64 | (Systempakete)    
i | libx264-135       | Paket      | 0.135svn20130723-1.1 | x86_64 | Packman Repository
v | libx264-135       | Paket      | 0.135svn20130723-1.1 | i586   | Packman Repository
  | libx264-135-32bit | Paket      | 0.135svn20130723-1.1 | x86_64 | Packman Repository
i | libx264-devel     | Paket      | 0.135svn20130723-1.1 | x86_64 | Packman Repository
v | libx264-devel     | Paket      | 0.135svn20130723-1.1 | i586   | Packman Repository
libx264-129 ist eine ätere Version der Bibliothek, welche damals aus dem Packman Repository installiert wurde, dort aber nicht mehr vorhanden ist, da dort mittlerweile die neuere Version libx264-135 vorliegt.

In allen Fällen kann Dein Paketmanagement das Paket keinem Repository mehr zuordnen und weist dieses deswegen als Systempaket aus.
 
OP
H

halo44

Hacker
Ich habe jetzt mal die oben erwähnten Pakete, weil grösstenteils veraltet, über YaST aktualisiert.

Jetzt zeigt mir auch zypper an, daß die Pakete aus dem Lazy_Kent-Repo geholt wurden.

Ich werde auch noch die Pakete zu SynCE und packagemanager aktualisieren, damit diese Paketquellen tatsächlich im Einsatz sind.

Gruss H.
 
Oben