Zurückbehaltene Pakete unter Ubuntu aktualisieren

Unter Umständen kann es vorkommen, das bei einer Paketaktualisierung mittels apt folgende Meldung erscheint:

The following packages have been kept back:
grub-efi-amd64 grub-efi-amd64-bin grub-efi-amd64-signed gzip php8.1-bcmath php8.1-cli php8.1-common php8.1-curl php8.1-fpm php8.1-gd php8.1-gmp php8.1-imap php8.1-intl php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-phpdbg php8.1-readline php8.1-sqlite3 php8.1-xml php8.1-zip
0 upgraded, 0 newly installed, 0 to remove and 21 not upgraded.

Grund für diese Meldung kann unter anderem sein, das in der Abhängigkeitskette für eines der Pakete ein neues Paket dazugekommen ist. Daneben werden Pakete in der gleichen Version im Normalfall nicht noch einmal aktualisiert. Soll ein solches zurückgehaltenes Paket trotzdem installiert bzw. aktualisiert werden, so kann hierfür folgender Befehl genutzt werden:

apt install --only-upgrade php8.1-zip

Anschließend wird das Paket aktualisiert. Allerdings sollte diese Option mit Bedacht gewählt werden, da es unter Umständen zu Änderungen kommen kann, welche das System bzw. Teile davon in einem nicht funktionsfähigen Zustand zurücklassen, sodass anschließend nachkonfiguriert werden muss.

Formatierung in Ulysses ändert sich nach Aktualisierung

Ulysses ist eine großartige App zum Schreiben größerer Dokumente bis hin zu Büchern. Innerhalb der Applikation wird mit Markdown gearbeitet, welches dann entsprechend dargestellt wird. Dafür sind unter Ulysses sogenannte Themes zuständig. Über diese wird festgelegt wie das Markdown innerhalb der App dargestellt wird.

Die Einstellungen von Ulysses

In neueren Versionen werden Überschriften in unterschiedlichen Größen dargestellt, was ich gelinde gesagt als schrecklich empfinde. Allerdings ist dies kein Problem, da dass entsprechende Theme einfach angepasst werden kann und die Überschriften damit in der gleichen Größe angezeigt werden. Allerdings gibt es bei dieser Möglichkeit ein Problem. Wurde das Standardtheme (aktuell D22) angefasst, so wird dieses bei einer Aktualisierung der Anwendung wieder überschrieben.

‎Ulysses · Schreibprogramm
Preis: Kostenlos+
‎Ulysses | Schreibprogramm
Preis: Kostenlos+

Die Idee dahinter ist, dass das Standardtheme immer entsprechend aktuell gehalten wird, damit der Nutzer Neuerungen gleich sieht. Gelöst werden kann das Problem dadurch, das eine Kopie vom Standardtheme angelegt wird. Dieses kann dann nach den Wünschen des Nutzers angepasst werden. Die Änderungen werden bei einer Aktualisierung der Applikationen auch nicht mehr überschrieben.

WordPress CLI installieren und nutzen

Für das Content-Management-System WordPress existiert neben dem eigentlichen System auch eine separate Kommandozeile. Die hört auf den Namen WP-CLI und muss im ersten Schritt installiert werden:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp

Damit ist die WP-CLI installiert und kann über das Kommando:

wp --info

getestet werden. Um WP-CLI aktuell zu halten, kann das Kommando:

wp cli update

genutzt werden.

Grundsätzlich sollten die Befehle der WP-CLI im Kontext des Webserver-Nutzers ausgeführt werden. In den meisten Fällen ist dies www-data. Eine Ausnahme bilden die Befehle zur Installation und zur Aktualisierung. Wird versucht ein WP-CLI-Befehl unter dem root-Nutzer auszuführen, so erhält der Nutzer folgende Meldung:

Error: YIKES! It looks like you’re running this as root. You probably meant to run this as the user that your WordPress installation exists under.

If you REALLY mean to run this as root, we won’t stop you, but just bear in mind that any code on this site will then have full control of your server, making it quite DANGEROUS.

If you’d like to continue as root, please run this again, adding this flag: –allow-root

If you’d like to run it as the user that this site is under, you can run the following to become the respective user:

sudo -u USER -i — wp

Per sudo mit dem korrekten Nutzer ausgeführt funktioniert das Ganze:

sudo -u www-data wp transient delete --all
Success: 163 transients deleted from the database.

Mittels der WP-CLI lassen sich eine Reihe von Aufgaben bewerkstelligen. So verfügt die CLI über Methoden, um Kommentare zu erzeugen und zu verwalten. Mit dem Befehl:

wp comment delete $(wp comment list --status=spam --format=ids)

können z.B. alle Spam-Kommentare gelöscht werden. Über den core-Namespace können unter anderem WordPress-Updates vorgenommen werden:

wp core update

Vor allem im Zusammenhang mit einer Automation spielt WP-CLI seine Stärken aus. So können neue WordPress-Installationen angelegt werden und entsprechende Plugins automatisch installiert werden. In der Entwickler-Dokumentation von WordPress findet sich eine Referenz der Befehle der WP-CLI.

Entwickelt wird WP-CLI auf Github. Lizenziert ist das CLI unter der MIT-Lizenz und damit freie Software. Die offizielle Seite des Projektes ist unter wp-cli.org zu finden.

Update-Skript für elementaryOS

Unter elementaryOS nutze ich neben der integrierten Paketverwaltung unter anderem auch Snappy und Flatpak. Es ist zwar unschön das sich die zentrale Paketverwaltung dadurch etwas zersplittert, aber leider existieren nicht alle benötigen Pakete in der Paketverwaltung. Bedingt dadurch fand ich den Update-Prozess allerdings etwas umständlich, sodass ich das Ganze in ein kleines Skript gegossen habe:

#!/bin/bash
apt autoremove -y && apt autoclean -y && apt update -y && apt dist-upgrade -y && apt autoremove -y && apt autoclean -y
flatpak update -y
snap refresh 
checkrestart

Mit dem Skript wird die zentrale Paketverwaltung aktualisiert, anschließend Snappy und dann Flatpak. Für die Nutzung des Kommandos checkrestart muss das Paket debian-goodies installiert werden.

Probleme mit iOS 15 und 1Blocker

Seit dem Update auf iOS 15.1 hatte ich auf meinem iPhone ein seltsames Verhalten beobachtet. Sobald ich nur noch im Mobilfunk-Netz eingewählt war, konnten bestimmte URLs per DNS nicht mehr aufgelöst werden. Im Grunde fühlte es sich so an, als ob das halbe Internet nicht mehr erreichbar war.

Über die Einstellungen von 1Blocker kann das Problem umgangen werden

Nach einiger Analyse stellte ich dann fest, das die Probleme im Zusammenhang mit der App 1Blocker bzw. deren In-App-Tracker-Firewall, welche als lokales VPN unter iOS konfiguriert wird, standen.

‎1Blocker
Preis: Kostenlos+

Nach Auskunft des Entwicklers der App gab es unter iOS wohl einige Änderungen an den Einstellungen für mobiles Netzwerk, die auch die App betreffen. In den Einstellungen der Firewall von 1Blocker kann der Filtermodus auf HTTP Proxy gesetzt werden. Anschließend funktioniert die In-App-Tracker-Firewall auch bei mobilem Internet wieder.