Lutris Gaming in Ubuntu und fehlende Runtime Libraries

Nach der Installation von Lutris unter Ubuntu 25 sollte man sicherstellen dass für Lutris selbst alle benötigten Bibliotheken installiert sind. Überprüfen kann man das in dem man Lutris startet und im Menü (rechts oben) auf Einstellungen -> System geht und sich dort die Lutris Logs ansieht. Nach dem ersten Start wurden mir hier einige Fehler angezeigt:

[ERROR:2026-02-07 10:30:16,845:startup]: i386 libGL.so.1 missing (needed by opengl)
[ERROR:2026-02-07 10:30:16,845:startup]: i386 libvulkan.so.1 missing (needed by vulkan)
[ERROR:2026-02-07 10:30:16,845:startup]: i386 libgnutls.so.30 missing (needed by gnutls)
[WARNING:2026-02-07 10:30:16,920:base]: Tried to get auth status while login in progress

Um diese fehlenden Bibliotheken zu installieren muss zuerst die i386 Architektur unter Ubuntu installiert werden:

sudo dpkg --add-architecture i386
sudo apt update

Danach können die fehlenden Bibliotheken mit folgenden Befehlen installiert werden:

sudo apt install \
libgl1:i386 \
libglx-mesa0:i386 \
libgl1-mesa-dri:i386 \
libvulkan1:i386 \
mesa-vulkan-drivers:i386 \
libgnutls30:i386

Zur Sicherheit kann man danach einen Neustart des Systems machen und danach sollte Lutris ohne Fehlermeldung starten.

Proton Mail Bridge startet nicht unter Ubuntu

Um Proton Mail mit einem alternativen Mail Client wie zum Beispiel Thunderbird zu verwenden ist es notwendig die Proton Mail Bridge zuerst zu installieren.

https://proton.me/mail/bridge

Entweder man installiert es direkt über das App-Zentrum in Ubuntu oder man lädt die .deb Datei direkt über oberen Link herunter und installiert die Bridge mit:

sudo apt install ./protonmail-bridge_3.21.2-1_amd64.deb

Startet man die App danach über die Ubuntu Anwendungen war es bei mir der Fall dass sich die App einfach nicht startet und auch sonst keine Fehlermeldung angezeigt wurde.

Überprüfen kann man den Startvorgang am besten wenn man die Bridge direkt über das Terminal versucht zu starten:

protonmail-bridge

Hier wurde dann eine entsprechende Fehlermeldung angezeigt:

/usr/lib/protonmail/bridge/bridge-gui: error while loading shared libraries: libOpenGL.so.0: cannot open shared object file: No such file or directory

Der Grund für diese Fehlermeldung ist ein fehlendes OpenGL-Runtime-Paket in der Linux Distribution (in meinem Fall Ubuntu 25). Installieren kann man dieses Paket mit folgenden Befehlen:

sudo apt update
sudo apt install libopengl0

Danach sollte sich die Proton Mail Bridge wie erwartet öffnen und man kann Thunderbird mit den bereitgestellten Server Einstellungen konfigurieren.

Pimp your MAC Terminal

Wem das originale Mac Terminal etwas zu langweilig und monoton ist kann es mit den folgenden Schritten etwas „tunen“ und optisch aufwerten:

1. Installation von iTerm als Alternative zum Terminal:

Download der App von https://iterm2.com/ und Installation per Doppelklick auf die .dmg Datei

2. Download der Nerd Fonts

Gehe auf https://www.nerdfonts.com/ und suche nach der „FiraMono Nerd Schriftart“. Nach dem Download der .zip Datei installiere die enthaltenen Schriftarten per Doppelklick darauf.

3. iTerm konfigurieren

1. Öffne iTerm und klicke im Menü auf „iTerm“ > „Settings“.
2. Gehe zum Tab „Profiles“ -> „Colors“ und wähle ein Theme dass dir gefällt. Ich habe hier z.B „Smoooooth“ gewählt.
3. Gehe zum Tab „Text“ und wähle unter Font die vorher installierte“ FiraMono Nerd Schriftart aus“. Passe gegebenenfalls auch die gewünschte Schriftgröße an.
4. Gehe zum Tab „Keys“ -> „Key Bindings“ und wähle das Preset „Natural Text Editing“ um im Terminal komfortabel mit der CMD Taste zwischen einzelnen Wörtern zu navigieren.

4. ZSH installieren und konfigurieren

Die zsh wird oft als erweiterte Bourne-Shell angesehen, welche viele Verbesserungen und Eigenschaften von bashksh und tcsh vereint. In neueren MacOS Versionen ist sie schon die Default Shell. Falls sie nicht installiert ist kann man sie mit brew install zsh installieren. Voraussetzung dazu ist natürlich ein installiertes Homebrew.

5. „Oh My Zsh“ installieren

„Oh My Zsh“ ist ein Framework um ZSH Konfigurationen zu managen. Installieren kann man es mit:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

6. Plugins für Zsh hinzufügen

Um dein Terminal noch weiter zu optimieren, installiere die Plugins zsh-syntax-highlighting und zsh-autosuggestions

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

Konfiguriere die Plugins danach folgendermaßen:

  • Öffne die .zshrc Datei in einem Texteditor (z.B nano):
nano ~/.zshrc

Finde die Zeile mit dem plugins array und füge die beiden neuen Plugins in das array hinzu:

plugins=(git zsh-syntax-highlighting zsh-autosuggestions)

Abschließend speichere die .zshrc Datei und starte dein Terminal neu. Um ohne Terminal Neustart fortzufahren kannst du auch direkt folgenden Befehl eingeben:

source ~/.zshrc

7. Hinzufügen von „Starship“

Starship ist ein minimalistischer und vielseitig anpassbarer Prompt für deine Shell. Installieren kann man es wieder mit Homebrew:

brew install starship

Danach konfigurieren wir es wieder in dem wir die .zshrc Datei öffnen:

nano ~/.zshrc

und folgende Zeile am Ende der Datei hinzufügen:

eval "$(starship init zsh)"

Abschließend speichern wir wieder, starten das Terminal neu oder verwenden wieder:

source ~/.zshrc

8. Verwenden eines „Starship“ Templates

Um Starship nicht komplett von Hand anpassen zu müssen, verwenden wir ein vorkonfiguriertes Template. Erstelle dazu einen .config Ordner in deinem Home Verzeichnis erstelle die starship.toml darin:

mkdir -p ~/.config && starship preset gruvbox-rainbow -o ~/.config/starship.toml

Öffne danach deine ~/.config/starship.toml Datei um Starship nach deinen Vorlieben anzupassen.

Ich persönlich habe zum Beispiel die Anzahl der angezeigten Ordner reduziert, die Uhrzeit entfernt und den Zeilenumbruch nach dem Prompt entfernt:

Den Originalbeitrag in Englisch gibt es hier nachzulesen.

PIP und das Python Virtual Environment

Möchte man in Python mittels pip install irgendwas (pip = Python Paket Manager) zusätzliche Module installieren bekommt man ohne Virtual Environment bei Python 3.14 eine Fehlermeldung die folgendermaßen aussieht:

error: externally-managed-environment

× This environment is externally managed
> To install Python packages system-wide, try brew install
    xyz, where xyz is the package you are trying to
    install.

    If you wish to install a Python library that isn't in Homebrew,
    use a virtual environment:

    python3 -m venv path/to/venv
    source path/to/venv/bin/activate
    python3 -m pip install xyz

Grund dafür ist, dass dein System seine systemweite Python-Installation schützt, damit pip es nicht kaputtmacht.

Die empfohlene Lösung ist hier einfach ein Virtual Environment anlegen. Zuerst erstelle einen eigenen Folder für den Projekt (mkdir Project) und wechsle mit cd Project hinein. Führe danach folgende Befehle aus:

python3 -m venv venv
source venv/bin/activate
pip install irgendwas

Danach sollte alles ohne Fehlermeldung wieder funktionieren. Man sieht übrigens an dem neu erstellten venv Folder dass ein Virtual Environment erstellt wurde für dieses Projekt.

SMB Zugriff unter MacOS beschleunigen

Mit folgendem Bash Script kann der Zugriff und die Datenübertragungsgeschwindigkeit von MacOS zu einer SMB Freigabe (zB ein NAS, oder ein Unraid Server) deutlich beschleunigt werden.

Man erstellt dazu z.B eine Datei smbtune.sh Datei in einem beliebigen Ordner:

cd ~
nano smbtune.sh

und fügt folgenden Code in diese Datei ein. Was die einzelnen Befehle im Detail bewirken ist im Source Code als Kommentar beschrieben.

#!/bin/bash

# Commands that decrease security

# Check if the nsmb.conf file exists and remove it if it does
if [ -f /private/etc/nsmb.conf ]; then
    rm /private/etc/nsmb.conf
fi

# Create a new nsmb.conf file with default section
echo "[default]" >> /etc/nsmb.conf

# Disable SMB signing (decreases security)
echo "signing_required=no" >> /etc/nsmb.conf

# Disable negotiation validation (decreases security)
echo "validate_neg_off=yes" >> /etc/nsmb.conf

# End Section

# Commands with neutral or mixed impact on security

# Enable support for named streams (neutral)
echo "streams=yes" >> /etc/nsmb.conf

# Disable change notifications (neutral, but might affect operational efficiency)
echo "notify_off=yes" >> /etc/nsmb.conf

# Enable soft mounts (neutral, but could impact data availability)
echo "soft=yes" >> /etc/nsmb.conf

# Disable directory caching (neutral, but impacts performance)
echo "dir_cache_max_cnt=0" >> /etc/nsmb.conf
echo "dir_cache_max=0" >> /etc/nsmb.conf
echo "dir_cache_off=yes" >> /etc/nsmb.conf

# End Section

# Commands that improve or do not affect security significantly

# Disable NetBIOS and use direct hosting over TCP/IP (improves security)
echo "port445=no_netbios" >> /etc/nsmb.conf

# Set SMB protocol version to SMB 2 or later (improves security)
echo "protocol_vers_map=4" >> /etc/nsmb.conf

# Enable multi-channel support and prefer wired connections (neutral, typically safe)
echo "mc_on=yes" >> /etc/nsmb.conf
echo "mc_prefer_wired=yes" >> /etc/nsmb.conf

# Prevent creation of .DS_Store files on network shares (neutral, improves performance)
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

# End Section

# Exit script
exit

Danach muss die Bash Datei noch ausführbar gemacht werden mit:

chmod +x smbtune.sh

Und danach wird die Datei selbst ausgeführt mit:

sudo ./smbtune.sh

Um später die Standardeinstellung für die .DS_Store Dateien wieder herzustellen kann man im Terminal jederzeit wieder folgenden Befehl ausführen:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool FALSE

Den Originalbeitrag findet man übrigens hier auf Reddit

Ein zentraler „node_modules“ Ordner für mehrere Projekte gleichzeitig

Angenommen man hat mehrere „ähnliche“ Node.js Projekte die man überprüfen und ausführen möchte. Mit „ähnlich“ ist hierbei gemeint, dass sich lediglich der Programmcode unterscheidet,die verwendeten npm Bibliotheken jedoch großteils die selben sind.

In diesem Fall würde für jedes einzelne Projekt ein node_modules Ordner angelegt werden und die npm Module für jedes Projekt einzeln gespeichert werden. Wenn es sich aber dann um 20 oder mehr solcher Projekte handelt, kann sich der Speicherverbrauch schnell auf mehrere Gigabyte aufsummieren.

Eine Lösung für diese Problem ist ein zentraler node_modules Ordner für alle verwendeten Projekte. Hierzu muss man lediglich z.B. einen Ordner shared_node_modules erstellen und mit einem Symbolic Link darauf verweisen.

Unter Linux und Mac erstellt man diesen mit folgendem Befehl:

ln -s /path/to/shared_node_modules /path/to/project/node_modules

Unter Windows würde es folgendermaßen funktionieren:

mklink /d /path/to/shared_node_modules /path/to/project/node_modules

D.h in jedem Projektordner befindet sich dann ein Symbolic Link auf den shared_node_modules anstatt einem lokalen node_modules Ordner.

PHP Variablen für WordPress in Docker unter Unraid ändern

Nach einer frischen Installation eines WordPress Containers unter Unraid sind die Werte der PHP Umgebungsvariablen upload_max_filesize oder post_max_size noch auf ihrem Standardwert und möglicherweise zu niedrig.

Möchte man die Werte dieser Variablen erhöhen geht man am besten folgendermaßen vor:

1.) Öffne ein Terminal in deiner Docker-Applikation in Unraid mit einem Klick auf _Console:

2.) Im geöffneten Terminal stelle sicher dass du dich im Ordner deiner WordPress Installation befindest. Das erkennst du am einfachsten wenn eine index.php sowie die wp_config.php darin angezeigt wird. Erstelle dann eine php.ini Datei:

# nano php.ini

Falls der Befehl nano nicht erkannt wird muss nano erst innerhalb des Containers installiert werden:

# sudo apt update
# sudo apt install nano

Danach füge folgenden Code in die php.ini Datei ein (passe die Werte gegebenfalls an):

 upload_max_filesize = 256M
 post_max_size = 256M
 memory_limit = 256M

Nach einem Neustart des Docker Containers sollten dann die neuen Werte gesetzt sein. Prüfen kann man das übrigens mit dem Plugin Query Monitor

Widevine Verschlüsselung erklärt

Viele Streaming Anbieter wie Netflix, Amazon oder auch Udemy.com verwenden für ihre Inhalte die Widevine Verschlüsselung von Google. Um zu verstehen wie diese Verschlüsselung funktioniert und wie man diese Inhalte am eigenen Rechner entschlüsseln kann hat Mo Ismailzai einen Beitrag auf seinem Blog veröffentlicht. Alles was man dazu braucht ist ein Android Simulator (mittels Android Studio) oder ein gerootetes Android Phone. Die ebenfalls benötigte Open-Source Software findet sich dann relativ leicht auf Github.com.

Tik Tok Selbstversuch der Tagespresse

Die österreichische Satirewebseite „Die Tagespresse“ hat einen Selbstversuch auf TikTok unternommen um herauszufinden wie schnell Jugendliche in eine bestimmte Richtung radikalisiert werden. Dazu wurden 9 (für jedes Bundesland) Fake Accounts von Jugendlichen erstellt und danach aufgezeichnet welche Inhalte TikTok and die „frischen“ Accounts ausliefert. Um den TikTok Algorithmus möglichst wenig Daten zu geben wurden möglichst wenig Daten und keine „Likes“ angegeben.

Hier gehts zum Artikel