Aktualisierung auf Debian 12.5 und 11.9
Nach rund 12 Stunden intensiver Arbeit hat das Debian Release Team die Point Releases Debian 11.9 (Oldstable) und 12.5 (Stable) herausgegeben.
Nach rund 12 Stunden intensiver Arbeit hat das Debian Release Team die Point Releases Debian 11.9 (Oldstable) und 12.5 (Stable) herausgegeben.
Das Debian-Projekt hat das Debian 12.5 Update veröffentlicht, das wichtige Sicherheits-Patches enthält. Diese Aktualisierung, die genau zwei Monate nach der vorherigen Version 12.4 erfolgt, ist die fünfte in der stabilen “Bookworm”-Serie. Hauptbestandteil dieses Updates sind Fehlerkorrekturen und Sicherheits-Patches, da Debian bei seinen kleineren Veröffentlichungen den Fokus auf die Stabilität des Systems legt ohne neue Funktionen...
Der Beitrag Debian GNU/Linux 12.5 veröffentlicht erschien zuerst auf MichlFranken.
Ab sofort darfst Du einen Veröffentlichungskandidaten von Tails 6.0 testen. Offiziell soll die spezielle Linux-Distribution am 27. Februar 2024 veröffentlicht werden. Bis 18. Februar sammelt das Team Feedback und kann noch Verbesserungen einpflegen. Tails 6.0 wird die erste Version von Tails sein, die auf Debian 12 Bookworm und GNOME 43 basiert. Die meiste der in Tails enthaltene Software wird aktualisiert. Zudem gibt es auch Verbesserungen bei der Benutzerfreundlichkeit und neue Funktionen. Hier ein Überblick zu den neuen Funktionen: Externe Laufwerke […]
Der Beitrag Tails 6.0 RC1 darf getestet werden – tolle neue Funktionen ist von bitblokes.de.
Heute möchte ich noch einmal ein Thema aus der Mottenkiste holen, welches ja eigentlich schon abgehakt sein sollte. Es geht um das Upgrade von Raspbian 10 auf das Raspberry Pi OS 11.
Anlass des Ganzen ist unsere Community-Cloud mit über 25 Nutzern. Diese Cloud wurde vor über fünfeinhalb Jahren zum Zwecke des Datenteilens ins Leben gerufen. Durch einen bedingten öfteren Standortwechsel verblieb das System auf einem Softwarestand von vor über zwei Jahren. Jetzt im neuen Zuhause stand dadurch ein gründlicher Tapetenwechsel an. D.h., dass im ersten Schritt das Betriebssystem auf Raspberry Pi OS 11 Bullsleye angehoben werden musste, bevor die Nextcloud von Version 22 auf 27 aktualisiert wurde. Weiterhin musste parallel PHP 7.3 auf Version 8.1 gezogen werden, um wieder in sicheres Fahrwasser zu gelangen. Bei der Hardware handelt es sich um einen Raspberry Pi 3 Model B. Auch dieses Gerät soll im laufe des Jahres noch ein Refresh erhalten.
Nun zum Upgrade auf das erwähnte Raspberry Pi OS 11.
Hilfreich bei der Installation war die Anleitung von linuxnews.de, die ich abschließend noch um zwei Punkte ergänzen musste. Hierbei konnte ich mich noch an mein erstes Upgrade dieser Art erinnern, dass es zu Unverträglichkeiten mit dem Desktop kam. Dieses Problem wird ganz am Ende des Artikels behandelt.
Zuerst wurde ein vollständiges Upgrade auf die aktuellste Version Raspbian 10 durchgeführt.
sudo apt update sudo apt full-upgrade sudo rpi-update
Danach wurden die Quellen auf Bullseye angepasst.
sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list.d/raspi.list
Im Anschluss folgte ein Update der Quellen und die erforderliche Installation von gcc-8.
sudo apt update && sudo apt install libgcc-8-dev gcc-8-base sudo apt full-upgrade sudo apt -f install
Danach wurden unnötige Pakete und verbliebene heruntergeladene Pakete entfernt.
sudo apt autoremove sudo apt clean
Nun mussten noch die Kernelbased Mode-Setting (KMS) in der /boot/config.txt angepasst werden. Hierzu wurden folgende zwei Befehle ausgeführt:
sudo sed -i 's/dtoverlay=vc4-fkms-v3d/#dtoverlay=vc4-fkms-v3d/g' /boot/config.txt sudo sed -i 's/\[all\]/\[all\]\ndtoverlay=vc4-kms-v3d/' /boot/config.txt
Nach dem Reboot mit angeschlossenem Monitor fiel auf, dass sich das Programm Parcellite in der Menüleiste verewigt hatte. Parcellite war vor dem Systemupgrade auf Raspberry Pi OS 11 Bullseye nicht an Bord. Aus diesem Grund konnte es auch ohne Bedenken gelöscht werden.
sudo apt remove parcellite
Weiterhin fiel auf, dass die ganze Menüleiste des Desktops etwas vermurkst aussah. Diese wurde auf die Grundeinstellungen mit
cd ~/ sudo rm -rf .cache
zurückgesetzt.
Nach einem erneuten Reboot läuft Raspberry Pi OS 11 wie gewünscht.
sudo reboot


Um unsere Community-Cloud wieder sicher zu machen, war ein wenig Wochenendarbeit nötig. Die so investierte Zeit hat sich aber durchaus gelohnt. Im nächsten Schritt erfolgt dann der Tausch des Raspberry Pi und ein Wechsel der Daten-SSD gegen ein größeres Modell.
Viele von euch haben mich oft gefragt, wie ich meine Desktops anpasse, wenn sie meine Anpassungen in den Videos sehen. Aus diesem Grund präsentiere ich heute ein etwas anderes Format, in dem ich euch zeige, wie ich meine Desktops gestalte. Kurze Zusammenfassung der Ausgangslage: Dies ist eine Fortsetzung meines Beitrags von 2020 über die Anpassung...
Der Beitrag Linux Desktop wie Windows oder macOS – so passe ich Gnome und Cinnamon an erschien zuerst auf MichlFranken.
Mozilla hat nach eigenen Angaben nach monatelangen Testphasen ein neues Paket für Firefox unter Linux veröffentlicht, das speziell für Ubuntu, Debian und jede Debian-basierte Distribution passt.
Ab Mozilla Firefox 122 bietet das Unternehmen nun ein .deb Paket für Linux an. Du kannst den Browser damit unter Ubuntu und Derivaten wie Linux Mint sowie Debian und Derivaten installieren. Mozilla hat eine Anleitung zur Verfügung gestellt, wie Du Firefox als .deb unter Debian, Linux Mint oder Ubuntu und so weiter installieren kannst. Der Vorteil der hier gezeigten Methode ist, dass Du immer die aktuelle Version von Firefox erhältst, sobald sie veröffentlicht wurde. Du musst unter Ubuntu auch nicht […]
Der Beitrag Firefox .deb Paket unter Linux Mint, Ubuntu, Debian … installieren ist von bitblokes.de.
Mit der neuen Version 122 des Browsers Firefox bringt Mozilla Verbesserungen und Bugfixes.
Unter dem Motto „Zeichen setzen“ finden am 16. und 17. März 2024 wieder die Chemnitzer Linux-Tage statt. Die Veranstalter hoffen wieder auf einen großen Zuspruch im Hörsaalgebäude der TU Chemnitz an der Reichenhainer Straße.
Eintrittskarten zur Veranstaltung wird es im Vorverkauf geben. Da die Anzahl der Tickets aber begrenzt ist, wird es an der Tageskasse nur Restkarten geben.
Auch 2024 haben sich die Chemnitzer Linux-Tage einen Platz an einem März-Wochenende gesucht. Also Kalender gezückt und den 16. und 17. März 2024 dick einkreisen! Es lohnt sich bestimmt.
Eintrittskarten sind an der Tageskasse erhältlich.
Wir freuen uns sehr, euch im März vor Ort in Chemnitz in gewohnter Umgebung wiederzusehen. Über unsere Pressemitteilungen, Social Media könnt ihr euch diesbezüglich auf dem Laufenden halten.
Quelle: chemnitzer.linux-tage.de
Die ursprünglich für wiederaufbereitete Rechner gedachte Desktop-Distribution Emmabuntüs aktualisiert die enthaltene Software und verbessert die Dokumentation.
Debian hat in einer Wahl zwischen drei Vorschlägen entschieden, wie sich das Projekt zum von der EU vorangetriebenen Cyber Resilience Act stellen soll.
PHP-FPM (FastCGI Process Manager) ist eine leistungsstarke Erweiterung für den PHP-Interpreter, die die Ausführung von PHP-Skripten optimiert und verbessert. Entwickelt, um die Skalierbarkeit von PHP-basierten Webanwendungen zu erhöhen, spielt PHP-FPM eine entscheidende Rolle in modernen Webserver-Umgebungen.
Traditionell wurde PHP als Modul für Webserver wie Apache bereitgestellt. Dieser Ansatz hatte jedoch seine Einschränkungen, insbesondere wenn es um die Verwaltung von Ressourcen und die Skalierung von Webanwendungen ging. PHP-FPM wurde als Lösung für diese Herausforderungen entwickelt, indem es die FastCGI-Protokollspezifikation implementiert und PHP-Skripte als separate Prozesse ausführt.
PHP-FPM ermöglicht eine effiziente Verwaltung von Ressourcen, indem es separate Prozesse für jede Anforderung erstellt. Dadurch wird der Arbeitsspeicher besser genutzt und die Gesamtleistung der Webanwendung verbessert.
Durch die Nutzung von PHP-FPM können Webentwickler ihre Anwendungen leichter skalieren, da sie die Anzahl der gleichzeitig ausgeführten PHP-Prozesse steuern können. Dies ist besonders wichtig in Umgebungen mit starkem Datenverkehr.
Jede PHP-Anwendung wird in ihrem eigenen Prozess isoliert, wodurch Konflikte zwischen verschiedenen Anwendungen vermieden werden. Dies trägt zur Stabilität des Gesamtsystems bei.
PHP-FPM bietet eine umfangreiche Konfiguration, die es Administratoren ermöglicht, Parameter wie Prozessprioritäten, Anzahl der Kinderprozesse und andere Einstellungen zu optimieren.
Die Konfiguration von PHP-FPM erfolgt über die php-fpm.conf-Datei und optionale Pool-Konfigurationsdateien. Administratoren können Parameter anpassen, um die Leistung und Ressourcennutzung nach den Anforderungen ihrer Anwendung zu optimieren.
Die Integration von PHP-FPM in Webserver wie Nginx oder Apache erfolgt durch die Konfiguration von FastCGI-Servern. Dies ermöglicht eine reibungslose Kommunikation zwischen dem Webserver und PHP-FPM.
PHP-FPM hat sich als wesentliches Werkzeug für die Verwaltung von PHP-Anwendungen in produktiven Umgebungen etabliert. Durch die Bereitstellung von effizienter Ressourcennutzung, Skalierbarkeit und Anwendungsisolierung spielt PHP-FPM eine Schlüsselrolle bei der Gewährleistung der Leistungsfähigkeit von PHP-Webanwendungen. Bei der Entwicklung und Verwaltung von Webanwendungen ist es wichtig, die Vorteile von PHP-FPM zu verstehen und richtig zu konfigurieren, um eine optimale Leistung zu gewährleisten.
Das Debian-Release-Team hat beschlossen, dass es an der Zeit ist, die 32-Bit-Architektur aufzugeben. Das betrifft Kernel, Installer und ISO-Images.
Ab sofort funktioniert Armbian auch für den Raspberry Pi 5. Es wurden Images zur Verfügung gestellt, die entweder auf Debian oder Ubuntu basieren. Genauer gesagt basieren die Abbilder entweder auf Debian GNU Linux 12 Bookworm oder Ubuntu 22.04 LTS Jammy Jellyfish. Bezüglich Desktop-Umgebungen gibt es die Abbilder mit GNOME, KDE Plasma, Cinnamon, Xfce und i3. Die auf Debian basierende Version ist mit den vorinstallierten Desktop-Umgebungen GNOME, Xfce und Cinnamon verfügbar. Die Ubuntu-basierten Images gibt es mit den Desktop-Umgebungen Cinnamon, KDE […]
Der Beitrag Armbian nun auch für den Raspberry Pi 5 ist von bitblokes.de.
Das ging schnell. Im Debian Stable Zweig ist ein Fehler passiert. Ein zur Veröffentlichung freigegebner Kernel führte unter Umständen zu korrupten Daten in Verbindung mit Verwendung von Ext4 Dateisystem. Umgehend nach Bekanntwerden des Problems informierte das Debian Projekt über den Umstand und nahm das problematische Image offline und warnte die Nutzer mit automatischen Aktualisierungen vor...
Der Beitrag Wochenendarbeit: Debian bereinigt Kernel Problem und bringt Debian 12.4 heraus erschien zuerst auf MichlFranken.
Debian 12.4 »Bookworm« behebt unter anderem eine Regression im Kernel, die bei Verwendung von ext4 als Dateisystem zu Datenverlust führen konnte.
Die Debian Entwickler warnen derzeit vor Updates bei Debian 12. Grund ist eine Regression im Kernel 6.1.64-1, die unter Umständen zu Datenverlust führen kann.
Die geplante Veröffentlichung von Debian 12.3 wurde vorübergehend auf Eis gelegt, nachdem ein kritischer Fehler im Linux-Kernel 6.1.64-1 entdeckt wurde, der potenziellen Datenverlust auf Systemen mit ext4-Dateisystemen verursachen kann. Der Fehler, mit der Identifikationsnummer #1057843 dokumentiert, birgt das Risiko von Datenbeschädigung. Als Reaktion darauf hat das für die Veröffentlichung von Debian 12.3 verantwortliche Team beschlossen,...
Der Beitrag Warnung vor Debian 12.3: Datenbeschädigung mit Ext4 Dateisystem im Kernel 6.1.64-1 möglich erschien zuerst auf MichlFranken.
Der Black Friday ist für den Einzelhandel ein willkommenes Datum, um Waren an den Mann bzw. die Frau zu bringen. In dieser Zeit wird Lagerware abverkauft, um Platz für Neues zu schaffen. Der Endverbraucher profitiert meist durch Rabatte und Nachlässe auf interessante Artikel.
Angelockt durch solch ein Angebot, habe ich mir eine externe 2TB-SSD zugelegt, um den Speicher meiner Nextcloud zu erweitern. Im Vorfeld hatte ich mir hierzu schon einige Gedanken gemacht, wie ich die alte 500GB SSD durch das neue und größere Speichermedium ersetze.

Die perfekte Lösung für mich war das Duplizieren der Quelle mit Clonezilla. Hierbei wurden beide Festplatten an den Rechner angeschlossen, Clonezilla gestartet und mit device-device ein Duplikat erstellt. Bei diesem musste dann nur noch die Partition vergrößert werden. Da der Zielfestplatte die selbe UUID vergeben wurde, waren im Anschluss keine weiteren Maßnahmen erforderlich.

Mozilla bietet seine kuratierten Debian-Pakete für Firefox jetzt auch als Beta und Dev-Edition an. Das Repository wird künftig auch die finalen Versionen beherbergen.
Heute möchte ich zeigen, wie ich meine Nextcloud mit dem Virenscanner ClamAV ausgerüstet habe. Da eine Cloud ja ein guter Verteiler von Daten ist, kann es schnell vorkommen, dass man mit einer Synchronisation viele Endgeräte unbeabsichtigt mit einem Virus infiziert. Um dies zu verhindern, bietet Nextcloud die App Antivirus for files aus dem hauseigenen App store an. Zur Nutzung der App sind jedoch ein paar Vorbereitungen auf dem Server nötig.
Da ich im privaten Alltag ausschließlich mit Linux arbeite, mache ich mir i.d.R. kaum wirkliche Sorgen um Viren, Trojaner und Co. Trotzdem möchte ich meine Cloud im höchsten Maße absichern und das System weiter härten.
Diese Anleitung bezieht sich auf eine Nextcloud-Instanz, welche auf einem Raspberry Pi mit Rasberry Pi OS gehostet ist und zeigt einen guten Ansatz, um die Verteilung von Viren zu verhindern.
Zuerst installiert man die Pakete clamav, clamav-freshclam und clamav-daemon mit folgendem Befehl.
sudo apt install clamav clamav-freshclam clamav-daemon -y
Im Anschluss muss der Dienst clamav-freshclam nochmals gestoppt werden, um die Virus-Datenbank aufzufrischen. Danach wird der Service erneut gestartet.
sudo service clamav-freshclam stop sudo freshclam sudo service clamav-freshclam start
Die Abfrage der Datenbank wird per Standard nun 12 Mal pro Tag automatisch ausgeführt.
Ein Check via
sudo service clamav-freshclam status
zeigt, ob der Dienst ordnungsgemäß läuft. Die Ausgabe sollte wie im Screenshot aussehen.

Ein weiterer Test gibt Aufschluss, ob der clamav-daemon ebenfalls korrekt arbeitet.
sudo service clamav-daemon status

Da dies bei mir nicht auf Anhieb funktionierte, musste ich diesen Service nochmals neu starten.
Dies erledigt man mit dem Befehl:
sudo service clamav-daemon restart
Natürlich sollte jetzt noch einmal der Status, wie zuvor erwähnt, abgefragt werden. Wenn beide Dienste fehlerfrei durchlaufen, kann man sich nun der Konfiguration der zuvor erwähnten App in der Nextcloud widmen.
Nachdem beide Dienste korrekt arbeiten, installiert man die App Antivirus for files (Antivirus für Dateien). Unter Verwaltung -> Sicherheit wählt man folgende Einstellungen. Im Feld „Wenn infizierte Dateien während eines Hintergrund-Scans gefunden werden“ kann zwischen „Nur loggen“ oder „Datei löschen“ gewählt werden, wie mit einer infizierten Datei umgegangen werden soll.

Das Abspeichern der Einstellungen sollte mit einem grünen „Gespeichert“ protokolliert werden. Wer das Ganze testen möchte, kann sich hierzu (Vorsicht: auf eigene Gefahr) einen Testvirus von eicar.org herunterladen und diesen in die Nextcloud hochladen.
Auf Windows-Systemen ist äußerste Vorsicht geboten, da man hier schnell vom eigenen Virenscanner in Quarantäne gesetzt wird. Diesen Test sollten nur Experten durchführen!
Der Cyber Resilience Act wird zurzeit im EU-Parlament abschließend beraten und als Gesetz vorbereitet. Debian äußert Bedenken über die Folgen für Freie Software.
Heute möchte ich über ein sinnvolles und relativ schnell nachzurüstendes Feature zur Nextcloud berichten. Der zeitliche Aufwand beträgt nur wenige Minuten, ist aber zum Schutz der eigenen Daten eine gut investierte Zeit.
Ab und zu kam es vor, dass ich mich aus meiner Cloud nicht richtig abgemeldet, sondern nur den Browser geschlossen hatte. Beim nächsten Aufruf meiner Nextcloud stellte ich fest, dass ich plötzlich im Datenbereich bin, ohne mich vorher eingeloggt zu haben.
Mein Gedanke: Was würde passieren, wenn ein Unberechtigter so Zugriff auf alle in einer Cloud abgelegten Daten bekommt? Nicht auszudenken, der Schaden wäre wohl immens.
Damit dies nicht vorkommt, ist es sinnvoll ein Auto Logout einzurichten. Hierzu öffnet man als Erstes die config.php der Nextcloud
sudo nano /var/www/html/nextcloud/config/config.php
und trägt die folgenden Werte am Ende ein.
'remember_login_cookie_lifetime' => 1296000, 'session_lifetime' => 3600, 'session_keepalive' => false, 'auto_logout' => true,
Eine Session wird auf 30 Minuten sowie die Lebensdauer des Login-Cookies auf 15 Tage begrenzt. Diese Werte können natürlich den eigenen Wünschen und Gegebenheiten angepasst werden.
Dabei gilt zu beachten, dass die session.gc_maxlifetime in der php.ini >= der eingestellten session_lifetime sein muss. Dazu öffne ich die php.ini von PHP 8.1 FPM
sudo nano /etc/php/8.1/fpm/php.ini
und setze den Wert auf 3600.
session.gc_maxlifetime = 3600
Nun muss PHP bzw. der Webserver neu gestartet werden, um die Änderungen wirksam umzusetzen.
sudo service php8.1-fpm restart
Ein geschlossener Browser führt nun, wie gewünscht, zu einem Auto Logout.
Vor über 10 Jahren hatte ich im Artikel „QCad getestet“ darüber berichtet, ob die AutoCAD-Alternative QCAD (inzwischen mit vier großen Buchstaben geschrieben) im Baustellenalltag einer Straßenbaufirma einsetzbar wäre. Da man aber zu dieser Zeit keine Koordinaten punktgenau abgreifen konnte, habe ich das Projekt nicht weiter verfolgt.
Mit der aktuellen Version 3.28 sieht dies jedoch ganz anders aus. QCAD stellt nun tatsächlich eine Alternative zu anderen kommerziellen Programmen dar und ist durchaus für Bauleiter und Poliere geeignet, um Aufmaße zu erstellen bzw. kleinere Absteckungen vorzunehmen.
Es gibt zwei verschiedene Versionen von QCAD, zum einen QCAD Professional und zum anderen die freie und kostenlose QCAD Community Edition. Um die CAD-Software unter Ubuntu/Debian zu installieren, lädt man die aktuelle Version als „QCAD Demo“ herunter und führt das Installationsscript aus. Dazu wechselt man in das Download-Verzeichnis, wo die heruntergeladene Version liegt, macht das Script ausführbar
chmod +x qcad-*
und installiert mit
./qcad-*
die Software. Nun hat man 15 Minuten Zeit sich die Pro-Version genauer anzusehen. Ich persönlich finde die Zeit etwas kurz bemessen, um sich einen genauen Überblick über die Vollversion zu verschaffen. Nach Ablauf der erwähnten 15 Minuten wird über ein Widget angezeigt, dass die Testphase abgelaufen ist.
Nun kann man sich entscheiden die Pro-Version zu kaufen oder stattdessen auf die Community-Edition downzugraden. QCAD Professional verfügt über einen größeren Funktionsumfang, wie z.B. der Triangulation oder des DWG-Supports.
Wie aus der Demo eine Community Edition wird, beschreibt der schweizer Entwickler folgendermaßen:
Wenn Sie die kostenlose Open Source QCAD Community Edition verwenden möchten, können Sie die Demoversion für Ihre Plattform herunterladen (siehe oben) und dann das QCAD Professional Add-On entfernen (klicken Sie im Widget „Testversion“ auf „Entfernen“ und folgen Sie den Anweisungen auf dem Bildschirm). Alternativ können Sie die QCAD Community Edition von den Quellen unten selbst kompilieren.
Quelle: https://qcad.org/de/download
Das Ganze lässt sich also relativ leicht realisieren. Hierzu sind einfach die Hinweise im Widget (nach Ablauf der Testphase) zu befolgen. Dies bedarf dem Löschen einiger Dateien im Installationspfad (siehe Grafik).

Ich habe mich für diesen Test bewusst für die für mich ausreichende Community-Variante entschieden, da diese alle Features beinhaltet, die ich zum Arbeiten benötige.

Hier möchte ich einige wichtige Funktionen zeigen, die mir für den produktiven Einsatz genügen. Zum einen geht es um das Abgreifen von Koordinaten. Im gezeigten Beispiel können Koordinaten an einen Rover übergeben werden, um eine Bordanlage exakt auf der Baustelle abzustecken.

Eine andere wichtige Anwendung ist das Messen von Entfernungen im Lageplan.

Ein weiteres Tool hilft dabei, Flächen in Plänen zu messen. Dies geht ganz einfach in der linke Symbolleiste über Informationswerkzeuge -> Polygon Fläche.

QCAD ist ein wirklich gutes Anwendungsprogramm, welches sich durchaus für den Baustelleneinsatz eignet. Der Preis von 40€ für die Vollversion ist im Gegensatz zu Preisen, die Mitbewerber aufrufen, ein echtes Schnäppchen.
OB diese Anwendung in einem Ingenieurbüro allerdings mit den großen CAD-Programmen mithalten kann, kann ich nicht beurteilen. Jedoch lohnt es sich, einen Blick auf die Software der RibbonSoft GmbH zu werfen.
QCAD ist für Windows, macOS und Linux erhältlich.
pip ist das Paketverwaltungs-Tool von Python. Wenn Sie in einem Script ein Zusatzmodul benötigen, führen Sie einfach pip install xxx bzw. unter macOS und bei manchen Linux-Distributionen pip3 install xxx aus. pip lädt das erforderliche Modul sowie eventuelle Abhängigkeiten herunter und installiert die Pakete lokal (d.h., sie brauchen meine root-Rechte).
Meistens funktioniert pip gut — aber nicht immer. Die häufigste Fehlerquelle unter Windows ist die Parallelinstallation mehrerer Python-Versionen. Dann ist nicht immer klar, auf welche Python-Version sich pip bezieht. Nach meiner Erfahrung scheint pip zumeist die falsche Version zu nehmen. Daher mein Tipp: Vermeiden Sie unter Windows unbedingt die Mehrfachinstallation von Python!
Aber auch unter Linux kann es Probleme geben. Die Ursache hier besteht darin, dass viele Distributionen selbst eine riesige Sammlung von Paketen mit Python-Erweiterungen anbieten. Die Parallelinstallation eines Moduls, einmal mit apt oder dnf und ein zweites Mal mit pip, kann dann zu Konflikten führen — insbesondere dann, wenn nicht exakt dieselben Versionen zum Einsatz kommen. Die Python-Entwickler haben deswegen im Python Enhancement Proposals (PEP) 668 festgeschrieben, dass in solchen Fällen Pakete aus Linux-Repositories vorzuziehen sind. PEP 668 gilt grundsätzlich seit Python 3.11. Tatsächlich implementiert ist es momentan nur in aktuellen Linux-Distributionen:
Noch nicht implementiert ist PEP 668 dagegen unter RHEL und Fedora (auch nicht in Version 39 Beta).
Der Versuch, mit pip ein Modul zu installieren, führt bei aktuellen Debian-, Ubuntu- und Raspberry-Pi-OS-Versionen zur folgenden Fehlermeldung:
$ pip install matplotlib
error: externally-managed-environment
This environment is externally managed
To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.11/README.venv for more information.
note: If you believe this is a mistake, please contact your Python
installation or OS distribution provider. You can override this,
at the risk of breaking your Python installation or OS, by
passing --break-system-packages. Hint: See PEP 668 for the
detailed specification.
Die obige Fehlermeldung weist direkt auf die beste Lösung hin — nämlich die Installation des entsprechenden Linux-Pakets mit apt python3-xxx, wobei xxx der Paketname ist. Für die matplotlib führen Sie unter Debian, Ubuntu und Raspberry Pi OS das folgende Kommando aus:
sudo apt install python3-matplotlib
Diese Empfehlung ist mit zwei Einschränkungen verbunden: Sie erfordert, dass Sie root– oder sudo-Rechte haben, und sie setzt voraus, dass das gewünschte Modul tatsächlich im Repository Ihrer Linux-Distribution zur Verfügung steht. Letzteres ist oft der Fall, aber nicht immer. Auf pypi.org gibt es fast 500.000 Projekte, die Debian-Standard-Repositories enthalten dagegen »nur« gut 4000 (apt list | grep python3- | wc -l).
Ein Virtual Environment im Kontext von Python ist ganz einfach ein Projektverzeichnis, in das die für das Projekt erforderlichen Module lokal und projektspezifisch installiert werden. Das hat mehrere Vorteile:
Virtuelle Umgebungen werden von Python durch das Modul venv unterstützt. Dieses Modul muss vorweg installiert werden, entweder mit apt install python3-venv oder durch apt install python3-full. Anschließen richten Sie Ihr Projekt ein:
$ python3 -m venv my-project
Python erzeugt das Verzeichnis my-project, falls dieses noch nicht existiert, und richtet dort eine minimale Python-Umgebung ein. (»Minimal« bedeutet: ca. 1500 Dateien, Platzbedarf ca. 25 MByte. Nun ja.) Nun führen Sie in Ihrem Terminal-Fenster mit source das Shell-Script activate aus, um die Umgebung zu aktivieren:
$ cd my-project
$ source bin/activate
(my-project)$
In dieser Umgebung funktioniert pip wie gewohnt. In der Folge können Sie Ihr Script ausführen, das die lokal installierte Module nutzt:
(my-project)$ pip install requests beautifulsoup4
(my-project)$ ./my-webscraping-script.py
Anstelle venv direkt zu nutzen, gibt es diverse Tools, um die Verwaltung Ihrer virtuellen Umgebungen zu vereinfachen. Am bekanntesten sind pipenv und virtualenv. Persönlich ist mir pipenv am liebsten. Das Tool muss vorweg installiert werden (apt install pipenv).
pipx ist eine Variante zum klassischen pip-Kommando, das sich gleichzeitig um die Einrichtung einer virtuellen Umgebung kümmert (siehe auch die Dokumentation). pipx ist allerdings nicht zur Installation von Bibliotheken gedacht, sondern zur Installation fertiger Python-Programme. Diese werden in .local/bin gespeichert.
pipx ist nur dann eine attraktive Option, wenn Sie ein als Python-Modul verfügbares Programm unkompliziert installieren und ausführen wollen. Wenn Sie dagegen selbst Scripts entwickeln, die von anderen Modulen abhängig sind, ist pipx nicht das richtige Werkzeug.
pip --break-system-packagesEin vierter Lösungsweg besteht darin, an pip die Option --break-system-packages zu übergeben. Die Option ist weniger schlimm, als ihr Name vermuten lässt. Im Prinzip funktioniert pip jetzt so wie bisher und installiert das gewünschte Modul, ganz egal, ob es ein äquivalentes Paket Ihrer Distribution gibt oder nicht, und unabhängig davon, ob dieses Paket womöglich schon installiert ist.
Empfehlenswert ist der Einsatz dieser Option in CI-Scripts (Continuous Integration), z.B. in Test- oder Deploy-Scripts für git (siehe auch diesen Blog-Beitrag von Louis-Philippe Véronneau). Die Option --break-system-packages ist oft der schnellste und bequemste Weg, nicht mehr funktionierende Scripts wieder zum Laufen zu bringen.