Ubuntu 22 auf dem Raspberry Pi

… für Nextcloud

Ein weiterer Beitrag aus der Rubrik „Notizen über Computerkram für mich selbst“.

Raspberrypios kommt aktuell von Haus aus noch mit PHP 7. PHP lässt sich mit einer externen Paketquelle auf 8.0 bringen. Nextcloud wird für die kommende Version aber PHP 8.1 und ein 64-Bit-Betriebssystem brauchen. Daher sollte Ubuntu 22.04 LTS 64 Bit auf einen Raspi 3 kommen.

Der Pi-Imager kann direkt Einstellungen wie Benutzername, SSH-Public Key, WLAN-Kennung und Passwort usw. übertragen und tut dies mit cloud-init. Dies kann später zu Überraschungen führen, da Änderungen in Ubuntu, die an den sonst üblichen Stellen vorgenommen werden, beim nächsten Start von cloud-init wieder zurückgesetzt werden. Dies war der erst Punkt, der mich Nerven gekostet hat. Da cloud-init meiner Auffassung nach wenn die Ersteinrichtung erledigt ist an sich nicht mehr gebraucht wird, habe ich mich entschieden, cloud-init zu entfernen.

sudo apt remove cloud-init

Der zweite Punkt, der mich Nerven gekostet hat, war, dass aus welchen Gründen auch immer der Raspi nun so konfiguriert war, dass er zwar die WLAN-Zugangsdaten über cloud-init vom Imager vorher korrekt bekommen hat, aber die LAN-Buchse nicht aktiv ist!

Das Netzwerk kann über netplan konfiguriert werden, cloud-init hinterlässt die Datei /etc/netplan/50-cloud-init.yaml für die Konfiguration von netplan, die auch die WLAN-Daten enthält, allerdings keinen Eintrag für die LAN-Buchse.

Über den NetworkManager geht das ganze sorgenfrei, allerdings ist der erst Mal nicht installiert. Also:

sudo apt install network-manager

Jetzt erst mal nen gescheiten Editor installieren:

sudo apt install emacs

Dann in der Datei /etc/netplan/50-cloud-init.yaml nach network: und vor wifis: die Zeile

renderer: NetworkManager

einfügen und weiter unten renderer: networkd auskommentieren oder löschen.

sudo emacs /etc/netplan/50-cloud-init.yaml

Noch eine kleine Aufzählung von Paketen, die ich für Nextcloud auf Apache sowie für Dateiverschlüsselung und für Let’s Encrypt installieren musste:

sudo apt install mariadb-server apache2 php
sudo apt install php-mysql php-xml php-zip php-mbstring
sudo apt install php-curl php-gd php-imagick
sudo apt install php-gmp php-bcmath php-intl
sudo apt install cryptsetup
sudo apt install ecryptfs-utils
sudo apt install certbot
sudo apt install python3-certbot-apache

Und nun noch das Zertifikat holen:

sudo certbot --apache

Nun sollte alles bereit sein. Nextcloud installiere ich nicht über eine Paketquelle sondern kopiere es in /var/www/html/nextcloud/ Den Owner stelle ich auf…

sudo chown -R www-data:www-data /var/www/html

Sofern das Nextcloud-Datenverzeichnis woanders liegt muss das dem selben User gehören.