Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Unternamensraum:

Seiten in diesem Namensraum:

users:werner:apt2rug

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 $TEIL2) 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

1)
openSUSE 10.3
2)
zypper sa –help weist auf addrepo (ar) hin, nicht mehr auf service-add (sa)
3)
gibt man keinen Alias an, wird die URL als Alias genutzt – recht aussagekräftig!
users/werner/apt2rug.txt · Zuletzt geändert: 2008-06-27 2319 von werner