[gelöst] Frage(n) zu rpm

Hier köchelt der Sud für die nächste Mageia-Suppe. Also stellst Du hier alle Fragen und lieferst hier alle Beiträge zur Entwicklungsversion ab.

Moderator: Mageia Founders

[gelöst] Frage(n) zu rpm

Beitragvon lula » Apr 2nd, '12, 22:52

Hallo zusammen,

nach dem Update von systemd hatte ich (mal wieder) das Problem, daß sich Programme unter X bei aktivierter Netzwerkverbindung nicht starten ließen. Ich benutze systemd, networkmanager und die dazugehöringen Applets. Das Problem liegt an einem unterschiedlichen hostnamen, abhängig davon, ob die Netzwerkverbindung gestartet ist oder nicht. Also habe ich mal angefangen zu graben.

Dabei bin ich auf die Datei /etc/hostname gestoßen, die vom update auf systemd-44-4.mga2 einfach überschrieben wurde. Jetzt kommen die Fragen dazu:

Wieso ergibt ein listing des Pakets systemd eine andere Anzahl von Dateien als ein "verify"?

Code: Alles auswählen
rpm -ql systemd | wc -l
202
rpm -Vv systemd | wc -l
195


Die sieben fehlenden Dateien sind:
Code: Alles auswählen
diff <(rpm -ql systemd |sort) <(rpm -Vv systemd | cut -c 14- | sort)
14,17d13
< /etc/hostname
< /etc/locale.conf
< /etc/machine-id
< /etc/machine-info
22,24d17
< /etc/timezone
< /etc/vconsole.conf
< /etc/X11/xorg.conf.d/00-keyboard.conf


Wieso gibt es von diesen sieben Dateien nur zwei auf meinem System?
Code: Alles auswählen
ls -l $(diff <(rpm -ql systemd |sort) <(rpm -Vv systemd | cut -c 14- | sort) | grep /etc | awk '{print $2}')
ls: Zugriff auf /etc/locale.conf nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf /etc/machine-info nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf /etc/timezone nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf /etc/vconsole.conf nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf /etc/X11/xorg.conf.d/00-keyboard.conf nicht möglich: Datei oder Verzeichnis nicht gefunden
-rw-r--r-- 1 root root  7 Apr  2 22:14 /etc/hostname
-r--r--r-- 1 root root 33 Dez 17 18:45 /etc/machine-id


Ist das normal oder ist meine rpm-Datenbank / mein System hin?
Warum wird die /etc/hostname einfach überschrieben? Sollte da nicht eine .rpmnew angelegt werden, wenn der user Änderungen an einer config vornimmt?

Das System eine Mageia1-Installation, hochgezogen auf Cauldron.

Danke für euere Antworten,
Lutz
Zuletzt geändert von lula am Apr 4th, '12, 21:03, insgesamt 1-mal geändert.
lula
 
Beiträge: 644
Registriert: Feb 10th, '12, 20:13

Re: Frage(n) zu rpm

Beitragvon unklar » Apr 3rd, '12, 10:12

Hi lula,

Deine Fragen kann ich Dir nicht beantworten.
Ich habe Deine Befehle bei mir jetzt nachvollzogen. Die Ausgaben sind exakt die selben.

Cauldron wurde von mir vor ca.30 Min. auf dem aktuellen Stand gebracht. Systemd-44-4.mga2 ist auch an Bord.
Mit dem Netzwerk habe ich überhaupt keine Probleme.

Einziger Unterschied zu Dir - ich habe von .iso instaliert (kde 32.bit).
El Conkystador (el conquistador = der Sieger) ein Markenzeichen für @Sector11 8-)
unklar
 
Beiträge: 1468
Registriert: Jun 1st, '11, 15:06

Re: Frage(n) zu rpm

Beitragvon doktor5000 » Apr 3rd, '12, 21:08

rpm -ql listet alle Dateien, welche das Paket enthalten müsste, egal ob die da sind oder nicht.
rpm -V verifiziert die Dateien des Paketes, und zeigt alle Unterschiede zum Originalzustand an, das ist ein vollkommen anderer Zweck,
siehe dazu etwa http://www.rpm.org/max-rpm/ch-rpm-verify.html den Abschnitt "rpm -V — What Does it Do?".
Unterschiede bei 195 Dateien zum Sollzustand ist schon nicht so gut, da solltest du dir mal einfach die Ausgabe von rpm -V systemd anschauen.
Zeigt u.a. Unterschiede zu folgenden Dateiattributen an, glaube in der Reihenfolge, aber in einer Zeile hintereinanderweg pro Datei (siehst du dann schon)
Code: Alles auswählen
    Besitzer    Gruppe    Modus    MD5-Summe    Größe    Major    Minor    Symlink-String    ctime


Das bloß mal kurz am Rande.
Ich bin nicht böse, sondern nur ehrlich. Und wer lesen kann, ist klar im Vorteil.
----
Mageia - the magic continues
Benutzeravatar
doktor5000
 
Beiträge: 6135
Registriert: Jun 2nd, '11, 09:39

Re: Frage(n) zu rpm

Beitragvon lula » Apr 4th, '12, 07:33

Hi Dok,

danke erst einmal für die Antwort. Genau das aber leuchtet mir nicht so richtig ein:
doktor5000 hat geschrieben:rpm -ql listet alle Dateien, welche das Paket enthalten müsste, egal ob die da sind oder nicht.

Was genau meinst Du mit "egal ob die da sind oder nicht", bzw. andersherum, wenn das Paket behauptet, die Datei /etc/hostname gehört zu ihm, sie aber nicht installiert, dann würde ich doch erwarten, daß ein verify eine Änderung für diese Datei anzeigt.

Ich schau nochmal, ob ich noch was finde.

Lutz
lula
 
Beiträge: 644
Registriert: Feb 10th, '12, 20:13

Re: Frage(n) zu rpm

Beitragvon man-draker » Apr 4th, '12, 08:52

lula hat geschrieben:Ich schau nochmal, ob ich noch was finde.

Da empfiehlt sich die Manpage des Programms:
Verify Options

The general form of an rpm verify command is

rpm {-V|--verify} [(1) select-options ] [(1) verify-options ]

Verifying a package compares information about the installed files in the package with information about the files taken from the package metadata stored in the rpm database. Among other things, verifying compares the size, MD5 sum, permissions, type, owner and group of each file. Any discrepancies are displayed. Files that were not installed from the package, for example, documentation files excluded on installation using the "--excludedocs" option, will be silently ignored.
"Die letzte Stimme, die man hört, bevor die Welt explodiert, wird die Stimme eines Experten sein, der sagt: 'Das ist technisch unmöglich.'"
(Peter Ustinov)
Benutzeravatar
man-draker
 
Beiträge: 4992
Registriert: Jun 1st, '11, 12:56

Re: Frage(n) zu rpm

Beitragvon obgr_seneca » Apr 4th, '12, 09:07

Di Datei /etc/hosts wird im SPEC-File folgendermaßen behandelt:
Code: Alles auswählen
%ghost %config(noreplace) %{_sysconfdir}/hostname

Dies bedeutet, dass die Datei /etc/hosts zwar dem Paket systemd gehört, aber nicht von diesem installiert wird. Außerdem wird sie bei einer Aktualisierung nicht ersetzt.
Die Datei /etc/hosts ist in dem Paket also nicht vorhanden, gehört diesem aber. Klingt etwas seltsam, ich weiß.
Die Datei muss also von einem Systemwerkzeug angelegt werden. Dies geschieht - so wie ich das sehe - während der Installation.
Die Direktiven %ghost und %config(noreplace) bewirken nun, dass bei einer Deinstallation von systemd die Datei entfernt wird (sie gehört ja zum Paket auch wenn sie nicht von diesem installiert wurde) und dass sie bei einer Aktualisierung nicht angetastet wird.

So viel vom Standpunkt des Paketbaus, warum die /etc/hosts bei Dir jetzt überschrieben wurde kann ich nicht so genau sagen. Ich denke, es hängt mit dem Upgrade von 1 auf Council zusammen und mit dem damit verbundenen Wechsel von sysvinit auf systemd.
Das beste wäre es, wenn Du dies als Bug melden würdest, so dass Colin das untersuchen kann.

Oliver
Benutzeravatar
obgr_seneca
 
Beiträge: 439
Registriert: Mai 20th, '11, 14:10
Wohnort: Südwest-Deutschland

Re: Frage(n) zu rpm

Beitragvon lula » Apr 4th, '12, 20:41

Hallo zusammen,

man-draker hat geschrieben:Da empfiehlt sich die Manpage des Programms:
[ snip ]

@man-draker:
Ja die habe ich schon gelesen, mir war allerdings nicht klar, daß eine Datei zu einem Paket gehören kann ohne von diesem installiert zu sein.

@Oliver:
Danke, der Hinweis auf die %ghost-Dateien war der Punkt, der mir fehlte. Ob die /etc/hostname von systemd überschrieben wurde, habe ich noch nicht getestet, werde ich aber noch machen. Das war erst einmal eine Annahme, da rpm -qf /etc/hostname halt systemd als Paket ausgegeben hat. Bei dem Update waren ja noch mehr Pakete dabei. Wenn das reproduzierbar ist, schreibe ich einen Bugreport.

Viele Grüße,
Lutz

Edit: Ich konnte das nicht reproduzieren (mit urpmi --replacepkgs), weder bei systemd noch bei networkmanager (das nächste Paket, was m.E. in Frage käme). Allerdings gibt es schon einen Bugreport: https://bugs.mageia.org/show_bug.cgi?id=5230

Ich markiere das jetzt hier als gelöst.
lula
 
Beiträge: 644
Registriert: Feb 10th, '12, 20:13


Zurück zu Cauldron

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast