BLog |
|
![]() |
|||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
FreeBSD 12.0 has been released - an update logUpdating FreeBSD to another major release is usually straightforward, however, since it is a yearly happening, I happen to forget the very details. On this actual occasion, here comes now the log of the update of a server system from FreeBSD 11.2-RELASE-p6 to FreeBSD 12.0-RELEASE: mount -rf / fsck -fy /dev/gpt/SYSTEM mount / tmux new "freebsd-update -r 12.0-RELEASE upgrade" freebsd-update install shutdown -r now freebsd-update install pkg-static bootstrap -f tmux new "~/bin/swr" freebsd-update install pwd_mkdb -p /etc/master.passwd shutdown -r now #!/bin/sh # swr - Software Restore shell script ### the list of the ports that shall be updated from sources portmake="\ security/cyrus-sasl2 \ devel/subversion \ devel/git \ " ### fetching updates of the FreeBSD ports tree /usr/bin/printf "\nFetching updates of the FreeBSD ports tree...\n" /usr/sbin/portsnap fetch update /usr/sbin/pkg version -v /usr/sbin/pkg updating -d `date -v-2w +%Y%m%d` ### ask and in case of y|Y run the updating processes /usr/bin/printf "\nDo you want to continue (y/n)? " save_stty_state=$(stty -g); stty raw -echo; answer=$(head -c 1); stty $save_stty_state if echo "$answer" | grep -iq "^y" ; then /usr/bin/printf "\n\n" /usr/sbin/pkg update pkgupgrd="" pkgslist="`/usr/sbin/pkg query %o`" for pkg in $pkgslist ; do for port in $portmake ; do if [ "$pkg" == "$port" ] ; then continue 2 fi done pkgupgrd="$pkgupgrd `/usr/sbin/pkg query %n $pkg`" done /usr/bin/printf "\nUpdating ports...\n" if [ "$portmake" != "" ] ; then cwd=$PWD py="py27-" for port in $portmake ; do cd "/usr/ports/$port" /usr/bin/make deinstall clean if [ "${port#$py}" != "$port" ]; then /usr/bin/make FLAVOR=py27 install clean else /usr/bin/make install clean fi done cd "$cwd" rm -rf /usr/ports/distfiles/* else echo "All installed ports are up-to-date." fi /usr/bin/printf "\nUpdating binary packages...\n" if [ "$pkgupgrd" != "" ] ; then /usr/sbin/pkg upgrade -fU $pkgupgrd else echo "All installed packages are up-to-date." fi /usr/bin/printf "\nCleaning up...\n" /usr/sbin/pkg clean -ay /usr/bin/find /usr/ports/distfiles -type f -mtime +4w -delete /usr/bin/find /usr/ports/distfiles -type d -depth +0 -and -empty -delete else /usr/bin/printf "\n\n" fi Copyright © Dr. Rolf Jansen - 2018-12-11 19:00:42 Discussion on Twitter: 1082836227974459392 |