Systemupgrade: Unterschied zwischen den Versionen
Zeile 49: | Zeile 49: | ||
Nun den NFS Server starten | Nun den NFS Server starten | ||
rcnfs start | rcnfs start | ||
− | |||
− | |||
− | |||
− | |||
=== Repos modifizieren === | === Repos modifizieren === |
Version vom 26. November 2021, 21:07 Uhr
Systemupgrade - Schritt für Schritt
Die Befehle der folgenden Schritte nacheinander kopieren und im Terminal ausführen.
Version
Die aktuelle Version wird ermittelt und die neue Version wird abgefragt.
productName=openSUSE-Leap old=`cat /etc/os-release | grep VERSION_ID | cut -d "=" -f 2 | sed 's/"//g'` read -p "Upgrade von Version $old auf Version: " new fileName=openSUSE-Leap-$new-DVD-x86_64-Current.iso
Download
Zielverzeichnis
# Beispiel targetDir=/local/share/download/iso
- Zielverzeichnis für HTTP Repository
# Webserver auf einem Raspberry PI targetDir=/var/www/html # Webserver auf einem Suse System targetDir=/srv/www/htdocs
Download durchführen
cd $targetDir wget ftp://ftp5.gwdg.de/pub/opensuse/distribution/leap/$new/iso/$fileName wget ftp://ftp5.gwdg.de/pub/opensuse/distribution/leap/$new/iso/$fileName.sha256 sha256sum $fileName
... oder von DVD clonen
dd if=/dev/cdrom of=$targetDir/$fileName
Installationsquelle - ISO Datei
Mit YAST kann man die ISO Datei direkt als lokales Repository einbinden.
Will man die Installationsquelle im LAN bereitstellen, kann man das über HTTP oder NFS machen.
HTTP Repository
Wenn man im LAN einen Webserver betreibt, z.B auf einem Raspberry PI, so kann man die Suse DVD per HTTP Repo verfügbar machen.
Damit die Suse Installationsquellen immer verfügbar sind, kann man die ISO Datei beim Systemstart einbinden.
- Eintrag in /etc/fstab auf dem HTTP Server im LAN.
$fileName /var/www/html/suse iso9660 loop,ro,auto 0 0
Das ISO image wird als Loop Device in das System eingehängt
# Beispiel mkdir /mnt/suse mount -o loop $targetDir/$fileName /mnt/suse
Nun muss man ein NFS Share erzeugen in der Datei /etc/exports
network=10.0.0.0/24 # Beispiel /mnt/suse $network(ro,root_squash,sync,no_subtree_check,insecure)
Das kann auch mit YAST / Netzwerkdienste gemacht werden.
Nun den NFS Server starten
rcnfs start
Repos modifizieren
Dieser Schritt korrigiert Repositories, wenn nötig.
# Hardcodierte Versionsnummern durch die Variable $releasever ersetzen rm /etc/zypp/repos.d.bak -R 2> /dev/null cp -a /etc/zypp/repos.d /etc/zypp/repos.d.bak cd /etc/zypp/repos.d find . -type f | \ while read file ; do # Suchen und ersetzen: cp "$file" datei.tmp sed -e s/$old/\$releasever/g datei.tmp > "$file" done rm datei.tmp # Versionsname aus repo-Dateinamen entfernen for file in * ; do oldname=`basename "$file"` newname=`echo $oldname | sed -e s/$old/""/` if [ "$newname" != "$oldname" ] ; then mv "`pwd`/$oldname" "`pwd`/$newname" fi done
Upgrade durchführen
Vor der Installation mit YAST die Repos kontrollieren.
- Falls die Variable $new gesetzt wurde - siehe oben ...
# Testlauf zypper --releasever $new dup --dry-run zypper --releasever $new dup
- .. oder neue Version direkt eingeben
# Beispiel zypper --releasever 15.3 dup --dry-run zypper --releasever 15.3 dup
Update Befehlsfolge - erweitert
Der Variablen $new muss man natürlich vorher einen entsprechenden Wert zuweisen.
zypper --releasever $new refresh zypper --releasever $new patch --updatestack-only zypper --releasever $new dist-upgrade --allow-vendor-change shutdown -r now
Weitere Details: https://linux-club.de/forum/viewtopic.php?p=796590#p796590
SUSE Systemupgrade per Script
Ein einfaches Script suse_upgrade.sh, das den Updatevorgang mit zypper ein wenig vereinfacht.
Download von suse_upgrade.sh
HowTo
http://de.opensuse.org/Upgrade
Software Repositories
Folgende Softwarequellen benötige ich zusätzlich zu den Standard Repositories.
Packman
Hinzufügen mit YAST oder ...
new=15.3 zypper addrepo -cfp 90 http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$new/ packman
Benötigt für | Hinweise | Datum |
---|---|---|
pdftk |
pdftk wird benötigt von meinem Skript /usr/local/bin/indexprint.sh |
Juli 2018 |