Debian 9 (Stretch): Oracle VM VirtualBox installieren

Saturday, April 22, 2017

In Debian 9 (Stretch) wird VirtualBox nicht verfügbar sein. Da die Paketbetreuer, die Art-und-Weise, wie Oracle Patches bereitstellt (für die Rückportierung), als eine Zumutung empfinden und sich nicht gewillt sehen, unter diesen Umständen, eine Version von VirtualBox für die Debian stable Veröffentlichung zu pflegen.
Siehe auch: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=794466.

(Angemerkt sei an dieser Stelle noch, dass in Debian 8 (Jessie) die Unterstützung für VirtualBox schon länger beendet worden ist. Oracle den Support eingestellt und VirtualBox 4 nun den Status EOL hat. Für Jessie befindet sich allerdings VirtualBox 5 in den Backports. Siehe auch: https://www.debian.org/security/2016/dsa-3699 und https://packages.debian.org/jessie-backports/virtualbox.)

Um VirtualBox in Stretch weiter nutzen zu können, muss es direkt von Oracle installiert werden. Es gibt dazu bisweilen zwei Anleitungen: Eine im wiki.debian.org und eine auf www.virtualbox.org. (Alternativ kann man sich, theoretisch, natürlich auch einen Backport aus den Sid-Quellen bauen.)

Ich will diese Anleitungen, jetzt nicht im Detail wiederholen und werden nur kurz darauf eingehen, um hier festzuhalten, wie VirtualBox und die Gasterweiterungen installiert und aktualisiert werden.

VirtualBox installieren

Damit VirtualBox von Oracle über die Paketverwaltung installiert werden kann, muss die sources.list, um folgenden Eintrag erweitert werden:

deb http://download.virtualbox.org/virtualbox/debian stretch contrib

Und der PGP-Schlüssel für VirtualBox von Oracle zur Liste der vertrauenswürdigen Schlüssel hinzugefügt werden:

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | apt-key add -

(Mittels apt-key list und apt-key del, kann der Schlüssel auch wieder entfernt werden.)

Danach kann VirtualBox installiert werden:

apt-get update
[...]
apt-cache showpkg virtualbox | sed '/Reverse Provides/,$!d'
Reverse Provides: 
virtualbox-5.1 5.1.20-114628~Debian~stretch (= )
virtualbox-5.0 5.0.38-114632~Debian~stretch (= )

Es kann nun eines, der vom Kommando oben, aufgelisteten Pakete, welche alle VirtualBox bereitstellen, über die Paketverwaltung installiert werden.

VirtualBox aktualisieren

Das Paket wird nach der Installation über die Paketverwaltung aktuell gehalten. Auch Benachrichtigungen über neue Versionen bekommt man so.
Nur die Gasterweiterungen können nicht (mehr) über die Paketverwaltung installiert und aktualisiert werden.

Gasterweiterungen installieren

Die Gasterweiterungen sind Gerätetreiber und Systemanwendungen, die im Gastsystem installiert werden und dieses für bessere Leistung und Benutzerfreundlichkeit optimieren.
Sie werden als ISO-Datei unter dem Name VBoxGuestAdditions.iso bereitgestellt und sind als Download unter http://download.virtualbox.org/virtualbox/ zu finden.

Um die Gasterweiterungen zu installieren, muss die ISO-Datei im Gastsystem als virtuelle CD-ROM eingebunden sein und dort dann die Installation wie folgt aufgerufen werden:

mount /dev/cdrom # ggf. beim Hochfahren schon automatisch eingehängt
sh /media/cdrom/VBoxLinuxAdditions.run

Gasterweiterungen aktualisieren

Die Gasterweiterungen können einfach aktualisiert werden, indem der Installationsvorgang, erneut mit einer aktualisierten Version der ISO-Datei durchlaufen wird. Dies ersetzt dann die Gerätetreiber und Systemanwendungen, mit aktualisierten Versionen. Es sollte ein Neustart des Gastsystems nach der Aktualisierung erfolgen.

Gasterweiterungen de-installieren/entfernen

Um die Gasterweiterungen zu de-installieren, ruft man folgendes Kommando auf:

sh /media/cdrom/VBoxLinuxAdditions.run uninstall

Mailingliste abonnieren

Um Ankündigungen, wie z. B. Benachrichtigungen über neue Versionen und Bugs zu erfahren, sollte man zusätzlich die VirtualBox Mailingliste abonnieren. Die Adresse ist unter https://www.virtualbox.org/mailman/listinfo/vbox-announce bzw. https://www.virtualbox.org/mailman/listinfo zu finden.

mdadm-startall: RAID-Systeme starten

Wednesday, February 1, 2017

In neueren Versionen von KNOPPIX, scheint das Skript zum starten aller RAID-Systeme mdadm-startall zu fehlen.
Ich habe es deshalb hier zum Download: attachs/mdadm-startall.

Software lokal installieren mit dem Linux Installations-Dreisatz (Eine Anmerkung)

Thursday, October 20, 2016

Wird ein Programm nicht über die Paketverwaltung angeboten, bleibt nur das Programm selbst zu installieren.
Hierfür wird i.d.R. der Linux Installations-Dreisatz aufgezeigt, der sich aus den GNU build utils der GNU Toolchain ergibt, um Software zu installieren. Auch selbst entwickelte Programme installiert man i.d.R. auf diese Weise.

Der Linux Installations-Dreisatz im Detail

Als Installations-Dreisatz bezeichnet man das Kompilieren und Installieren eines Programms mit folgenden drei Befehlen:

./configure --prefix=/usr/local
make
make install

In der Standardeinstellung ist normalerweise schon die Installation nach /usr/local vorgesehen. Denn /usr/bin gehört dem System und ist tabu. Siehe GNU Autoconf Handbuch Abs. 4.13 Default Prefix (https://www.gnu.org/software/autoconf/manual/autoconf.html#Default-Prefix).

Die drei Schritte sollten bekannt sein.
Nun ist aber in vielen Foren und Anleitungen zu lesen, dass für das make install Superuser-Rechte benötigt werden.
Doch das ist falsch. Der richtig Ansatz führt über die Gruppe staff, denn diese Gruppe ist vorgesehen um Software, ohne Superuser-Rechte lokal zu installieren. Fügt man sein Benutzerkonto dieser Gruppe hinzu, erhält man Schreibrechte unterhalb /usr/local und /var/local, so das zur Installation kein Root notwendig ist (was auch einen Sicherheitsgewinn bringt). Die Berechtigungen können im Detail wie folgt ermittelt werden: find / -group staff -writable 2>/dev/null.

Siehe auch: https://wiki.debian.org/SystemGroups.

Hat man Software lokal installiert, muss die Umgebungsvariable PATH entsprechend angepasst werden und /usr/local/bin und /usr/local/sbin hinzugefügt werden (ggf. auch in der Crontab). Und mittels ldconfig /usr/local/lib, der dynamische Linker angewiesen werden, auch nach Libs unter /usr/local/lib zu suchen.

Mehr Details zum Installations-Dreisatz findet man in der einschlägigen Literatur.

Als Alternative zur lokalen Installation, sollte aber immer das Erstellen eines distributions-spezifischen Pakets in Betracht kommen. Denn oft bieten Software-Projekte kein make uninstall an, oder es wurde nur unzureichend implementiert.

Webentwicklung/Webdesign; HTML: Telefonnummern verlinken

Thursday, June 30, 2016

Ganz ähnlich wie E-Mail-Adressen mit dem Schema (scheme) mailto angegebenen werden können und der Link i.d.R. den Mail-Client öffnet, um die E-Mail zu verfassen. Können auch Telefonnummern verlinkt werden (siehe RFC 3966).

Dazu muss das Schema tel genutzt werden. Beispiel:

Telefon: <a href="tel:+491631737743">+491631737743</a>

Am Computer weniger sinnvoll/nützlich, trumpft so ein Link am Smartphone allerdings richtig auf!

Raspberry Pi/Raspbian: Mails via SSH abholen (poor man’s solution)

Tuesday, June 14, 2016

Das hier vorgestellte Skript, kopiert via SSH und Shell, alle Mails vom Raspberry Pi ins lokale Postfach:

#!/bin/sh
# getrpimails.sh

set -e

mails="/var/tmp/$0.$USER.bak"

fetch () {
	ssh "rasberrypi" flock -x "/var/mail/pi" sh -c "'cat /var/mail/pi && rm -f -- /var/mail/pi'" > "$mails"
}

delivery () {
	touch "/var/mail/$USER" && flock -x "/var/mail/$USER" sh -c "cat '$mails' >>/var/mail/$USER"
}

fetch

while ! delivery; do
	sleep 3
done

Ganz sauber ist diese Lösung aber nicht, unter anderem könnten im Fehlerfall Mails verloren gehen. Z.B. dann, wenn die lokale Zustellung fehlschlägt/abgebrochen wird. Dann sind die Mails weg…

Hinweis: Eine überarbeitet Version, gibt es hier zum Download: attachs/ssh-getmails. Verbesserungsvorschläge willkommen.