Eigene Debian-Pakete und Repository erstellen

Sobald als man Admin mehrere Server zu administrieren hat, kommt man in den Genuss ein- und das dasselbe auf viele Servern immer wieder machen zu muessen. Heute moechte ich mich dem Thema widmen auf vielen Servern z.B. eine neue Version des Backupskriptes einzuspielen. Dafuer brauche ich zwei Dinge

  1. ein Debian Paket mit meinem Skript
  2. ein Debian Repository ueber das das Paket verteilt wird

Der hier im folgenden vorgestellte Weg ist sehr simpel und rudimentaer gehalten und behandelt explizit Dinge wie SecureApt nicht.

Erstellen eines eigenen Debian-Paketes

Zum Erstellen des eigenen Debian Paketes benoetige ich nun zwei Dinge. Einmal mein Backupskript pregoBackup.sh und einmal eine control-Datei, die Informationen ueber das Debian Paket enthaelt. Die control Datei koennte z.B. wie folgt aussehen:

Package: pregoBackup
Version: 0.5
Section: server
Priority: optional
Architecture: all
Essential: no
Installed-size: 1024
Maintainer: prego presto
Description: pregos Backup Skript zum Sichern des Servers

Das ganze vorgehen jetzt in Worte zu fassen waere sehr umstaendlich. Deswegen in kurz: die control Datei liegt in dem Unterordner ./DEBIAN und neben das DEBIAN Verzeichnis packe ich das Skript an die Stelle, wo ich es im Dateisystem liegen haben moechte:

cd /tmp
mkdir pregoBackup
cd pregoBackup
mkdir ./DEBIAN
mkdir -p ./root/skripte
cp control ./DEBIAN
cp pregoBackup.sh ./root/skripte

Als naechstes wird das Debian-Paket erstellt:

cd /tmp
dpkg-deb --build pregoBackup

Danach sollten wir die Datei /tmp/pregoBackup.deb haben. Was darin enthalten ist koennen wir uns mit:

dpkg-deb --contents pregoBackup.deb

anzeigen lassen, und wer moechte kann es auch spasseshalber mal mit

dpkg -i pregoBackup.deb
aptitude show pregoBackup
aptitude purge pregoBackup

installieren, angucken und deinstallieren.

Anlegen eines Debian Repositories

An zweiter Stelle lege ich nun ein Repository an. Dafuer erstelle ich zuerst eine Verzeichnisstruktur dafuer:

mkdir -p /srv/myrepository/{binary,source}

Anschliessend lege ich einen simplen Apache vhost an mit einer Zugangsbeschraenkung fuer das Repository auf mein lokales Netz:

    ServerAdmin webmaster@example.net
    ServerName myrepository.example.net
    DocumentRoot /srv/myrepository/
 
                AllowOverride None
                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order Deny,Allow
                Deny from all
                Allow from 192.168.0.0/255.255.0.0

Nun kann ich mein frisch erstelltes Debian-Paket in die Repository Dateisystemstruktur kopieren:

cp /tmp/pregoBackup.deb /srv/myrepository/binary/

Zu guter letzt muss noch der Repository Index erstellt werden. Dafuer muss das Paket dpkg-dev vorhanden sein:

aptitude install dpkg-dev
cd /srv/myrepository
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz
dpkg-scansources source /dev/null | gzip -9c > source/Sources.gz

Wenn das alles fertig ist, brauche ich nur noch auf meinem Server die entsprechenden Zeilen in die /etc/apt/sources.conf eintragen, die Liste der verfuegbaren Pakete von den apt-Quellen erneuern und dann kann das Paket installiert werden.

## my personal repository
deb http://myrepository.example.net binary/
deb-src http://myrepository.example.net source/
aptitude update
aptitude install pregoBackup

Bye Bye Gnome

Am 30. Oktober 2008 habe ich einen Blogeintrag Bye Bye KDE geschrieben. Das dort angesprochene Downgrade zu XFCE hielt nicht lange, ich glaube so 1-2 Wochen, dann war ich auf Gnome. Damit habe ich nun die Jahre sehr zufrieden gearbeitet. Zwischendrin habe ich immer mal wieder einen Blick zu KDE ruebergeworfen, aber war sehr zufrieden mit Gnome bis, ja, bis das Update auf Ubuntu 11.04 kam. Da war erstmal Unity was ich doof fand. Dann hab ich in die Gnome3-Shell ruebergewechselt und das fand ich auch doof. Dann hab ich versucht meinen alten Gnome2 Desktop mit Compiz wieder zum laufen zu kriegen aber dat ging auch nich. Irgendwann hatte ich keinen Bock mehr und hab nun die letzten Wochen das umgesetzt was mir schon lange im Kopf rumschwebte, ich bin auf Fluxbox gewechselt.

Fluxbox ist einfach, Fluxbox ist simpel und bringt alles das mit, was ich brauche. Gnome-Zeugs was ich nett finde kann ich starten, der Rechner ist schnell genug und alles laeuft. Ich mag es viel mit der Tastatur zu machen und mir kleine simple Tastenkombinationen ablegen zu koennen. Der obligatorische Screenshot noch:

Compiz / Fluxbox -> Move active Window to next screen

Unter Fluxbox von mir sehr beliebt ist die Tastenkombination „Ctrl+Alt+([Left|Right]Arrow)“ um das aktive Fenster mit auf den naechsten Desktop zu nehmen. In Compiz geht das nich, da braucht man die Shift Taste noch obendrauf „Ctrl+Alt+Shift+([Left|Right]Arrow)“. Ich muss das hier mal eben festhalten weil ich das grad rausgesucht hatte. Ein sehr nettes Feature, wenn man ne Konsole auf dem einen Desktop offen hat, und sie dann eben mit zu einem anderen nehmen moechte wo z.B. Firefox offen ist und man keine Lust hat dafuer die Maus zu bewegen… ;-)

Howto: Belkin Surf WLAN USB-Adapter (050d:945a) in Ubuntu

Die Firma ist umgezogen, es liegen noch keine neuen Netzwerkkabel und alles laeuft mit WLAN. Weil gruetze ham wir nun guenstige N-Sticks bekommen die aber fuer aktuellen Ubuntu zu neu sind. Deswegen halt plug and compile. Neusten Linuxtreiber von realtek runterladen (URL) und danach as follows. Bitte XXX mit entsprechender Version ersetzen bzw. Tab-completion nutzen:

sudo aptitude install linux-headers-$(uname -r) build-essential unzip 
unzip -x RTL8191SU_usb_linux_XXX.zip
cd rtl8712_8188_8191_8192SU_usb_linux_XXX/driver
tar -xzf rtl8712_8188_8191_8192SU_usb_linux_XX.tar.gz
cd rtl8712_8188_8191_8192SU_usb_linux_XX
make
sudo make install

Danach den alten Treiber ueber die Blacklist sperren:

sudo echo "blacklist r8192s_usb" >> /etc/modprobe.d/blacklist.conf

und einen reboot machen. Anleitung is uebrigens von (da)