====== FreeBSD - Upgrade ======
* [[::freebsd:FreeBSD - PKG]]
* [[::freebsd:FreeBSD - Update]]
* [[::freebsd:FreeBSD - Ports-Tree]]
* **[[::freebsd:FreeBSD - PortMaster]]** //verwendet nur Werkzeuge, die bereits im Basissystem vorhanden sind//
* [[::freebsd:FreeBSD - PortUpgrade]]
/root/bin/FreeBSD_-_Update.sh
reboot
/root/bin/FreeBSD_-_Upgrade_Teil_1.sh
reboot
/root/bin/FreeBSD_-_Upgrade_Teil_2.sh
reboot
/root/bin/FreeBSD_-_Upgrade_Teil_3.sh
reboot
/root/bin/FreeBSD_-_Update.sh
#!/bin/sh
#!/usr/bin/env bash
#------------------------------------------------------------------------------#
#
# Seit FreeBSD 14.0 wird der Ports-Tree per GIT verwaltet.
#
#------------------------------------------------------------------------------#
VERSION="v2024021300" # initiale Erstellung
#------------------------------------------------------------------------------#
#
# Installing the Ports Collection
# https://docs.freebsd.org/en/books/handbook/ports/#ports-using-installation-methods
#
#------------------------------------------------------------------------------#
### GIT installieren
pkg install devel/git www/links ports-mgmt/portupgrade
echo "### 0"
### den Ports-Tree aktuallisieren
git -C /usr/ports pull
echo "### 1"
#------------------------------------------------------------------------------#
zweig_update()
{
### Zweig verlassen
git -C /usr/ports branch
git switch -d
git -C /usr/ports branch
echo "### 2"
### zum neuesten vierteljährlichen Zweig wechseln
ZWEIG="$(links -source https://github.com/freebsd/freebsd-ports/branches | tr -s ',' '\n' | grep -F '"name":"2' | awk -F'"' '{print $(NF-1)}' | sort -nr | head -n1)"
# git -C /usr/ports switch 2024Q1
echo "### 3"
git -C /usr/ports switch ${ZWEIG}
git -C /usr/ports branch -l
echo "### 4"
}
### ein- und ausschalten
zweig_update
#------------------------------------------------------------------------------#
### den Ports-Tree aktuallisieren
portsclean -CDL # entfernt alle workdirs und veralteten Distfiles
git -C /usr/ports pull
git -C /usr/ports branch -l
echo "### 5"
set -x
### INDEX erstellen
cd /usr/ports/ && make index
ls -lha /usr/ports/INDEX-*.db
echo "### 6"
#!/bin/sh
#!/usr/bin/env bash
VERSION="v2025011800" # initiale Erstellung
#==============================================================================#
#
# /root/bin/FreeBSD_-_Update.sh
#
#==============================================================================#
#
# siehe auch
# /root/bin/FreeBSD_-_Upgrade_Teil_1.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_2.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_3.sh
#
#------------------------------------------------------------------------------#
# Version des aktuell laufenden Kernels anzeigen
freebsd-version -r
# aktuelle Version vom User-Land anzeigen
#grep -F 'VERSION=' /etc/os-release
freebsd-version -u
# aktuelle Version vom Kernel anzeigen
uname -a
#------------------------------------------------------------------------------#
### Betriebssystem updaten
freebsd-update fetch
freebsd-update install
#------------------------------------------------------------------------------#
### Ports-Tree updaten
git -C /usr/ports pull
git -C /usr/ports status
#------------------------------------------------------------------------------#
### veraltete Pakete entfernen + Upgrade aller Pakete
#pkg install ports-mgmt/portupgrade
#pkg autoremove
#portupgrade -a
#portupgrade -N
#pkg autoremove
#------------------------------------------------------------------------------#
### erst alles aus dem Repositorie updaten
### dann die beiden MM-Pakete aus dem Ports-Tree updaten
pkg autoremove
pkg update
ASSUME_ALWAYS_YES=yes
pkg upgrade
pkg autoremove
unset ASSUME_ALWAYS_YES
for A in multimedia/ffmpeg multimedia/libdvdread
do
cd /usr/ports/${A} && make clean && make && make deinstall install
done
#
# https://docs.freebsd.org/de/books/handbook/kernelconfig/
#
# cat /root/MYKERNEL > /usr/src/sys/amd64/conf/MYKERNEL
#
### die zu bauenden Kernel festlegen in /etc/src.conf
# KERNCONF=MYKERNEL GENERIC
include GENERIC
ident MYKERNEL
nooptions DDB # Enable the ddb(4) kernel debugger
options NULLFS # NULL filesystem
device nvram # Access to rtc cmos via /dev/nvram
#
device speaker # Play IBM BASIC-style noises out your speaker
envvar hint.speaker.0.at="isa"
envvar hint.speaker.0.port="0x61"
device isa
#nodevice isa # Don't need to support an ISA bus
#
options ZFS # NB: This depends on crypto, cryptodev and ZSTDIO
device crypto # core crypto support
device cryptodev # /dev/crypto for access to h/w
options ZSTDIO # zstd-compressed kernel and user dumps
#
device sg # Linux SCSI passthrough
# PCI Ethernet NICs.
device cxgb # Chelsio T3 10 Gigabit Ethernet
device cxgb_t3fw # Chelsio T3 10 Gigabit Ethernet firmware
device cxgbe # Chelsio T4-T6 1/10/25/40/100 Gigabit Ethernet
device cxgbev # Chelsio T4-T6 Virtual Functions
device mxge # Myricom Myri-10G 10GbE NIC
device oce # Emulex 10 GbE (OneConnect Ethernet)
### oder in der /etc/src.conf mit der Variablen WITHOUT_MODULES abschalten
### WITHOUT_MODULES= amr arcmsr ciss iir ips mly twa smartpqi tws aac aacraid ida mfi mlx mrsas twe agp cbb pccard cardbus wlan wlan_wep wlan_ccmp wlan_tkip wlan_amrr an ath ath_pci ath_hal bwi bwn ipw iwi iwn malo mwl ral wpi virtio hyperv
#
nooptions COMPAT_FREEBSD4 # Compatible with FreeBSD4
nooptions COMPAT_FREEBSD5 # Compatible with FreeBSD5
nooptions COMPAT_FREEBSD6 # Compatible with FreeBSD6
nooptions COMPAT_FREEBSD7 # Compatible with FreeBSD7
nooptions COMPAT_FREEBSD8 # Compatible with FreeBSD7
nooptions COMPAT_FREEBSD9 # Compatible with FreeBSD9
nooptions COMPAT_FREEBSD10 # Compatible with FreeBSD10
#nooptions COMPAT_FREEBSD11 # Compatible with FreeBSD11 / lang/rust rust-1.83.0 => Sanity check failed: kernel is missing COMPAT_FREEBSD11
#nooptions COMPAT_FREEBSD12 # Compatible with FreeBSD12
# ===> Configuring for rust-1.75.0
# Bad system call
# => Sanity check failed: kernel is missing COMPAT_FREEBSD11
# => Aborting build
#!/bin/sh
#!/usr/bin/env bash
VERSION="v2024122300" # initiale Erstellung
#==============================================================================#
#
# Dieses Skript führt ein Binär-Uprade von FreeBSD durch.
# https://www.freebsd.org/releases/14.2R/installation/
#
# /root/bin/FreeBSD_-_Upgrade_Teil_1.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_2.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_3.sh
#
#==============================================================================#
# Version des aktuell laufenden Kernels anzeigen
freebsd-version -r
# aktuelle Version vom User-Land anzeigen
#grep -F 'VERSION=' /etc/os-release
freebsd-version -u
# aktuelle Version vom Kernel anzeigen
uname -a
#------------------------------------------------------------------------------#
### als erstes müssen alle Paches in das aktuelle System installiert werden
freebsd-update fetch
freebsd-update install
# Ein binäres Release-Upgrade von 14.1 auf 14.2:
# > freebsd-update -r 14.2-RELEASE upgrade
#
NEUESTES_RELEASE="$(curl -s https://download.freebsd.org/releases/amd64/ | awk '{print $3}' | grep -F RELEASE | tr -d '"' | tr -d '/' | cut -f2 -d'=' | sort | tail -n 1)"
echo "NEUESTES_RELEASE: ${NEUESTES_RELEASE}"
freebsd-update upgrade -r ${NEUESTES_RELEASE}
freebsd-update install
#------------------------------------------------------------------------------#
### was jetzt zu tun ist
rm -f /var/tmp/FreeBSD_-_Upgrade_Teil_*.log
echo "
shutdown -r now
/root/bin/FreeBSD_-_Upgrade_Teil_2.sh
" | tee /var/tmp/FreeBSD_-_Upgrade_Teil_1.log
#!/bin/sh
#!/usr/bin/env bash
VERSION="v2024122300" # initiale Erstellung
#==============================================================================#
#
# Dieses Skript führt ein Binär-Uprade von FreeBSD durch.
# https://www.freebsd.org/releases/14.2R/installation/
#
# /root/bin/FreeBSD_-_Upgrade_Teil_1.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_2.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_3.sh
#
#==============================================================================#
# Version des aktuell laufenden Kernels anzeigen
freebsd-version -r
# aktuelle Version vom User-Land anzeigen
#grep -F 'VERSION=' /etc/os-release
freebsd-version -u
# aktuelle Version vom Kernel anzeigen
uname -a
#------------------------------------------------------------------------------#
### SRC Update
### GIT installieren
/root/bin/FreeBSD_-_update_Ports-Tree.sh
cd /usr/ports/devel/git && make clean && make config && make && make install && make clean
### die neuesten SRC saugen
cd /usr/src || exit 1
rm -fr /usr/src/* /usr/src/.*
time git clone https://git.freebsd.org/src.git .
#exit
### SRC auf die gewünschte Version umstellen
FB_GIT_VER="$(cd /usr/src && git branch -a | grep -F '/releng/' | sed 's|/releng/| |' | awk '{print $2}' | sort -nr | head -n1)"
echo "FB_GIT_VER: ${FB_GIT_VER}"
cd /usr/src && make cleanworld && make clean && git switch releng/${FB_GIT_VER} && git branch && time git pull && sh /usr/src/sys/conf/newvers.sh -v
echo "
FB_GIT_VER: ${FB_GIT_VER}
"
#exit
#------------------------------------------------------------------------------#
### den eigenen Kernel bauen
# less /usr/src/UPDATING
#vi /usr/src/sys/amd64/conf/MYKERNEL
vim /root/MYKERNEL /usr/src/sys/amd64/conf/GENERIC
cat /root/MYKERNEL > /usr/src/sys/amd64/conf/MYKERNEL
cd /usr/src && make cleanworld && make -j$(sysctl -n hw.ncpu) buildkernel KERNCONF=MYKERNEL && make installkernel KERNCONF=MYKERNEL
#------------------------------------------------------------------------------#
### was jetzt zu tun ist
echo "
shutdown -r now
uname -v
ls -lha /dev/sg*
/root/bin/FreeBSD_-_Upgrade_Teil_3.sh
" | tee /var/tmp/FreeBSD_-_Upgrade_Teil_2.log
#!/bin/sh
#!/usr/bin/env bash
VERSION="v2024122300" # initiale Erstellung
#==============================================================================#
#
# Dieses Skript führt ein Binär-Uprade von FreeBSD durch.
# https://www.freebsd.org/releases/14.2R/installation/
#
# /root/bin/FreeBSD_-_Upgrade_Teil_1.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_2.sh
# /root/bin/FreeBSD_-_Upgrade_Teil_3.sh
#
#==============================================================================#
# Version des aktuell laufenden Kernels anzeigen
freebsd-version -r
# aktuelle Version vom User-Land anzeigen
#grep -F 'VERSION=' /etc/os-release
freebsd-version -u
# aktuelle Version vom Kernel anzeigen
uname -a
NEUESTES_RELEASE="$(curl -s https://download.freebsd.org/releases/amd64/ | awk '{print $3}' | grep -F RELEASE | tr -d '"' | tr -d '/' | cut -f2 -d'=' | sort | tail -n 1)"
echo "NEUESTES_RELEASE: ${NEUESTES_RELEASE}"
#------------------------------------------------------------------------------#
### Nach dem Neustart muss freebsd-update erneut ausgeführt werden, um die neuen Userland-Komponenten zu installieren
freebsd-update install
echo "
#------------------------------------------------------------------------------#
### was jetzt zu tun ist
# Zu diesem Zeitpunkt werden Benutzer von Systemen, die von früheren FreeBSD-Versionen aktualisiert werden, von freebsd-update(8) aufgefordert, alle Anwendungen von Drittanbietern neu zu erstellen oder zu installieren (z. B. aus dem Ports-Baum installierte Ports oder von pkg(8) installierte Pakete). aufgrund von Aktualisierungen in Systembibliotheken.
# Nachdem Sie installierte Anwendungen von Drittanbietern aktualisiert haben (und wiederum nur, wenn freebsd-update(8) eine Meldung ausgegeben hat, die darauf hinweist, dass dies erforderlich ist), führen Sie freebsd-update(8) erneut aus, damit das alte (nicht mehr verwendete) System und seine Bibliotheken, gelöscht werden können:
freebsd-update install oder /root/bin/FreeBSD_-_Update.sh
shutdown -r now
fertig
" | tee /var/tmp/FreeBSD_-_Upgrade_Teil_3.log