Benutzer-Werkzeuge

Webseiten-Werkzeuge


comp:zypp2smart
no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


comp:zypp2smart [2009-02-14 14:56] (aktuell) – angelegt werner
Zeile 1: Zeile 1:
 +====== Zypper-Repos an Smart übergeben ======
  
 +Heute saß ich am PC, tippte ''smart update'' und der Paketmanager smart war der Meinung, dass er alle Channel entfernene solle. Anscheinend war ein Update eingetroffen, das mal so nebenbei ein ''rm -rf /etc/smart/channels/*'' abgesetzt hat, und meine mühsam synchronisierten Kanäle waren weg :-(
 +
 +Also: wie kann ich ''smart'' überreden, die Repositorioes von ''zypp'' zu benutzen? Ein kleines Shellscript reicht:
 +
 +<code bash>
 +#!/bin/bash
 +
 +# this script is intended to copy zypper repositories to smart sources
 +# written by Werner Flamme <w.flamme@web.de> 2009-02-14
 +
 +ZYPPERDIR=/etc/zypp/repos.d
 +SMARTDIR=/etc/smart/channels
 +
 +# loop over all zypper repositories
 +for DAT in $ZYPPERDIR/*.repo; do
 + # do we have to care about the repo?
 + grep -q 'enabled=0' "$DAT" && continue
 +
 + # get the name of the repo, so that it will be understood by smart
 + FIRSTPART=$(basename "$DAT" '.repo')
 + # where do we write to?
 + NEWFILE="$SMARTDIR/${FIRSTPART}.channel"
 + # write the channel's name
 + echo "[$FIRSTPART]" > "$NEWFILE"
 + echo "Alias = $FIRSTPART" >> "$NEWFILE"
 + # get the zypper repo info we need
 + BASEURL=$(grep 'baseurl=' "$DAT")
 + REPOTYPE=$(grep 'type=' "$DAT")
 + echo "$BASEURL"  >> "$NEWFILE"
 + echo "$REPOTYPE" >> "$NEWFILE"
 +done
 +</code>
 +
 +Damit erstelle ich aus jedem aktiven Zypper-Repository einen Smart-Kanal. Und zwar recht schnell... ;-)
 +
 +Anschließend noch ein ''%%smart channel --show%%'', damit smart alle neuen Kanäle einliest, und noch ein ''%%smart channel --show > /etc/smart/channelsik%%'', um eine Sicherungskopie der Channel anzulegen :-). Damit sollte das nächste Update keine Probleme mehr bereiten ;-)
comp/zypp2smart.txt · Zuletzt geändert: 2009-02-14 14:56 von werner

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki