Archiv des Autors: Heiko Thurat

Git: Stashes löschen und alle löschen

Änderungen, die später aufgegriffen werden sollen, aber noch nicht in einen Commit wandern, die kann man mit „git stash“ erst einmal zwischenspeichern. Oft wird danach ein „git pull“ ausgeführt und vielleicht die Änderung mit „git stash apply“ wieder zurückgeholt.

Will man den stash löschen, geht das via „git stash drop“. Will man alle Stash-Einträge löschen: „git stash clear“.

Postgres: Label in ENUM-Types umbennen in Postgres 9

Postgres 10 verfügt über einen Befehl für das Umbennen von ENUM-Values. Postgres 9 nicht.

Gesetzt den Fall wir hätten ein ein ENUM-Type der Art:

CREATE TYPE purchase_type_enum AS ENUM ('undefined', 'mailorder', 'ecommerce');

Dann wollen wir den Wert „undefined“ (der so in Javascript vorkommen könnte) in „unconfigured“ umbennen. So lässt sich das in Postgres 9 lösen:

UPDATE pg_enum SET enumlabel = 'unconfigured'
WHERE enumlabel = 'undefined' AND enumtypid = (
SELECT oid FROM pg_type WHERE typname = 'purchase_type_enum'
);

Git: Kaputtes Repo neu aufbauen/reparieren

Defektes Filesystem und git pull funktioniert nicht richtig? Dann kann das Repo kaputt sein (Bezug zu parent-Einträgen nicht mehr möglich oder …) Ein meinem Fall kam nach einem git pull der ominöse Hinweis, dass das Repo aus Performance-Gründen optimiert werden sollte. Ein git gc brachte dann Fehlermeldungen. Das Repo war beschädigt.

mv -v .git .git_old &&            # (1)
git init &&                       # (2)
git remote add origin "git@gitlab.infosys.de:etacs/etacs_production.git" && # (3)
git fetch &&                      # (4)
git reset origin/master --mixed   # (5)
git pull                          # (6)
git branch --set-upstream-to=origin/master master # (7)
  1. Altes Repo sichern
  2. Neues Repo initialisieren
  3. Repo mit Remote-Repo verbinden (die URL steht in .git/config – oder nach Sichern .git_old/config))
  4. Repo aktualisieren
  5. Master Branch resetten
  6. Inhalte runterladen (wenn Git sich jetzt beschwert, dann den Upstream setzen -> 7)
  7. Upstream setzen

Shell: Fehlendes Floppy-Laufwerk /dev/fd0 spammt Logs

Wenn das Kernelmodul „floppy“ geladen ist, aber kein Floppy-Drive vorhanden ist, werden die Logfiles gespammt (dmesg, syslog, je nach Konfiguration). Einträge sehen etwa folgendermassen aus:

dmesg:
[1016164.312385] end_request: I/O error, dev fd0, sector 0
[1016164.313839] floppy: error -5 while reading block 0

syslog:
May 12 07:20:21 server1 kernel: end_request: I/O error, dev fd0, sector 0
May 12 07:20:21 server1 kernel: floppy: error -5 while reading block 0

Die Lösung ist das Entfernen des floppy-Kernelmoduls und blacklisten desselbigen für den nächsten Reboot (Root-Rechte erforderlich).

# echo "blacklist floppy" | sudo tee /etc/modprobe.d/blacklist-floppy.conf
# rmmod floppy
# update-initramfs -u

Linux: Thin-Client als Server und Raspberry-Ersatz

Preiswerter und flexibler als ein Raspberry-Pi: Thin-Client als Server.
Thin-Clients sind derzeit für kleines Geld zu bekommen (zB: itniederrheinshop.de für unter 20 EUR)

Fujitsu Futro S900 AMD G-T40N 1 GHz, AMD Radeon HD6250:

  • Gigabit Ethernet
  • 2 GB DDR3-RAM
  • mSata-Slot 2 GB (reicht für minimales System)
  • Sata-Anschluß (allerdings wird ein spezielles Sata-Stromkabel benötigt)
  • wake-on-lan, wake-on-clock
  • Passive Kühlung = keine Geräusche / Verschleiß
  • geringer Stromverbrauch
  • Smartcard-Slot kann ausgebaut werden und bietet dann 2,5″ SSD Platz
  • DVI und Display-Port Videoanschluß

USB-Stick mit Debian 10 Netinstall vorbereiten und vom Stick booten (F2=Bios, F12=Bootmenu). Als Desktop-Umgebung wurde LXQT gewählt (Nachfolger von LXDE). Sinnvolles Paket: SSH-Server, Print-Server. Speicherverbrauch im Ruhebetrieb mit Desktop: 331 MB.

Nach der Installation ist die Auflösung allerdings sehr beschränkt, weil der Radeon-Grafiktreiber fehlt. Das lässt sich schnell abstellen:

Eintragen der non-free und contrib Pakete für apt:

# nano /etc/apt/sources.list

deb http://deb.debian.org/debian/ buster main non-free contrib
deb-src http://deb.debian.org/debian/ buster main non-free contrib

deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

# apt update

# apt install firmware-linux-nonfree libgl1-mesa-dri xserver-xorg-video-ati

Nach dem Reboot steht die WUXGA-Auflösung bis 1920×1200 zur Verfügung.

Spar-Tipp:
Kostengünstige Speicheraufrüstung: Man kauft sich beim gleichen Händler noch einen HP-T510 Thin-Client. Der hat zwar nur 1 GB IDE-Flashspeicher, verfügt aber über 4 GB DDR3-RAM und kostet ebenfalls unter 20 EUR.
Für das Geld bekommt man keinen 4 GB Speicherriegel. Wer dann noch einen USB-Stick > 4 GB rumliegen hat, kann den HP-Rechner mit dem 2 GB aus dem Futro bestücken und hat ein zweites (schwächeres) System mit Gigabit-Ethernet.

Der HP hat übrigens ebenfalls Auflösungsprobleme (max. Auflösung 1024×768), was durch Installation von xserver-xorg-video-openchrome behoben werden kann.