Apt zu Rug
Wer SUSE Linux 10.1 kennt, kennt auch den Ärger mit dem unsäglichen ZEN-Update-Mechanismus. Ich habe stattdessen das gute alte apt
im Einsatz, weil mir dessen Oberfläche synaptic
um Klassen besser gefällt als smart –gui
.
Unter YaST gibt es den Menüpunkt „Installationsquellen hinzufügen“ – allerdings stehen die dort angezeigten Installationsquellen in keinem Zusammenhang mit denjenigen, die mit rug sl
auf der Befehlszeile angezeigt werden. So stellte sich die Frage, wie ich meine apt
-Installationsquellen rug
bekanntgebe. Naja, es gibt ja eine man
-Page: man rug
– und was lese ich da?
Verschiedene Befehle: apt-import (ai) [sources.list] Importiert eine sources.list-Datei von apt.
Das ist ja zu schön, um wahr zu sein. Leider sind meinem rug
(7.1.1.0) die Optionen apt-import
und ai
unbekannt. Also Selbsthilfe! Es entsteht ein Shellscript, das alle Dateien mit Endung .list
in rug
„einwirft“:
#!/bin/bash # mitzaehlen der Quellen LAUF=1 # Hilfsbestandteil fuer Datenquellennamen HEUTE=`date +%Y%m%d` # Schleife ueber alle .list-Dateien for WRKFL in *.list; do # Datei in nutzbaren String umwandeln VRSPN=`cat $WRKFL | sed 's/^repomd\t//g' | sed 's| |/|g' | tr '\n' ' '` # Schleife ueber String for TEIL in $VRSPN; do # zusammensetzen des Datenquellennamens ZAEHL="$HEUTE-$LAUF" # Aufruf von rug rug sa $TEIL $ZAEHL # inkrementieren des Quellenzaehlers LAUF=$[$LAUF+1] done done
Zumindest der mitzugebende Name der Quelle hat sich mir weder aus rug sl –help
noch aus man rug
ergeben – ich habe es nur aus der Fehlermeldung erraten…
Ergänzung 2008-05-05: statt rug sa $TEIL $ZAEHL
kann man inzwischen1) auch zypper ar -t YUM $TEIL
2) benutzen3). Wer hat schließlich freiwillig noch rug
auf seiner Maschine… Nachteil des ganzen Verfahrens ist, dass rug
und zypper
bei Hinzufügen einer Installationsquelle alle bisherigen Installationsquellen aktualisieren. Das bedeutet, dass die erste Quelle in einer Sekunde hinzugefügt ist, man bei der 10. Quelle schon mal eine Minute wartet und die 30. Quelle dann zur Qual wird.
Ergänzung 2008-06-27: seit openSUSE 10.3 kann man zypper die Repositories auch in Dateiformservieren, statt die Befehlszeile aufzurufen. Beim nächsten Aufruf von YaSTs „Installationsquellen hinzufügen“ wird dann alles aktualisiert. Wie solch eine Datei aussehen muss, zeigt z. B. das Script zum Suchen von Repos im Buildsystem