Benutzer-Werkzeuge

Webseiten-Werkzeuge


users:werner:apt2rug

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
users:werner:apt2rug [2008-05-05 2114]
werner zypper ar statt sa
users:werner:apt2rug [2008-06-27 2319] (aktuell)
werner zypper-Repos in Dateiform
Zeile 1: Zeile 1:
 +====== 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?
 +
 +<code>
 +   Verschiedene Befehle:
 +
 +   apt-import (ai) [sources.list]
 +          Importiert eine sources.list-Datei von apt.
 +</code>
 +
 +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":
 +
 +<code bash>
 +#!/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
 +</code>
 +
 +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]]
users/werner/apt2rug.txt · Zuletzt geändert: 2008-06-27 2319 von werner