====== 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 inzwischen((openSUSE 10.3)) auch ''zypper ar -t YUM $TEIL''((''zypper sa --help'' weist auf addrepo (ar) hin, nicht mehr auf service-add (sa) )) benutzen((gibt man keinen Alias an, wird die URL als Alias genutzt -- recht aussagekräftig!)). 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 [[getrepolist3|Suchen von Repos im Buildsystem]]