Anpassungen von Anwendungen nach Debian Bookworm Upgrade: Unterschied zwischen den Versionen
K (Sprachliche Überarbeitung) |
K (Sprachliche Überarbeitung) |
||
Zeile 87: | Zeile 87: | ||
== Anpassungen an Java Anwendungen == | == Anpassungen an Java Anwendungen == | ||
=== Eigenes Java JDK installieren === | === Eigenes Java Development Kit (JDK) installieren === | ||
In Debian Buster lief Java 11. Unter Debian Bookworm steht Java 17 zur Verfügung. | |||
Für Anwendungen, die weiterhin Java 11 benötigen, kann es pro User oder pro Paket installiert werden. | Für Anwendungen, die weiterhin Java 11 benötigen, kann es pro User oder pro Paket installiert werden. | ||
Zeile 103: | Zeile 104: | ||
Eine weitere zuverlässige Quelle für eine freie Distribution des OpenJDK ist die Eclipse Foundation: https://adoptium.net/de/ | Eine weitere zuverlässige Quelle für eine freie Distribution des OpenJDK ist die Eclipse Foundation: https://adoptium.net/de/ | ||
Dann muss | Dann muss im Tomcat (z.B. bin/setenv.sh) oder in der systemd Service Datei die Variable JAVA_HOME gesetzt werden: | ||
JAVA_HOME=/home/pacs/xyz00/users/meinuser/bin/jdk-11 | JAVA_HOME=/home/pacs/xyz00/users/meinuser/bin/jdk-11 |
Version vom 30. Januar 2024, 09:20 Uhr
Wer ist für was verantwortlich?
Die Hostmaster aktualisieren das Betriebssytem.
Die Mitglieder sind für den Betrieb der eigenen Anwendungen im Userspace verantwortlich. Da dazu keine besonderen Rechte erforderlich sind, können die notwendigen Anpassungen vom technisch versierten Mitglied selbst vorgenommen werden.
Wenn das Mitglied die Anpassungen nicht selbst vornehmen kann oder will, kann ein Webmaster On Demand (WoD) Auftrag erteilt werden, damit ein Hostmaster eine Anwendung wieder zum Laufen bringt. Schreibt bitte einfach eine E-Mail an service@ und nennt die Anwendung, um die es geht, und in welchem Benutzer die Anwendung läuft.
Auf dieser Seite teilen wir Anleitungen, wie man die eigene Anwendung selbst wieder zum Laufen bringt.
Anpassungen an Python-Anwendungen
Achtung
Python 2.7 steht unter Debian 12 ("Bookworm") nicht mehr zur Verfügung!
Nach dem Upgrade müssen die meisten Python-Anwendungen angepasst werden.
Dazu muss das Virtual Environment gelöscht und neu angelegt werden, am besten mit der Standard Python-Version von Debian 12 (Bookworm). Das ist Python 3.11
Falls die Anwendung noch nicht mit Python 3.11 zurecht kommt, kann mit pyenv auch eine ältere Python-Version, z.B. 3.10 installiert werden: Eigenes_Python_installieren#Installation_mit_pyenv
Falls bereits mit pyenv eine eigene Python-Version installiert worden war, sollte diese gelöscht und nochmals installiert werden. Eventuell ist eine selbst installierte Python-Version aber auch nicht mehr nötig, und es kann mit der Version Python 3.11 vom Betriebssystem gearbeitet werden.
In der .profile oder .bash_profile sollte diese Variable gesetzt werden:
export PYTHONIOENCODING=utf-8
Änderungen beim Einsatz von Passenger und Python
Das Verhalten von Passenger auf Debian 12 Bookworm hat sich geändert: Es können nicht mehr die Parameter PassengerPython
oder PassengerFriendlyErrorPages
in der .htaccess
-Datei gesetzt werden. Das führt zu einem 500er Fehler.
Falls ein Virtual Environment benutzt wird, sollte folgender Eintrag in der .htaccess
Datei gesetzt werden:
SetEnv PYTHONPATH /home/pacs/xyz00/users/example/meinprojekt
Desweiteren sollte der Pfad zum Python-Binärprogramm in den Eigenschaften der Domain in HSAdmin konfiguriert werden, unter PassengerPython: z.B. /home/pacs/xyz00/users/example/.pyenv/versions/3.9.18/bin/python3
, oder bei einem Virtual Environment: /home/pacs/xyz00/users/example/meinprojekt/.venv/bin/python3
(Versionsnummer, User und Paket im Pfad anpassen)
Anpassungen an PHP Anwendungen
Achtung
Unter Debian 12 ("Bookworm") ist PHP 8.2 die Default Version. PHP 7.4 bleibt installiert.Auf Anfrage stellen wir auch PHP 8.0 und PHP 8.1 zur Verfügung.
In der .htaccess Datei müssen die Zeilen mit AddType und Action für PHP entfernt werden:
nano doms/meinedomain.de/.htaccess # diese Zeilen entfernen: AddType application/x-httpd-php81 .php Action application/x-httpd-php81 /fastcgi-bin/phpstub81
Wenn bisher nur der voreingestellte phpstub verwendet wurde, lief die Seite bisher auf PHP 7.4. Nun würde sie auf PHP 8.2 laufen. Falls die Anwendung das nicht unterstützt, muss für die Domain in HSAdmin die gewünschte PHP Version in der Liste bei "FastCGI PHP-Interpreter" gewählt werden.
Anpassungen an Ruby Anwendungen
Die meisten Ruby Anwendungen werden mit rbenv betrieben. Das funktioniert nach dem Upgrade auf Debian 12 Bookworm nicht mehr, wegen Inkompatibilitäten bei der OpenSSL-Bibliothek.
Daher muss die rbenv-Umgebung neu installiert werden, siehe RubyRBEnv.
Es müssen auch meistens die Ruby Gems neu installiert werden.
# erst löschen rm -Rf ~/.gem/ rm -Rf ~/.bundle rm -Rf ~/.local/state/gem/ # dann installieren cd meineapp # z.B. zammad export RAILS_ENV="production" bundle install
Falls Passenger zum Einsatz kommt: Das Verhalten von Passenger hat sich geändert. Einträge mit Passenger dürfen nicht mehr in doms/meinedomain.de/.htaccess
stehen. Sie müssen dort auskommentiert werden.
In HSAdmin kann im Dialog "Domain ändern" eingestellt werden, welche Ruby Version verwendet werden soll.
Es kann entweder die vorinstallierte Ruby Version verwendet werden, oder eine Ruby Version unter einem Pfad wie /home/pacs/xyz00/users/example/.rbenv/shims/ruby
.
Anpassungen an Node.js Anwendungen
Es muss das Verzeichns .nvm
im Home Verzeichnis gelöscht werden, und node_modules
im Projekt.
Dann Node wieder neu installieren, siehe NodeJS.
Dann yarn install
bzw andere Befehle ausführen, um die Node Module wieder zu installieren.
Falls Passenger zum Einsatz kommt, da hat sich das Verhalten von Passenger geändert. Die Einträge mit Passenger dürfen nicht mehr in doms/meinedomain.de/.htaccess
stehen, und müssen dort auskommentiert werden.
In HSAdmin kann im Dialog "Domain ändern" eingestellt werden, welche Node Version verwendet werden soll.
Es kann entweder die vorinstallierte Node Version verwendet werden, oder eine Node Version unter dem Pfad z.B. /home/pacs/xyz00/users/example/.nvm/versions/node/v20.11.0/bin/node
.
Anpassungen an Java Anwendungen
Eigenes Java Development Kit (JDK) installieren
In Debian Buster lief Java 11. Unter Debian Bookworm steht Java 17 zur Verfügung.
Für Anwendungen, die weiterhin Java 11 benötigen, kann es pro User oder pro Paket installiert werden.
Ältere JDKs können hier als Binary für Linux/x64 heruntergeladen werden: https://jdk.java.net/archive/
Ein Beispiel für JDK 11:
mkdir ~/bin cd bin wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz tar xzf openjdk-11.0.2_linux-x64_bin.tar.gz
Eine weitere zuverlässige Quelle für eine freie Distribution des OpenJDK ist die Eclipse Foundation: https://adoptium.net/de/
Dann muss im Tomcat (z.B. bin/setenv.sh) oder in der systemd Service Datei die Variable JAVA_HOME gesetzt werden:
JAVA_HOME=/home/pacs/xyz00/users/meinuser/bin/jdk-11
Eigenen Tomcat installieren
Bei Debian Buster lief Tomcat 9, auf Debian Bookworm steht Tomcat 10 zur Verfügung. Die beiden Versionen sind nicht kompatibel. Tomcat 9 implementiert Java EE 8; bei Tomcat 10 ist es Jakarta EE 9. Aus lizenzrechtlichen Gründen wurden alle Java-Packages aus den Java-EE-Spezifikationen von javax.
nach jakarta.
umbenannt.
Für eigene Anwendungen empfehlen wir, die Software entsprechend anzupassen und neu zu kompilieren. Für Software aus anderen Quellen kann das Tool javax2jakarta
diesen Schritt in der Regel leisten.
Wenn die Migration nicht möglich oder nicht gewünscht ist, kann leicht ein vollständiger Tomcat 9 pro User installiert werden.
Ältere Versionen von Tomcat sind hier zu finden: https://tomcat.apache.org/download-90.cgi
mv tomcat tomcat.bak wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz mv apache-tomcat-9.0.84 tomcat cp tomcat.bak/conf/server.xml tomcat/conf/ cp tomcat.bak/conf/setenv.sh tomcat/conf/ cp -R tomcat.bak/webapps tomcat
Darauf achten, ob noch weitere Konfigurationsdateien kopiert werden müssen, und Anpassungen an der context.xml und web.xml übernommen werden müssen.
Anpassungen an Redis Diensten
Falls ein Redis Dienst läuft, bitte kontrollieren, ob er noch richtig funktioniert.
Gegebenenfalls müssen in der Datei redis.conf
die relativen Pfade zu absoluten Pfaden geändert werden, wenn die nicht schon bereits absolute Pfade sind (z.B. logfile
, unixsocket
, dir
)
Aktualisierung von MongoDB
MongoDB wird bei uns nicht vom Betriebssystem bereitgestellt.
Falls MongoDB verwendet wird, müssen neue Binaries heruntergeladen werden. Dabei ist die Version für Ubuntu 22.04 zu verwenden, da es keine Version für Debian 12 (Bookworm) gibt: siehe https://www.mongodb.com/try/download/community