Systemupgrade: Unterschied zwischen den Versionen

Aus Mediawiki Ferdinand Gruber
Zur Navigation springen Zur Suche springen
Zeile 28: Zeile 28:
  
 
== Suse Installationsabbild - ISO Datei ==
 
== Suse Installationsabbild - ISO Datei ==
=== Variante - NFS Share ===
+
Mit YAST kann man die ISO Datei direkt als lokales Repository einbinden.
==== ISO Datei als virtuelle Laufwerk mounten ====
+
 
 +
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 <tt>/etc/fstab</tt> auf dem HTTP Server im LAN.
 +
$fileName  /var/www/html/suse  iso9660 loop,ro,auto  0  0
 +
=== NFS Share ===
 
Das ISO image wird als Loop Device in das System eingehängt
 
Das ISO image wird als Loop Device in das System eingehängt
  mkdir /mnt/suse64bit >2 /dev/null
+
# Beispiel
  mount -o loop $dir/$fileName /mnt/suse64bit
+
  mkdir /mnt/suse
==== NFS Freigabe generieren ====
+
  mount -o loop $targetDir/$fileName /mnt/suse
NFS Share erzeugen in der Datei <code> /etc/exports </code>
+
Nun muss man ein NFS Share erzeugen in der Datei <code> /etc/exports </code>
  /mnt/suse64bit  10.0.0.0/24(ro,root_squash,sync,no_subtree_check,insecure)
+
  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.
 
Das kann auch mit YAST / Netzwerkdienste gemacht werden.
==== NFS Server starten ====
+
 
 +
Nun den NFS Server starten
 
  rcnfs start
 
  rcnfs start
  
=== Variante - HTTP Repository ===
+
=== Repositories überprüfen ===
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.
 
==== ISO Datei mounten ====
 
Damit die Suse Installationsquellen immer verfügbar sind, kann man die ISO Datei beim Systemstart einbinden.
 
: Eintrag in <tt>/etc/fstab</tt>
 
version=15.2
 
/var/www/html/openSUSE-Leap-$version-DVD-x86_64.iso  /var/www/html/suse  iso9660 loop,ro,auto  0  0
 
 
 
=== Repositories ===
 
==== Repositories überprüfen ====
 
 
Mit YAST kontrollieren, ob die Suse Installationsdateien als lokales ISO-file oder über NFS oder HTTP als Software Repository eingebunden ist.
 
Mit YAST kontrollieren, ob die Suse Installationsdateien als lokales ISO-file oder über NFS oder HTTP als Software Repository eingebunden ist.
 
: Wenn das nicht der Fall ist, wird beim Upgrade mit <tt>zypper</tt> alles aus dem Internet geholt.
 
: Wenn das nicht der Fall ist, wird beim Upgrade mit <tt>zypper</tt> alles aus dem Internet geholt.
  
==== Repo Pfade und Dateinamen ändern ====
+
=== Repos modifizieren ===
# Aufräumen
+
Dieser Schritt korrigiert Repositories, wenn nötig.
rm $downloadDir/*$old* 2> /dev/null
 
 
 
 
  # Hardcodierte Versionsnummern durch die Variable <tt>$releasever</tt> ersetzen
 
  # Hardcodierte Versionsnummern durch die Variable <tt>$releasever</tt> ersetzen
 
  rm /etc/zypp/repos.d.bak -R 2> /dev/null
 
  rm /etc/zypp/repos.d.bak -R 2> /dev/null

Version vom 26. November 2021, 21:04 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

Suse Installationsabbild - 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

NFS Share

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

Repositories überprüfen

Mit YAST kontrollieren, ob die Suse Installationsdateien als lokales ISO-file oder über NFS oder HTTP als Software Repository eingebunden ist.

Wenn das nicht der Fall ist, wird beim Upgrade mit zypper alles aus dem Internet geholt.

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 pdftkwird benötigt von meinem Skript /usr/local/bin/indexprint.sh Juli 2018