PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche nach Config-Dateien bei rpm-basierte Distributionen vereinfachen



drunkenPenguin
27.02.04, 12:31
Dieser Tipp beschreibt, wie man mit Hilfe von rpm und der zugehörigen q-Option nach Config-Dateien der einzelnen Pakete suchen kann und sich Infos zu den Paketen schnell anzeigen lässt.

Vorbereitungen: so gut wie keine; alle Programme sollten standardmäßig installiert sein; es werden benötigt:
[list=a]
rpm
sed
less

ein Texteditor nach Wahl, z.B. vim ;)
[/list=a]

Man sollte zuerst ein Verzeichnis anlegen, z.B. mit Namen "rpm_query", vielleicht am besten im Home-Verzeichniss. Man wechselt in dieses Verzeichnis.
Wenn fertig, dann möchte man eine Datei mit ausführlichen Informationen erstellen:
rpm -qaci > query-qaci.db # dieser Befehl spuckt Infos zu allen installierten Paketen und die Pfade zu den zugehörigen Config-Dateien aus; die Standardausgabe wird in eine Datei geschrieben.

Sodale. Weil die entstandene Datei nicht sehr strukturiert wirkt, sagen wir sed, dass er ein paar Kommentarzeichen vor jedem "Name" einfügen soll. Dazu liest sed etwas aus der Datei "structure.f", die wir ebenfalls in gleichem Verzeichnis anlegen. Dort steht drin:
structure.f:


/Name/ i\
##################################################

soll heißen: füge vor jeder Zeile, die mit "Name" anfängt, Zeile ####... ein

Jetz kommt aber sed:
sed -f structure.f query-qaci.db > query-qaci.dbz

Man beachte, dass die "fertige" Datei die Endung ".dbz" trägt. Das kann man natürlich machen, wie man will.

Möchte man jetzt nach einem Paket suchen, dass "slocate" heißt, gibt man ein
less query-qaci.dbz ein
Nun verwendet man einfach die in less integrierte Suchfunktion; man gebe also ein:
/slocate
und landet bei slocate, hat Infos zum Paket und weiß, dass die zugehörige Konfigurations-Datei "/etc/updatedb.conf" heißt. Findet man einen Namen nicht (oder nicht das "Richtige", wie z.B. bei "apt"), dann kann man mit n weitersuchen.

Aber less /pfad/datei ist viel zu viel zum einzugeben. Darum legen wir einen alias mit Namen "query" fest:
alias query='less /home/user1/rpm-query/query-qaci.dbz' # Und damit das bei einem neuen Login auch so bleibt, schreibt man das in die Datei ~/.bashrc
Mit unalias query löscht man ihn wieder.


Weil sich die rpm-Datenbank nun mal leider ändert, möchte man das ganze Zeugs nicht immer wieder eingeben, also machen wir uns ein Skript:


#! /bin/bash

# Pfade und Dateien
DIR=/home/user1/rpm_query/
FILE_01=query-qaci.db
FILE_02=query-qaci.dbz
FILE_03=structure.f

# frag die rpm-Datenbank nach allen Paketen, deren Konfigurationsdateien und Infos;
# schreib die Ausgabe in FILE_01 im angegebenen Verzeichnis
rpm -qaci > $DIR$FILE_01

# sag sed, er soll die Kommentarzeilen einfügen
sed -f $DIR$FILE_03 $DIR$FILE_01 > $DIR$FILE_02

Sinnigerweise habe ich es in /home/user1/bin als "rpm_query.sh" abgespeichert und ausführbar gemacht. Um up2date zu bleiben, lässt man das Skript über einen Cronjob laufen.

So, fertig. Viel Spaß damit.
Daniel