Größe der Packdateien unter Git beschränken

Im Versionsverwaltungssystem Git existieren im Repository sogenannte Packfiles. Diese werden genutzt um mehrere Objekte, wie z.B. Commits, Trees, Blobs oder Tags, als einzelne Dateien abzulegen. Damit fasst Git viele Objekte zu einer einzelnen komprimierten Datei zusammen. Ergänzt wird das ganze durch einen Index, um einen schnellen Zugriff zu ermöglichen. Dabei nutzt Git Delta-Kompression, indem es ähnliche Objekte, z. B. verschiedene Versionen derselben Datei, nicht vollständig speichert, sondern nur die Unterschiede.

Eine Git-Pack-Datei im Schema

Dies reduziert die Repository-Größe erheblich, kann aber bei ungünstigen Repositorys mit vielen Binärdaten zu Repositorys führen, welche mehrere dutzend Gigabyte große Pack-Dateien besitzen. Eine Steuerung ist über den Konfigurationsparameter pack.packsizelimit möglich:

git config pack.packsizelimit 5g

Damit würde diese Einstellung für das aktuelle Repository gesetzt werden. Wer das Ganze global benötigt, kann dies ebenfalls einstellen:

git config --global pack.packsizelimit 5g

Allerdings gilt diese Einstellung nicht sofort, stattdessen muss für ein Repack gesorgt werden:

git repack -Ad --max-pack-size=5g

Anschließend kann die Größe der Packs kontrolliert werden:

ls -lh .git/objects/pack

Allerdings sollte beachtet werden, das die Option grundsätzlich nur in Ausnahmefällen sinnvoll ist:

Note that this option is rarely useful, and may result in a larger total on-disk size (because Git will not store deltas between packs) and worse runtime performance (object lookup within multiple packs is slower than a single pack, and optimizations like reachability bitmaps cannot cope with multiple packs).

Hidden-Attribut von Dateien unter macOS entfernen

Wenn eine Datei unter macOS versteckt ist, so ist das Hidden-Attribut der Datei gesetzt oder ein Punkt vor der Datei bzw. dem Ordner gesetzt, z.B. im Fall .git. Für ersteren Fall, also Dateien, welche ohne Punkt beginnen und trotzdem versteckt sind, kann das Hidden-Attribut über einen Befehl im Terminal entfernt werden:

chflags nohidden text.txt

Soll die Datei wieder versteckt werden, so kann dies mit dem Befehl:

chflags hidden text.txt

bewerkstelligt werden.

Punkt-Dateien unter macOS löschen

Unter macOS werden Dateien mit beginnend einem Punkt angelegt, welche z. B. auf USB-Datenträgern bestimmte Metadaten enthalten, welche von macOS genutzt werden. Das Problem ist, das sie unter Umständen störend sein können und für die Nutzung unter anderen Betriebssystemen entfernt werden sollen. Dazu gibt es unter macOS den Befehl dot_clean. Dieser kann im Terminal ausgeführt werden:

dot_clean -m /Volumes/Data

Nachdem der Vorgang beendet ist, würden alle entsprechenden Punkt- / Unterstrich-Dateien, für welche der aktuelle Nutzer über Berechtigungen verfügt, entfernt.

SSH auf dem Steam Deck aktivieren

Da auf dem Steam Deck ein auf Arch Linux basierendes Linux läuft, kann auf diesem auch SSH aktiviert werden. Genutzt werden kann SSH unter anderem, um Dateien auf das Steam Deck zu übertragen.

Die Software des Steam Deck basiert auf Arch Linux

Im ersten Schritt muss hierzu in den Desktop-Modus gewechselt werden. Dieser wird erreicht in dem im Steam Deck-Menü der Punkt Ein/Aus ausgewählt wird. Dort findet sich dann der Punkt Zum Desktop wechseln. Wird im Desktop-Modus eine Tastatur benötigt, so kann diese über einen Druck auf die Steam-Taste in Verbindung mit dem X-Button aktiviert werden.

Über das Menü kann das Terminal bzw. die Konsole gestartet werden. Dort muss ein entsprechendes Passwort für den Nutzer deck angelegt werden:

passwd

Nachdem das Passwort für den Nutzer gesetzt wurde, kann der SSH-Dienst aktiviert werden:

sudo systemctl enable sshd

Damit wird der SSH-Dienst beim Start des Steam Deck direkt gestartet. Um ihn ohne Neustart zu aktivieren, kann der Befehl:

sudo systemctl start sshd

genutzt werden. Die IP-Adresse des Steam Deck kann mittels:

ip a

ermittelt werden. Nun kann sich per SSH, über die ermittelte IP-Adresse, mit dem Steam Deck verbunden werden:

ssh deck@192.168.2.1

Auch die Verbindung per SSH File Transfer Protocol (SFTP) zur Übertragung von Dateien ist damit möglich.

Konfiguration eines MikroTik-Routers über das Terminal setzen

Nachdem mit einem MikroTik-Router eine Verbindung hergestellt wurde, kann die Konfiguration des Gerätes einfach über das Terminal ausgelesen bzw. exportiert werden. Dazu muss eine Verbindung per SSH hergestellt werden:

ssh admin@192.168.1.1

Anschließend wird der Nutzer von einem Prompt begrüßt:

[admin@192.168.1.1] >

Die Konfiguration kann im Terminal mittels des Befehls:

/export verbose

ausgegeben werden. Hierbei wird die komplette Konfiguration des Routers ausgegeben. Sinnvoller ist es in den meisten Fällen den Befehl:

/export compact

zu benutzen. In diesem Fall wird nur die Konfiguration ausgegeben, welche sich von der Standardkonfiguration des Systems unterscheidet. Alternativ kann einfach der Befehl:

/export

genutzt werden, welcher standardmäßig, seit Version 6 des RouterOS, die Variante compact nutzt. Soll eine exportierte Konfiguration importiert werden, so kann hierfür der Befehl:

/import

genutzt werden. Bei dieser Operation wird vom System nach einem Dateinamen gefragt, in welchem die entsprechende Konfiguration hinterlegt ist. Anlegt werden kann eine solche Datei über dem Export-Befehl:

/export file=configuration.rsc

Soll stattdessen ein neues bzw. zurückgesetztes Gerät mit einer neuen Konfiguration bespielt werden, muss die entsprechende Datei erst auf dem Gerät hinterlegt werden. Hierfür kann das Webinterface und dort der Punkt Files genutzt werden.

Über den Menüpunkt Files kann die Konfigurationdatei hinterlegt werden

Über den, auf dieser Seite zu findenden, Upload-Dialog können neue Dateien auf dem Router hinterlegt werden. Die Datei kann beim Import-Befehl direkt mit angegeben werden:

/import file=configuration.rsc

Neben dem Ex- und Import von Konfiguration, kann die Konfiguration auch vollständig zurückgesetzt werden. Hierfür muss der Befehl:

/system reset-configuration

eingeben werden. Nach einer Sicherheitsabfrage:

Dangerous! Reset anyway? [y/N]:

und der Bestätigung derselben wird die Konfiguration vollständig zurückgesetzt.