ZNC: Ein funktionsreicher IRC-Bouncer – mit Anleitung

Was macht man, wenn man nicht nur eine Mailingliste verfolgen, sondern auch einem IRC-Channel beitreten soll, um dort über die aktuellsten Geschehnisse des Debian-Games-Teams auf dem Laufenden zu bleiben? Man greift zu ZNC, einem IRC-Proxy oder auch Bouncer genannt. Das tolle daran ist, dass die Verbindung zum Channel nie unterbrochen wird und man von überall, unterwegs und mit verschiedenen IRC-Klienten gleichzeitig sich zum Bouncer verbinden kann, der unter anderem die Fähigkeit besitzt den eigenen Channel-Nick zu reservieren und die Konversationen der letzten Stunden wiederzugeben, so dass man nichts verpasst.
In diesem Beitrag geht es um die Inbetriebnahme von ZNC auf einem vServer (natürlich funktioniert auch jeder Heimserver) für ein Netzwerk (irc.oftc.net) und mehrere Channel.

Installation

Wie immer einfach.
aptitude install znc

Konfiguration

Die Konfiguration ist genauso geradlinig. Immer wenn es in dem animierten GIF etwas schneller geht, müsst ihr nur die Standardeinstellung mit ENTER bestätigen.
ZNC-Anleitung
Der Port auf dem ZNC lauschen soll lässt sich beliebig festlegen. Sollte der IRC-Server, wie dies bei irc.debian.org der Fall ist, SSL unterstützen, muss ein Pluszeichen vor den Port des IRC-Servers gestellt werden. Ob es IPv4 oder doch schon IPv6 sein soll, Benutzername und Passwort, ist natürlich individuell verschieden.
Wer sich nicht sofort für das Aktivieren von zusätzlichen Modulen entscheiden möchte, kann das später immer noch nachholen. Dazu müsst ihr lediglich

/msg *status help

in eurem favorisierten IRC-Client eingeben, sobald ihr euch mit ZNC verbunden habt. Mit Befehlen wie

/msg *status ListAvailMods
/msg *status LoadMod Name-des-Moduls

erhaltet ihr Hilfe und könnt euren bevorzugten IRC-Gehilfen nachladen. Für mich war z.B. die log-Funktion wichtig, damit ich Nachrichten später noch lesen konnte. Für ZNC gibt es selbstverständlich auch ein Wiki, wo sich viele Hinweise und Antworten finden lassen und auch die obligatorische FAQ für ZNC.

Beispielkonfiguration mit Irssi

Wenn ZNC erst einmal auf dem Heim- oder vServer läuft, muss nur noch der favorisierte IRC-Klient so eingerichtet werden, dass dieser sich nun zuerst mit ZNC verbindet.
Für Irssi genügt z.B. folgender Eintrag in $HOME/.irssi/config:

servers = (
{
    address = "123.123.123.123";
    chatnet = "OFTC";
    port = "55555";
    use_ssl = "yes";
    ssl_verify = "no";
    autoconnect = "yes";
    password = "Apo:meingeheimesPasswort";
}

Die Adresse des ZNC-Servers, Port, Netzwerk, Benutzername und Passwort, das wars. Nach dem Start verbindet sich dann Irssi sofort verschlüsselt via SSL mit dem Bouncer, der wiederum eine verschlüsselte Verbindung zum IRC-Server irc.debian.org aufgebaut hat.
Wer sich E-Mail lesen gar nicht abgewöhnen kann, darf auch einen Cronjob einrichten und danach Logrotate anweisen einem die tägliche IRC-Logdatei per Mail zukommen zu lassen. 😉

ConnochaetOS: Neue Software mit PKGBUILD selbst kompilieren

Ein Nachteil bei kleineren Linuxdistributionen ist, dass sie oftmals auf nur wenige Entwickler zurückgreifen können. Außerdem sind Webspace, Traffic und Zeit begrenzt und es fehlt einfach an Ressourcen, um jede verfügbare Software in einem Binärformat bereitstellen zu können.
Man kann dieses Problem in der Regel umgehen, indem man Werkzeuge wie Debians Alien oder Slitaz tazpkg benutzt, um Pakete fremder Distributionen in das eigene Format umzuwandeln. Das klappt bei kleineren Paketen oft sehr gut, man darf aber aber auch keine Wunder von so einer Transformation erwarten.
Bei Arch Linux und damit auch ConnochaetOS macht es keinen Sinn fremde Pakete umzuwandeln. Benutzer von Arch Linux werden mir sicher zustimmen, dass das Erstellen eigener Archpakete mit Hilfe von makepkg und dem Arch Build System(ABS) eine unkomplizierte Sache ist.
Um Pakete für ConnochaetOS zu bauen, empfand ich es am einfachsten mir das ABS zu installieren und die dort bereitgestellten PKGBUILDs an meine Bedürfnisse anzupassen.

pacman -S abs
pacman -S base-devel

Führt man danach als Benutzer root abs in einem Terminal aus, wird das Verzeichnis /var/abs mit den PKGBUILDs der verschiedenen Repos core, extra und community gefüllt. Die PKGBUILDs der Software befinden sich im namensgleichen Verzeichnis, welches nur noch auf den Rechner mit ConnochaetOS kopiert werden muss oder auch gleich an Ort und Stelle benutzt werden kann.
In meinem Fall wollte ich drei meiner Favoriten mtPaint, Irssi und C* Music Player für die i586 Architektur und ConnochaetOS übersetzen. Dazu genügt es, das sogenannte ARCH-Feld um den Eintrag 'i586' zu erweitern.
Für Irssi war das schon der einzige Trick. Mit

makepkg -s

im Verzeichnis, wo auch das PKGBUILD liegt, konnte ich dann das Paket kompilieren und mit

pacman -U Name_des_Pakets.tar.xz

installieren.
Beim C* Music Player alias cmus brauchte ich hingegen noch die Bibliothek libao und musste libpulse und libmpg als Abhängigkeiten streichen. Auf dem Thinkpad 600 benutze ich sowieso ausschließlich ALSA.
Für mtPaint wurde noch die Bibliothek lcms2 benötigt, die ich zum erfolgreichen Kompilieren zuerst übersetzen und installieren musste. Kurz zusammengefasst muss man also lediglich Pakete für i586 kompilieren und ggf. Abhängigkeiten entfernen, die man sowieso nicht gebrauchen kann. Zum Schluss kann man dann jedes beliebige Programm auch mit ConnochaetOS benutzen. Einziger Nachteil: Man muss sich in Zukunft um die Updates selbst kümmern.

Ihr könnt alle PKGBUILDs und auch noch ein paar zusätzliche von KMandla mit Hilfe des folgenden Links herunterladen.

ConnochaetOS_PKGBUILDs.tar

Hier ist noch ein PKGBUILD-Beispiel mit Irssi:

# $Id: PKGBUILD 125226 2011-05-25 19:11:10Z foutrelis $
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Dan McGee <dan@archlinux.org>
pkgname=irssi
pkgver=0.8.15
pkgrel=5
pkgdesc="Modular text mode IRC client with Perl scripting"
arch=('i586')
url="http://irssi.org/"
license=('GPL')
depends=('glib2' 'openssl' 'perl')
optdepends=('perl-libwww: for the scriptassist script')
backup=(etc/irssi.conf)
source=(http://irssi.org/files/${pkgname}-${pkgver}.tar.bz2)
options=('!libtool')
md5sums=('1dcb3f511b88df94b0c996f36668c7da')
build() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  ./configure --prefix=/usr
              --enable-ipv6
	      --with-proxy
	      --sysconfdir=/etc
	      --with-perl-lib=vendor
  make
  make DESTDIR="${pkgdir}" install
}

Irssi: Benutzerdefinierten Sound bei Benachrichtigung abspielen

Gibt es noch jemanden da draußen, der das Modul pcspkr standardmäßig deaktiviert? Während es sich danach definitiv entspannter auf der Konsole leben lässt, vermisse ich bei meinem IRC-Klienten Irssi jedoch die hörbare Benachrichtigung, wenn mein Chatname in irgendeinem Kanal erwähnt wird. Die Anleitung mit Tips&Tricks zu Irssi ist in Sachen Benachrichtung ziemlich eindeutig. Innerhalb von Irssi genügt es

/set beep_when_window_active ON
/set beep_when_away ON
/set beep_msg_level MSGS NOTICES DCC DCCMSGS HILIGHT
/set bell_beeps ON

auszuführen und wenn man gleichzeitig noch Screen benutzt ist STRG+a STRG+g ausreichend, um von einer visuellen Nachricht auf die hörbare umzuschalten.
Nur ohne das Modul pcspkr wird kein Systemklang abgespielt, weswegen ich mir das Perl-Skript beep.pl von der offiziellen Irssi-Homepage heruntergeladen habe. Um es automatisch zu starten, muss es nach ~/.irssi/scripts/autorun verschoben werden. Alternativ kann man es auch nach ~/.irssi/scripts/ kopieren und von dort einen Symlink nach autorun anlegen.
Mit

/set beep_command aplay /home/apo/alarm.wav

wird der benutzerdefinierte Abspielbefehl festgelegt. In meinem Fall wird mit aplay eine Wav-Datei abgespielt. Gleichzeitig kann man auch mit

/set beep_when_not_away ON

jederzeit und nicht nur bei Abwesenheit mit dem Beepbefehl geweckt werden.
Wer noch rätselt, ob es für diese Zwecke Fanfaren- oder Vuvuzelaklänge sein sollen, kann es auch ganz retro angehen lassen und auf den algorithmischen Symphonieeinzeiler zurückgreifen, den ich vor ein paar Monaten hier mal vorgestellt habe. 😀