====== FreeBSD - Update ======
* [[::freebsd:FreeBSD - PKG]]
* [[::freebsd:FreeBSD - Upgrade]]
* [[::freebsd:FreeBSD - Ports-Tree]]
* **[[::freebsd:FreeBSD - PortMaster]]** //verwendet nur Werkzeuge, die bereits im Basissystem vorhanden sind//
* [[::freebsd:FreeBSD - PortUpgrade]]
to update: modernisieren
to upgrade: aktualisieren
===== Allgemeines =====
[[https://docs.freebsd.org/en/books/handbook/cutting-edge/#makeworld|25.6. Updating FreeBSD from Source]]
> vi /etc/freebsd-update.conf
aktuelle Hardware-Plattform:
> uname -m
amd64
Prozessor-Architektur:
> uname -p
amd64
Kernel-Version:
> uname -K
1400097
Version der Benutzerumgebung:
> uname -U
1400097
Kompiler-Kode-Version der einzelnen Pakete:
> pkg annotate -aS FreeBSD_version
prüfen, ob beide Versionsnummer übereinstimmen:
> if [ "$(uname -K)" = "$(uname -U)" ]; then echo "Kernel-Version und Benutzerumgebung haben die gleiche Version."; else echo "Kernel-Version und Benutzerumgebung haben unterschiedliche Versionen!"; fi
Kernel-Version und Benutzerumgebung haben die gleiche Version.
alle Pakete anzeigen, die nach einem Upgrade neu gebaut werden sollten:
> pkg annotate -aS FreeBSD_version | grep -Fv "Value: $(uname -U)"
...
zstd-1.5.4_2: Tag: FreeBSD_version Value: 1302001
alle ORIGINs der Pakete anzeigen, die nach einem Upgrade neu gebaut werden sollten:
> for A in $(pkg annotate -aS FreeBSD_version | grep -Fv "Value: $(uname -U)" | awk -F':' '{print $1}'); do pkg info -qo ${A}; done
...
archivers/zstd
===== FreeBSD 14.0 - alle gewünschten Pakte install/update =====
**__//So mache ich es auf meinem Server. - Es ist nur ein Beispiel!//__**
So stelle ich sicher, dass die Pakete in der richtigen Reihenfolge und mit den richtigen Optionen installiert werden.
Wichtig ist hierbei, dass ich die Pakete, bei denen mir die Compiler-Optionen egal sind, per PIN-Paket isntalliere
und die Pakete, die erweiterte Compiler-Optionen haben sollen, aus dem Ports-Tree gebaut werden.
Das mache ich aus zwei Gründen so: __1.__ geht es schnelle und __2.__ lassen sich leider (bei mir) bestimmte Pakete (z.B.: [[::MKVToolnix]] und [[::Blurays kopieren#Mit PKG|MakeMKV]]) nicht problemlos aus dem Ports-Tree bauen.
//Diese Konfiguration habe ich, am __16. Februar 2024__, unter **[[::FreeBSD:Upgrade FreeBSD 13.2 zu 14.0|FreeBSD 14.0]]** mit dem Ports-Tree in der Version **[[::FreeBSD:Upgrade Ports-Tree ab FreeBSD 14.0|2024Q1]]** erfolgreich benutzt (getestet)!//
Ausführung:
> for P in $(cd /usr/ports/multimedia/mkvtoolnix && make run-depends-list) /usr/ports/graphics/gd /usr/ports/graphics/ImageMagick7; do cd ${P} && make deinstall; done
> /root/bin/alle_Pakete_installieren_bzw_updaten.sh
#
# https://docs.freebsd.org/de/books/handbook/kernelconfig/
#
# cat /home/etc/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
#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
//Ach ja, ich muß noch hinzufügen, dass sich "''multimedia/makemkv''" nur installieren lässt, wenn man "''device sg''" in den Kernel mit einkompiliert hat, weiterhin lassen sich die Pakete ''links'' (mit SVG-Unterstützung) und ''MiniDLNA'' nur installieren, wenn "''options COMPAT_FREEBSD11''" im Kernel aktiviert ist, weil diese eine Abhängigkeit zu Rust haben und es z.Z. Rust nur für "FreeBSD 11" gibt.//
WRKDIRPREFIX= /var/ports
DISTDIR= /var/ports/distfiles
PACKAGES= /var/ports/packages
INDEXDIR= /var/ports
BATCH=NO
OPTIONS_UNSET+=DEBUG
DEFAULT_VERSIONS+=ssl=openssl
MAKEOPTS="-j9"
KERNCONF=MYKERNEL
DISABLE_VULNERABILITIES=yes
MAKE_JOBS_UNSAFE=yes
WITH_MPM=event
.if ${.CURDIR:M*/multimedia/ffmpeg}
OPTIONS_FILE_SET+=FDK_AAC
OPTIONS_FILE_SET+=OPENSSL
OPTIONS_FILE_UNSET+=NETWORK
OPTIONS_FILE_UNSET+=GNUTLS
OPTIONS_FILE_UNSET+=GLSLANG
OPTIONS_FILE_UNSET+=LIBPLACEBO
OPTIONS_FILE_UNSET+=SHADERC
OPTIONS_FILE_UNSET+=VULKAN
.endif
.if ${.CURDIR:M*/graphics/libglvnd}
OPTIONS_FILE_SET+=X11
.endif
.if ${.CURDIR:M*/multimedia/mkvtoolnix}
OPTIONS_FILE_SET+=DVDREAD
OPTIONS_FILE_SET+=FLAC
.endif
.if ${.CURDIR:M*/editors/mg}
FLAVOR=static
.endif
.if ${.CURDIR:M*/security/su-exec}
FLAVOR=static
.endif
.if ${.CURDIR:M*/shells/oksh}
FLAVOR=static
.endif
.if ${.CURDIR:M*/games/stonesoup}
FLAVOR=console
.endif
.if ${.CURDIR:M*/games/cataclysm-dda}
FLAVOR=curses
.endif
.if ${.CURDIR:M*/net-p2p/transmission-components}
FLAVOR=cli
.endif
.if ${.CURDIR:M*/sysutils/cpu-x}
FLAVOR=ncurses
.endif
.if ${.CURDIR:M*/editors/emacs-devel}
FLAVOR=nox
.endif
.if ${.CURDIR:M*/editors/emacs}
FLAVOR=nox
.endif
.if ${.CURDIR:M*/emulators/open-vm-tools}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/emulators/qemu7}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/emulators/qemu}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/games/brogue}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/games/xnethack}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/graphics/ImageMagick7}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/graphics/gifsicle}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/graphics/ImageMagick6}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/lang/nll}
FLAVOR=nosdl
.endif
.if ${.CURDIR:M*/misc/chatgpt-shell-cli}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/net/unison232}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/net/unison251}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/net/unison248}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/net/unison240}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/net/unison}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/net/wireshark}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/net-p2p/qbittorrent}
FLAVOR=nox
.endif
.if ${.CURDIR:M*/sysutils/pwsafe}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/sysutils/dvdisaster}
FLAVOR=nox11
.endif
.if ${.CURDIR:M*/sysutils/screenfetch}
FLAVOR=nox11
.endif
#==============================================================================#
BIND_VERSION="918"
APACHE_VERSION="24"
PHP_VERSION="81" # für die richtige Version, siehe www/dokuwiki (dokuwiki-php81) - Abhängigkeit
SAMBA_VERSION="416"
POSTGRESQL_VERSION="15" # für die richtige Version, siehe databases/php81-pgsql - Abhängigkeit
#==============================================================================#
PKG_REPO_01="
devel/git
ports-mgmt/pkg
ports-mgmt/portmaster
ports-mgmt/psearch
shells/bash-static
editors/vim
sysutils/screen
misc/mc
archivers/rar
misc/gnu-watch
sysutils/zfsnap
converters/base64
converters/unix2dos
converters/dosunix
ftp/wget
ftp/lftp
net/rsync
net/bmon
archivers/zip
sysutils/dmidecode
sysutils/sysinfo
sysutils/smartmontools
sysutils/nvme-cli
sysutils/hwstat
sysutils/freecolor
www/squid
www/squidanalyzer
www/squidview
security/sudo
security/snoopy
security/openssl
security/mcrypt
sysutils/pwgen
sysutils/fusefs-ntfs
sysutils/fusefs-ext2
sysutils/e2fsprogs
sysutils/eject
sysutils/lsblk
sysutils/lsop
sysutils/lscpu
sysutils/bsdstats
sysutils/zeroer
sysutils/grub2-bhyve
sysutils/vm-bhyve
sysutils/ipmitool
sysutils/pcpustat
sysutils/freecolor
devel/pkgconf
mail/fetchmail
mail/fetchmailconf
textproc/pdftohtml
print/pstotext
print/psutils
print/ghostscript10
mail/dovecot
mail/maildrop
net-mgmt/iftop
net-mgmt/ipcalc
net-mgmt/sipcalc
graphics/p5-Image-ExifTool
www/p5-LWP-UserAgent-WithCache
databases/postgresql${POSTGRESQL_VERSION}-server
databases/pgtop
net/samba${SAMBA_VERSION}
graphics/php${PHP_VERSION}-gd
textproc/php${PHP_VERSION}-xml
archivers/php${PHP_VERSION}-zip
ftp/php${PHP_VERSION}-curl
ftp/curl
www/links
www/nginx
www/thttpd
www/fcgi
www/fcgiwrap
lang/php${PHP_VERSION}
lang/php${PHP_VERSION}-extensions
sysutils/php${PHP_VERSION}-fileinfo
databases/php${PHP_VERSION}-pdo_pgsql
databases/php${PHP_VERSION}-pgsql
www/php${PHP_VERSION}-opcache
net-im/py-matrix-synapse
audio/cdparanoia
audio/faac
audio/vorbis-tools
audio/lame
textproc/dict
textproc/jq
net/wol
"
#==============================================================================#
PKG_PORTS_01="
sysutils/lsof
sysutils/bsdhwmon
sysutils/bsdinfo
audio/libsndfile
multimedia/ffmpeg
multimedia/libdvdread
sysutils/cpupdate
"
#==============================================================================#
PKG_REPO_02="
sysutils/dvdbackup
sysutils/vobcopy
sysutils/dvd+rw-tools
security/nmap
security/py-acme
security/py-certbot
security/py-certbot-dns-cloudflare
graphics/ImageMagick7
multimedia/mediainfo
multimedia/mkvtoolnix
"
#==============================================================================#
BLURAY="emulators/linux-c7 multimedia/makemkv"
#==============================================================================#
PKG_PORTS_02="
converters/p5-JSON-PP
"
#==============================================================================#
#!/bin/sh
. /root/bin/alle_Pakete.cfg
(
### wenn es Probleme bei der Installation gibt
#echo "# 0 # make deinstall"
#for P in $(cd /usr/ports/multimedia/mkvtoolnix && make run-depends-list) /usr/ports/graphics/gd /usr/ports/graphics/ImageMagick7; do cd ${P} && make deinstall; done
echo "# 1 # portsclean -CDL"
portsclean -CDL
echo "# 2 # pkg install PKG_REPO_01"
pkg install ${PKG_REPO_01}
echo "# 3 # portmaster -yKgtRf -U PKG_PORTS_01"
portmaster -yKgtRf -U ${PKG_PORTS_01}
echo "# 4 # pkg install PKG_REPO_02 BLURAY"
pkg install ${PKG_REPO_02} ${BLURAY}
echo "# 5 # portmaster -yKgtRf -U PKG_PORTS_02"
portmaster -yKgtRf -U ${PKG_PORTS_02}
echo "# 6 # portsclean -CDL"
portsclean -CDL
) 2>&1 | tee /tmp/alle_Pakete_installieren_bzw_updaten.log
===== Upgrade FreeBSD 13.2 zu 14.0 =====
* [[::freebsd:Upgrade FreeBSD 13.2 zu 14.0]]
===== FreeBSD 13.1 zu 13.2 =====
aktuelle Version vom User-Land anzeigen
> cat /etc/os-release
aktuelle Version vom Kernel anzeigen
> uname -a
zeigt das ''ident'' des aktuell laufenden Kernels
> uname -i
MYKERNEL
Print the version and patch level of the **installed kernel**.
> freebsd-version -k
Print the version and patch level of the **running kernel**.
> freebsd-version -r
Print the version and patch level of the **installed userland**.
> freebsd-version -u
als erstes müssen alle Paches in das aktuelle System installiert werden
> freebsd-update fetch
> freebsd-update install
==== Update mit binären Dateien ====
[[https://ostechnix.com/freebsd-upgrade/|Upgrade to FreeBSD 13.2 from FreeBSD 13.1]]
# Ein binäres Update von 13.1 auf 13.2 kann man auch mit ''freebsd-update'' durchführen.
> freebsd-update -r 13.2-RELEASE upgrade
> freebsd-update install
//Braucht man einen eigenen Kernel, dann muß man den nachher aus den Quellen bauen, wie unten beschrieben!//
==== FreeBSD-Upgrade aus den Quellen ====
als erstes die neuesten Quellen holen, offiziell wird es etwas einfacher beschrieben aber nur diese Methode hat in jedem Fall (über 10 Jahre lang) zum Ziel geführt:
> rm -fr /usr/src/*
> cd /usr/src || exit 1
> rm -fr .arcconfig .arclint .cirrus-ci/ .cirrus.yml .clang-format .git/ .gitattributes .github/ .gitignore
> git clone https://git.freebsd.org/src.git .
> git branch -a | head
> git switch releng/13.2
> sh /usr/src/sys/conf/newvers.sh -v
> cd /usr/src && make cleanworld || exit 21
> less /usr/src/UPDATING
jetzt muss als erstes (wenn man das möchte) eine eigene Kerneldatei angelegt werden:
> cat MYKERNEL > /usr/src/sys/amd64/conf/MYKERNEL
> vi /usr/src/sys/amd64/conf/MYKERNEL
nun können wir unsere System neu bauen, als erstes muß der Kernel gebaut und installiert werden:
> cd /usr/src && make cleanworld && make -j$(sysctl -n hw.ncpu) buildkernel KERNCONF=MYKERNEL && make installkernel KERNCONF=MYKERNEL
> shutdown -r now
erst jetzt kann die Welt gebaut werden (bei Pach-Level-Updates geht das auch schon vorher aber Major-Release-Update ńur mit neuem Kernel):
> cd /usr/src && make -j$(sysctl -n hw.ncpu) buildworld
Enable “pre-world” mode. Only merge changes to files that are necessary to successfully run ‘make installworld’ or ‘make installkernel’.
> etcupdate -p
Conflicts remain from previous update, aborting.
> etcupdate status
C /etc/ssh/sshd_config
> etcupdate diff
...
> etcupdate resolve
Resolving conflict in '/etc/ssh/sshd_config':
Select: (p) postpone, (df) diff-full, (e) edit,
(h) help for more options: h
(p) postpone - ignore this conflict for now
(df) diff-full - show all changes made to merged file
(e) edit - change merged file in an editor
(r) resolved - accept merged version of file
(mf) mine-full - accept local version of entire file (ignore new changes)
(tf) theirs-full - accept new version of entire file (lose local changes)
(h) help - show this list
Select: (p) postpone, (df) diff-full, (e) edit,
(h) help for more options: e
...
# Change to no to disable PAM authentication
<<<<<<< yours
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no
||||||| original
#ChallengeResponseAuthentication yes
=======
#KbdInteractiveAuthentication yes
>>>>>>> new
...
### das ändern wir in:
...
# Change to no to disable PAM authentication
#KbdInteractiveAuthentication yes
...
/var/db/etcupdate/conflicts/etc/ssh/sshd_config: 151 lines, 3774 characters.
Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved,
(h) help for more options: r
> etcupdate status
> etcupdate -p
> cd /usr/src && make installworld
> etcupdate -B
> shutdown -r now
===== FreeBSD 13.0 =====
* [[https://www.freebsd.org/releases/]]
* [[https://www.freebsd.org/releases/13.1R/installation/|FreeBSD 13.1-RELEASE Installation Instructions]]
* The freebsd-update(8) utility supports __binary upgrades__ of i386 and amd64 systems running earlier FreeBSD releases.
* Systems running 12.3-RELEASE or 13.0-RELEASE can upgrade as follows:
* ''# freebsd-update fetch''
* ''# freebsd-update install''
* Now the freebsd-update(8) utility can fetch bits belonging to 13.1-RELEASE. During this process freebsd-update(8) will ask for help in merging configuration files.
* ''# freebsd-update upgrade -r 13.1-RELEASE''
* ''# freebsd-update install''
* The system must now be rebooted with the newly installed kernel before the non-kernel components are updated.
* ''# shutdown -r now''
* After rebooting, freebsd-update(8) needs to be run again to install the new userland components:
* ''# freebsd-update install''
* At this point, users of systems being upgraded from earlier FreeBSD releases will be prompted by freebsd-update(8) to rebuild all third-party applications (e.g., ports installed from the ports tree) due to updates in system libraries.
* After updating installed third-party applications (and again, only if freebsd-update(8) printed a message indicating that this was necessary), run freebsd-update(8) again so that it can delete the old (no longer used) system libraries:
* ''# freebsd-update install''
* Finally, reboot into 13.1-RELEASE
* ''# shutdown -r now''
* [[https://www.freebsd.org/releases/12.1R/installation.html|Installation Instructions (FreeBSD 12.1-RELEASE) -> 2.2. Upgrading Using "FreeBSD Update"]]
Als erstes die [[::freebsd:Jail]]s anhalten.
===== Beispiel FreeBSD 13.0 =====
> echo "KERNCONF=MYKERNEL" >> /etc/src.conf
==== nur den Kernel neu bauen ====
> vi /usr/src/sys/amd64/conf/MYKERNEL
> cd /usr/src && make clean && make kernel
> reboot
### die zu bauenden Kernel festlegen in /etc/src.conf
# KERNCONF=MYKERNEL GENERIC
include GENERIC
ident MYKERNEL
nooptions DDB # Enable the ddb(4) kernel debugger
device nullfs
device nvram
#
device 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
#
device zfs
device sg
nooptions cxgbe # Chelsio T4-T6 1/10/25/40/100 Gigabit Ethernet
### IPv6 - mit "no" davor wird abgeschaltet
options INET6 # IPv6 communications protocols
device gif # IPv6 and IPv4 tunneling
### 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
#
options COMPAT_FREEBSD32 # Compatible with i386 binaries
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_FREEBSD9 # Compatible with FreeBSD9
nooptions COMPAT_FREEBSD10 # Compatible with FreeBSD10
options COMPAT_FREEBSD11 # Compatible with FreeBSD11
options COMPAT_FREEBSD12 # Compatible with FreeBSD12
==== das ganze System neu bauen ====
=== die System-Quellen komplett neu holen ===
GIT installieren
> cd /usr/ports/devel/git && make clean && make config-recursive && make && make install && make clean
System-Quellen neu saugen:
> rm -fr /usr/src/*
> cd /usr/src
> rm -fr .arcconfig .arclint .cirrus-ci/ .cirrus.yml .clang-format .git/ .gitattributes .github/ .gitignore
> git clone https://git.freebsd.org/src.git .
> git branch -a | head
> #git checkout releng/13.2
> git switch releng/13.2
> git branch -a | head
=== die System-Quellen aktualisieren ===
wenn die System-Quellen schon einmal mit GIT gesaugt wurden:
> cd /usr/src && make clean
> git pull
> sh /usr/src/sys/conf/newvers.sh -v
> vi /usr/src/sys/amd64/conf/MYKERNEL
> cd /usr/src && make clean && make buildworld && make installkernel
> reboot
> for A in squid minidlna postgresql dovecot nginx ; do service ${A} stop ; done
> cd /usr/src && make installworld && mergemaster -Ui
> make check-old;
> make delete-old;
> make check-old-libs;
> make delete-old-libs;
> reboot
=== die Pakete aus dem Ports-Tree aktualisieren ===
> portsclean -CDL
for PT in ${PKG_LISTE}
do
echo "#------------------------------------------------------------------------------#"
echo "### ${PT}"
cd /usr/ports/${PT} && make clean
cd /usr/ports/${PT} && make config
done
> portupgrade -arF
> portsnap fetch update
for PT in ${PKG_LISTE}
do
echo "#------------------------------------------------------------------------------#"
echo "### ${PT}"
#cd /usr/ports/${PT} && make config-recursive
cd /usr/ports/${PT} && make clean ; make && (make deinstall ; make install)
done
> portsclean -CDL
PKG_LISTE="
ports-mgmt/pkg
ports-mgmt/portupgrade
ports-mgmt/portmaster
ports-mgmt/psearch
shells/bash
editors/vim
sysutils/screen
misc/mc
misc/gnu-watch
sysutils/zfsnap
converters/base64
converters/unix2dos
converters/dosunix
ftp/wget
ftp/lftp
net/rsync
net/bmon
archivers/zip
archivers/p7zip
sysutils/dmidecode
sysutils/sysinfo
sysutils/smartmontools
sysutils/nvme-cli
sysutils/hwstat
www/squid
www/squidanalyzer
www/squidview
security/sudo
security/snoopy
security/openssl
security/mcrypt
sysutils/pwgen
sysutils/fusefs-ntfs
sysutils/fusefs-ext2
sysutils/e2fsprogs
sysutils/eject
sysutils/lsblk
sysutils/lsop
sysutils/lscpu
sysutils/bsdstats
sysutils/zeroer
sysutils/grub2-bhyve
sysutils/vm-bhyve
sysutils/ipmitool
sysutils/pcpustat
devel/pkgconf
mail/fetchmail
mail/fetchmailconf
textproc/pdftohtml
print/pstotext
print/psutils
print/ghostscript9-agpl-base
mail/dovecot
mail/maildrop
net-mgmt/iftop
net-mgmt/ipcalc
net-mgmt/sipcalc
graphics/p5-Image-ExifTool
databases/postgresql12-server
graphics/poppler-utils
net/samba${SAMBA_VERSION}
lang/php${PHP_VERSION}
graphics/php${PHP_VERSION}-gd
textproc/php${PHP_VERSION}-xml
archivers/php${PHP_VERSION}-zip
ftp/php${PHP_VERSION}-curl
ftp/curl
security/php${PHP_VERSION}-openssl
www/links
www/nginx
www/thttpd
net-im/py-matrix-synapse
audio/cdparanoia
audio/faac
audio/vorbis-tools
audio/lame
textproc/dict
sysutils/lsof
sysutils/bsdhwmon
sysutils/bsdinfo
audio/libsndfile
multimedia/ffmpeg
multimedia/libdvdread
multimedia/mplayer
sysutils/cpupdate
security/gnupg
graphics/ImageMagick7
multimedia/x264
multimedia/mediainfo
sysutils/dvdbackup
audio/vorbis-tools
multimedia/mkvtoolnix
multimedia/handbrake
sysutils/vobcopy
sysutils/dvd+rw-tools
net/minidlna
security/nmap
converters/p5-JSON-PP
sysutils/ezjail
emulators/linux-c7
multimedia/makemkv
===== ab FreeBSD 11.0-RELEASE =====
update FreeBSD 11.0-RELEASE
# freebsd-update fetch
# freebsd-update install
[[https://www.freebsd.org/releases/11.2R/installation.html|upgrade von FreeBSD 11.1 auf FreeBSD 11.2-RELEASE]]
# freebsd-update upgrade -r 11.2-RELEASE
# freebsd-update install
# freebsd-update install
# freebsd-update install
===== bis FreeBSD 10.3-RELEASE =====
FreeBSD 10.3-RELEASE (''[[https://forums.freebsd.org/threads/missed-upgrade-instructions-regarding-bspatch.58165/|: > /usr/bin/bspatch]]'')
# : > /usr/bin/bspatch
# freebsd-update upgrade -r 11.0-RELEASE
# freebsd-update install
# freebsd-update install
# freebsd-update install
===== Beispiel FreeBSD 8.0 =====
# uname -a
FreeBSD hostname 8.0-RELEASE-p4 FreeBSD 8.0-RELEASE-p4 #0: Sun Aug 29 22:00:45 CEST 2010 root@hostname:/usr/obj/usr/src/sys/GENERIC amd64
Wir haben also ein 8.0-er Release und wollen auf 8.1 aktuallisieren, das ging mit //cvsup// ganz gut
aber jetzt geht es mit //freebsd-update// deutlich besser... ;-)
Und das geht so, erstmal alles nötige für das neue Release saugen:
# freebsd-update -r 8.1-RELEASE upgrade
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching metadata signature for 8.0-RELEASE from update5.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files...
...
Jetzt werden einige Dateiunterschiede gezeigt, die man von Hand bearbeiten muss, aber das gibt es ja auch beim Update mit //cvsup//.
* [[http://www.denkrobat.de/wiki/index.php/FreeBSD_updaten]]
... dann den neuen Kernel installieren:
# freebsd-update fetch
# freebsd-update install
Installing updates...
Kernel updates have been installed. Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.
... mit dem neuen Kernel booten:
# reboot && exit
# uname -a
FreeBSD hostname 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 02:36:49 UTC 2010 root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
... jetzt den Rest installieren:
# freebsd-update install
Installing updates... done.
... mit dem neuen System booten:
# reboot && exit
Fertig!
=== Probleme ===
das Upgrade funktioniert nicht:
# freebsd-update -r 9.0-RELEASE upgrade
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching public key from update5.FreeBSD.org... failed.
Fetching public key from update4.FreeBSD.org... failed.
Fetching public key from update2.FreeBSD.org... failed.
Fetching public key from update3.FreeBSD.org... failed.
No mirrors remaining, giving up.
Die Ursache für diesen Fehler kenne ich noch nicht...
der Vollstädigkeithalber möchte ich nur erwähnen, dass man die Daten hier findet:
[[http://update.freebsd.org/9.0-RELEASE/amd64/pub.ssl]]:
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2kXIMh58KXUCk1siiXwG
tKk55IG2khASQbx7nL7Z9Mh0Ie4VnPV1REvchfYFz6gZV9cX7Yz9R7uyEac8NRXN
gKXGxnzF887CsjcTxWvsEoFqTLG57O4LSSm+MO3Sg4HuxnanifeWec9PNz150vU/
+q6s6XTtNHSysuo7XcBjczJigSBAMjdTEMCexiHKGZm0c9tyR4grA1TqSk2Agr9+
7F7SA4Ck8wjM7srFSlYoyxHZtTE+9vz0tx0/5v2VW11NN0RBNoY1F90CCL41Ln73
yqABPWTfAaJ6Z6oQMwNBc+Q2SoCzK76XgZosCWylj3rmzSPhdTcrvFVa0IsUc2Gr
wZImlJ7UtJYpVrKXDvOb1UG/2yQx8Eci+XyPhcgUahSN4Vidz9YyiD7qpf11VYhL
BFeHnkm9LsrBJil4wGuOpXUUzMiKxpR6g3gfMA7PcBK6erxzFzcJHI3KMN0m3PIW
szig8XxdLTc/e9XihPWqDbpGqNMjl9Tfz/nN2LXJA+acf41LenFIY7x4IkHrPM6D
UNU+PsR6F+FMg3VgiJ3lrJmssVqLZRD9MMu51JtrN2NK1uhmFJDK7ZkLefHjdfTh
1HOcIyd8rRt/m8LsbQcdFlg/BTeqoG+wHburoDn9z7HknB4DBxcyRGxHdJuBzytj
YKZHuFglSqt+29fNS/WXWTcCAwEAAQ==
-----END PUBLIC KEY-----
===== Jail =====
[[::freebsd:Jail#Update all Jail's]]