Anzeigen von Aufgaben aus Taskwarrior in Conky

Diese Tutoriu/m zeigt, wie man Aufgaben, die man in Taskwarrior verwaltet in Conky anzeigen lassen kann.

Benutzte Komponenten

Die Versionen der hier benutzten Software:

  • Conky Version 1.8.1
  • Taskwarrior Version 1.9.4
  • Bash 4.1.10(2)

Desweiteren benutzen wir noch:

  • Einen benutzerdefinierten Bericht aus Taskwarrior
  • ein bash-script
  • einen Eintrag in der Datei ~/.conkyrc

Erstellen des Berichts in Taskwarrior

Das erstellen benutzerdefinierter Berichte erfolgt in der Datei ~/.taskrc. Hierfuer gibt es im Internet Anleitungen (zum Beispiel die Homepages des Taskwarrior Wiki oder von Dirk Deimeke).

Fuer unseren Bericht – den ich mal conky genannt habe – tragen wir nun folgende Zeilen in die Datei ~/.taskrc ein:

...
report.conky.color=off
report.conky.discription=Tasklist for Conky
report.conky.columns=id,due,priority,description_only
report.conky.labels=ID,Faellig,Pri.,Beschreibung
report.conky.sort=due+,priority+,description_only+
report.conky.limit=10
report.conky.dateformat=Y-M-D
report.conky.filter=status:pending
...

Selbstredend kann- und sollte man den Bericht noch an persoenliche Beduerfnisse anpassen.
Den Bericht schauen wir mal an:

user@rechner/$ task conky

ID  Faellig     Pri. Beschreibung
--- ---------- ----- --------------------------
112 2011-05-10  H    Dringende Aufgabe
100 2011-05-10  L    Nicht so dringende Aufgabe

2 tasks, 2 shown
user@rechner/$

Dieser Bericht enthaelt aber Leerzeilen und einen Status in der letzten Zeile, Das brauchen wir in einer kurzen Anzeige in Conky aber nicht. Deshalb bereiten wir die Ausgabe in einem Script fuer Conky auf.

Das Bash Script

Hier wird jetzt die Ausgabe fuer Conky “bereinigt”. Die letzte Zeile wird geloescht und die Leerzeilen werden entfernt.
Dieses Script hab ich conky_task genannt. Es muss natuerlich ausfuehrbar sein.

#!/bin/bash

# Script to write tasks to stdout
# -bon  "Beamer mode" on; To mask your tasks with a phrase
# -boff "Beamer mode" off

TASKFILE=/tmp/tasks
TMPFILE=/tmp/task_tmp
BFILE=/tmp.conky.beamer

if [ -e $BFILE ]; then
    if [ "`cat $BFILE`" == "1" ]; then
        echo -e "Wenn du dies lesen kannst,\nsteckst du deine    Nase in Angelegenheiten,\ndie dich nichts angehen!"
        exit 0
    fi
fi

task conky > $TASKFILE

sed -e '/^$/d;$d;:x s/^\( *\) /\10/;tx' $TASKFILE > $TMPFILE
mv $TMPFILE $TASKFILE

while read i
do
    echo "$i"
done < $TASKFILE

Anzeige in Conky

Hier kommen wir zum letzten Schritt. Die Anzeige der Aufgaben in Conky.
Dazu werden folgende Zeilen in die Konfiguration von Conky eingefuegt. Genauer gesagt in die Sektion nach “TEXT”.

...
${color grey}Aufgaben $hr $color
${texeci 10 /pfad/zu/conky_task}
...

Die erste Zeile schreibt nun “Aufgaben” auf den Bildschirm und die eigentlich interessante Zeile ist die zweite. Hier wird im Intervall von 10 Sekunden die Datei /pfad/zu/conky_task ausgefuehrt.
Sollte die Ausgabe nicht komplett sein kann man in der Datei ~/.conkyrc den Wert der Variable “text_buffer_size” hochsetzen. Ich habe ihn auf “text_buffer_size 1024″ gesetzt und die Ausgabe ist komplett.
Zusaetzlich muss man unter Umstaenden die Breite der Ausgabe noch anpassen.

Damit werden die Aufgaben aus dem Bericht in Conky angezeigt.

 

Vielen Dank für den Kommentar mit der Korrektur, Daniel. Ich habe es geändert. Der Text wurde von einer statischen Seite auf einen Artikel umgesetzt und weiß leider nicht ob -und wenn ja wie- die Kommentare dann übernommen werden können. Da es auch der einzige Kommentar zu der Seite ist, habe ich mir erlaubt deinen Kommentar hier noch mal im Artikel anzuhängen:

Daniel schrieb:

Hallo,
danke für die sehr sehr schoene Anleitung.
Ich musste nur die Klammern in der Zeile 14:
exit(0) ::::: zu ::::: exit 0
entfernen, dann lief und läuft es immernoch perfekt :).

Termine aus Calcurse in conky anzeigen

In diesem Tutorium wird erklärt, wie man Termine von heute und morgen mittels Conky auf dem Desktop anzeigen lassen kann.
Das machen wir mittels der Ausgabe von Calcurse, die per bash script platzsparender gemacht wird. Jeder Termin wird dann eine Zeile belegen.

Programme

Die Versionen der hier benutzten Software:

  • Conky Version 1.8.1 (link)
  • Calcurse Version 2.8 (link)
  • Bash 4.1.10(2)

Das Script

Im Script werden die Daten aus Calcurse in einer Datei gespeichert. Anschliessend wird die umformatiert in eine Datei geschrieben. Diese Datei liest Conky dann aus. Ich habe das Script hier einfach conky_cal genannt. Es sollte natürlich ausführbar sein.
Die Variable DATEFMT muss das Format enthalten, dass auch in Calcurse als “input_datefmt” (General options -> Punkt [9]) definiert ist.
Ausserdem gibt es noch einen “Beamer mode”. Hier wird einfach nur der Satz “—– This information is not for your eyes —–” ausgegeben. Man möchte ja unter Umständen nicht in der Besprechung beim Kunden seine ganzen Termine per Beamer an die Wand schmeissen ;-) .

conky_cal

#!/bin/bash
# Script to write appointments from today or tomorrow to stdout
# -m    Appointments for Tomorrow
# -bon  "Beamer mode" on;
#   Shows only "----- This information is not for your eyes -----"
# -boff "Beamer mode" off

BFILE=/tmp/conky_cal.beamer
DATEFMT="%Y-%m-%d" # Be sure to set the same date format as in calcurse here

# Turn on "beamer mode"
BOn(){
    echo "1" > $BFILE
    exit 0
}

# Turn off "beamer mode"
BOff(){
    rm -f $BFILE
    exit 0
}

DateToday(){
    DATUM=$(date +"${DATEFMT}")
    APPS=/tmp/apt
    APPTMP=/tmp/apt_tmp
}

DateTomorrow(){
    DATUM=$(date -d "+1 day" +"${DATEFMT}")
    APPS=/tmp/apt_m
    APPTMP=/tmp/apt_tmp_m
}

WriteFile(){
    calcurse -d $DATUM > $APPTMP

    sed -n -e '/ - /b time
        /^$/d;1d;s/^ \* /-/p
        t
        :time
        /^$/d;1d;s/^ - //;$!N;s/\n/ /p
        ' $APPTMP > $APPS
}

ReadFile(){
    while read I
    do
        echo $I
    done < $APPS
}

# Check "beamer mode"
if [ "$1" == "-boff" ]; then
    BOff
fi

if [ -e $BFILE ]; then
    if [ "`cat $BFILE`" == "1" ];then
        echo "----- This information is not for your eyes -----"
        exit 0
    fi
fi

case "$1" in
    -bon)
        BOn
        ;;
    -boff)
        BOff
        ;;
    -m)
        DateTomorrow
        WriteFile
        ReadFile
        ;;
    *)
        DateToday
        WriteFile
        ReadFile
        ;;
esac
Die Anzeige in Conky

Dazu ruft man in Conky die Datei im gewählten Intervall auf. Ein Eintrag in der Datei ~/.conkyrc kann folgendermassen aussehen:

~/.conkyrc
...
 ${color grey}Termine von heute $hr $color
 ${texeci 60 /pfad/zu/conky_cal}${color grey}Termine von morgen $hr $color
 ${texeci 60 /pfad/zu/conky_cal -m}
 ...

Damit werden die Termine auf dem Bildschirm alle 60 Sekunden aktualisiert. Den Eintrag sollte man natürlich noch auf die persönlichen Gegebenheiten anpassen.

Das war auch schon alles.
Jetzt sollte Conky die Termine Anzeigen.

Ab Version 3.0.0 kann man in Calcurse das Ausgabeformat selber festlegen. Das ist sehr angenehm, da sich mit Änderungen das komplette Bash-Script einsparen läßt.

Das macht man auf folgende Weise. In der Datei ~/.conkyrc ändert man die Zeilen für die Termine zu folgendem:

~/.conkyrc
...
 ${color grey}Termine $hr $color
 ${texeci 60 calcurse -r2 --format-apt='%S-%E %m\n' --format-recur-apt='%S-%E %m\n' --format-event=' - %m\n' --format-recur-event=' - %m\n'}
 ...

Die Parameter und deren Anpassung lassen sich in der man page zu Calcurse nachlesen.

Der “Beamer mode” ist damit natürlich leider auch raus.

Viel Spass damit.

by MaschinenHans

Sondertasten der Tastatur mit Bordmitteln belegen

Hier wird beschrieben, wie man Sondertasten auf der Tastatur mit “Bordmitteln”, also ohne zusätzliche Programme (wie LinEAK oder ähnliche) belegen kann.

Das ist nicht kompliziert, aber es erfordert ein paar Arbeitsschritte. Diese sind:

  1. Herausfinden der schon erkannten Tasten
  2. Herausfinden der Tasten, die der Kernel nicht erkennt
  3. Kernel die entspr. Tasten mitteilen
  4. Vervollständigen der Keycodes für den X-Server
  5. X-Server die Tasten mitteilen
  6. Dem Windowmanager die neuen Tasten mitteilen und diese funktionstüchtig machen

Also beginnen wir ganz vorne.
Als erstes sollte man sich eine Tabelle machen, die folgende Form haben kann (hier: mit Beispieleinträgen):

Taste Keycode X-Symbol Bemerkungen
Kernel input.h X-Server
Mute 160 XF86AudioMute Ton Stummschalten
Vol - 174 XF86AudioLowerVolume
Vol + 176 XF86AudioRaiseVolume

In diese Tabelle trägt man dann erst mal alle Tasten ein, die man belegen möchte.
Wichtig ist für uns, das wir auf jeden Fall nachher für jede Taste ein Symbol des X-Servers haben.

Herausfinden der Tasten, die der Kernel nicht erkennt

Wenn ,em>xevgar keine Ausgabe liefert erkennt – wie schon gesagt – der Kernel die Taste nicht.

In diesem Falle sieht man sich die Datei /var/log/syslog an. Am einfachsten ist das durch das Öffnen mit tail -f in einer Konsole. Der Aufruf (als root) wäre dann:

root@rechner$ tail -f /var/log/syslog

Hier sollte bei der Tastenbetätigung folgendes erscheinen:

Nov 9 14:57:49 rechner kernel: atkbd.c: Unknown key released (translated set 2, code 0xda on isa0060/serio0).
Nov 9 14:57:49 rechner kernel: atkbd.c: Use 'setkeycodes e05a ' to make it known.

Das Interessante hier ist der Ausdruck nach setkeycodes. Dieser Ausdruck (im obigen Fall e05a) wird in der Tabelle unter Keycode kernel eingetragen.

Nach dem eintragen der Tasten forscht man in der Datei /usr/include/linux/input.h nach einem sinnvollen Keycode zu der Taste.

Auszug aus input.h:

...
#define KEY_PROPS 130
#define KEY_UNDO 131
#define KEY_FRONT 132
#define KEY_COPY 133
#define KEY_OPEN 134
#define KEY_PASTE 135
#define KEY_FIND 136
#define KEY_CUT 137
#define KEY_HELP 138
#define KEY_MENU 139
#define KEY_CALC 140
#define KEY_SETUP 141
#define KEY_SLEEP 142
#define KEY_WAKEUP 143
#define KEY_FILE 144
...

Dieser Keycode wird dann wiederum in die Tabelle unter Keycode input.h bei der entsprechenden Taste eingetragen.

Kernel der entsprechenden Tasten mitteilen

Dem Kernel werden die Tasten bekannt gemacht, in dem man in die Datei /etc/rc.d/rc.local für jede Taste folgende Zeile einfügt:

setkeycodes [Keycode Kernel]   [Keycode input.h] #[Kommentar]

Entweder nach der Ausführung von rc.local, oder nach einem Neustart des Systems sind die Tasten dem Kernel bekannt.

Vervollständigen der Keycodes für den X-Server

Das Vervollständigen der Tabelle geschieht wieder über xev. Jetzt sollte wie in „Herausfinden der schon erkannten Tasten“ zu jeder Taste ein Keycode für den X-Server vorhanden sein und in unserer Tabelle eingetragen werden.

X-Server die Tasten mitteilen

Um die Tasten jetzt noch mit Symbolen zu versehen, so dass man sie über die Tastenbelegung im Windowmanager ansprechen kann, editiert man entweder die Datei .Xmodmap~/.

Auch das ist kein Hexenwerk.

Ein Abschnitt aus dieser .Xmodmap könnte dann so aussehen:

...
!! Volume Control
keycode 160 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
...

Wobei der Keycode des X-Servers ist. Die Ausdrücke rechts des Gleichheitszeichens erfährt man aus der Datei /usr/X11R6/lib/X11/XKeysymDB.
Hier noch ein Auszug aus dieser Datei:

...
XF86AudioLowerVolume :1008FF11
XF86AudioMute :1008FF12
XF86AudioRaiseVolume :1008FF13
XF86AudioPlay :1008FF14
XF86AudioStop :1008FF15
XF86AudioPrev :1008FF16
XF86AudioNext :1008FF17
...

Damit wird die Tabelle dann mit den Symbolen für den X-Server komplettiert und man besitzt alle Informationen um die Tasten im Windowmanager einzurichten.
Nach dem Neustart des X-Servers (oder man möchte zum äußersten schreiten und das System erneut neu Starten) kennt der X-Server nun hoffentlich alle zusätzlichen Tasten.
Man kann dies wiederum mit xev nachprüfen, wenn man möchte, oder zur Fehlersuche nutzen.

Dem Windowmanager die neuen Tasten mitteilen und diese damit funktionstüchtig machen

Kommen wir nun in die Zielgerade und erklären dem Windowmanager, was er mit der Taste anfangen soll. Als Beispiel hierfür soll mal ein Auszug aus der Datei keys dienen, die in Fluxbox die Tastenkürzel festlegt.

...
none XF86Mail :ExecCommand /usr/bin/thunderbird
none XF86WWW :ExecCommand /usr/bin/firefox
none XF86Calculator :ExecCommand /opt/kde/bin/kcalc
...

Das sollte dann natürlich auch in KDE, GNOME, usw. funktionieren. Natürlich ist die Vorgehensweise in den verschiedenen Desktopsystemen und Windowmanagern unterschiedlich.

Nach dem evtl. benötigten Neuladen der Windowmanager Konfiguration (darf’s noch ein Neustart sein? ;-) ) sollten die Tasten ordnungsgemäß funktionieren.

Dann sind wir auch schon im Finale: Das Testen der neuen Konfiguration.

Schlußwort

Warum nun der ganze Zirkus, wenn’s doch so schön einfache Programme gibt, die bei der Anmeldung automatisch geladen werden?

Nun.
Ich habe persönlich eine sehr herzliche Abneigung dagegen, bei jedem Rechnerstart erst mal vor dem Bildschirm zu sitzen und zu warten bis alle kleinen Zusatzprogramme geladen sind und laufen.
Zumal jedes dieser Programme zusätzlichen Speicher und zusätzliche Prozessorzeit braucht, die man – meiner Meinung nach – minimieren kann, indem man Funktionen von Programmen nutzt, die in jedem Fall geladen werden (in diesem Fall der Kernel, der X-Server und der Windowmanager).

Ein weiterer Effekt dieses Vorgehens ist, das man nach diesem Ablauf eigentlich alle Daten zur Hand hat, um Projekte wie LinEAK zu unterstützen. Diese brauchen die Daten, die in diesem Tutorium gesammelt wurden, um die Breite der unterstützten Hardware zu erweitern. Was wiederum Ein – und Umsteigern sehr zugute kommt, die noch ganz am Anfang stehen und evtl. auf diese Helferlein angewiesen sind, oder sich nicht wirklich tief in die Materie einarbeiten wollen und mögliche Nachteile dafür in Kauf nehmen.

Wenn dieses Tutorium ein paar Leuten hilft besser mit Linux klar zu kommen hat es seinen Sinn erfüllt.

Pakete über den Dateinamen finden

Ab und zu taucht das Problem auf, das man wissen möchte, welche Dateien in einem Paket enthalten sind. Oder andersrum, man weiß den Dateinamen und möchte wissen, in welchem Paket diese Datei enthalten ist (zum Beispiel bei der Installation von Software).

Die Lösung ist recht einfach.

Auf dem Installationsmedium von Slackware befindet sich die Datei /slackware/MANIFEST.bz2 .
In dieser gepackten Textdatei befinden sich eine Liste der in den Paketen enthaltenen Dateien.
Nach dem entpacken kann man also mit dem Programm seiner Wahl nach den Informationen suchen, die man haben möchte.

Mittels pppd und einem UMTS-Modem eine Internetverbindung herstellen

Vorwort

Das Wissen fuer dieses Tutorium kommt leider nicht von mir.
Ich habe hier im Grunde nur das Tutorium von Philipp Heumos genommen und es abgewandelt.
Vielen Dank fuer sein freundliches Einverständnis hierzu.

Die ganzen Eingaben auf der Konsole werden alle als Benutzer “root” ausgeführt.

Kontrolle der Hardware

Zuerst wird mal das Modem an den Rechner angeschlossen.
Danach wird kontrolliert, ob das System das Modem erkennt. Der Befehl
lsusb listet alle angeschlossenen USB Geräte auf:

root@rechner/# lsusb 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E270 HSDPA/HSUPA Modem
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 ... 

Hier in der zweiten Textzeile ist schon ein Modem. In diesem Falle ein web’n’walk Stick IV. Auch wenn ein Modem fest im Gerät verbaut ist (z. B. Netbooks oder Notebooks) hilft lsusb unter Umständen. In meinem Netbook war es intern per USB angeschlossen und wurde damit auch angezeigt.
Als naechstes erfolgt die Kontrolle, ob die benötigten Gerätedateien vorhanden sind.

root@rechner/# ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 Apr  5 09:36 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Apr  5 09:36 /dev/ttyUSB1 

Das Gerät /dev/ttyUSB0 langt im Prinzip schon. Die Hardware ist also vorhanden und erkannt.

Kontrolle der benötigten Module

Das einzige Modul, das wir hier benötigen ist das Modul usbserial. Die Prüfung auf das Vorhandensein geschieht durch:

root@rechner/# lsmod | grep usbserial
usbserial              32522  1 option 

Das ist also auch geladen. Damit sind alle Teile vorhanden, die durch Linux selbst für die Hardware gestellt werden. Als nächstes kommen wir zur Konfiguration des pppd.

Konfiguration des pppd

Hier erstellen wir zuerst mal die Datei /etc/ppp/peers/umts mit dem Editor der Wahl. Eventuell sind noch benötigte Verzeichnisse anzulegen. Die Datei hat folgenden Inhalt:

hide-password
noauth
connect "/usr/sbin/chat -V -f /etc/ppp/umts.chat"
debug
/dev/ttyUSB0
460800
defaultroute
noipdefault
noccp
nobsdcomp
local
user " "
password " "
usepeerdns
connect-delay 10000
persist

Anschliessend brauchen wir noch ein ‘Chat-script’ (/etc/ppp/umts.chat):

ABORT BUSY
ABORT 'NO CARRIER'
ABORT VOICE
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
ABORT DELAYED
# Modeminit
' ' 'ATZ'
TIMEOUT 5
OK AT+CPIN?
'READY-AT+CPIN=[pin]-' ''
TIMEOUT 20
'OK' 'AT+CGDCONT=1, "IP", "[ap]"'
'OK' 'ATDT=[tel]'
CONNECT \d\c

In diesem Listing müßen jetzt noch ein paar Ersetzungen gemacht werden:

  • Zeile 11: [pin] – Wird durch die eigene PIN der verwendeten SIM-Karte ersetzt
  • Zeile 13: [ap] – Wird durch die eigene AP ersetzt. Oft ist sie “internet”, aber Vorsicht: Diese Angabe diente- oder dient der Tarifwahl. Hier kann man unter Umständen durch eine falsche AP Geld verlieren.
  • Zeile 14: [tel] – Hier kommt die Telefonnummer hinein. Hier gibt es – nach meinem Wissen – nur zwei Möglichkeiten:
    • *99#
    • *99***1#

Netzwerk einstellen

Hier ist jetzt nur noch die Datei /etc/resolv.conf zu sichern und einen Link nach /etc/ppp/resolv.conf zu erstellen.
Also; zu erst die Sicherung der originalen Datei:

root@rechner/# mv /etc/resolv.conf /etc/resolv.conf.bak

Anschliessend legen wir einen Link an, der auf die richtige Datei zeigt. Das müssen wir leider machen, da pppd diese Datei standartmäßig in /etc/ppp/ anlegt.

root@rechner/# ln -s /etc/ppp/resolv.conf /etc/resolv.conf

Verbindung herstellen

Die Verbindung wird einfach durch folgenden Aufruf hergestellt:

root@rechner/# pppd call umts detach

Nach einigen Sekunden steht die Verbindung dann schon.

Verbindung prüfen

Prüfen kann man die Verbindung dann durch einen ‘ping’. Sinnvollerweise pingt man einen Server an, bei dem man davon ausgehen kann, das er immer läuft. Die großen Suchmaschinen bieten sich da an.

root@rechner/# ping www.google.de
PING www.l.google.com (209.85.149.103) 56(84) bytes of data.
64 bytes from ber01s02-in-f103.1e100.net (209.85.149.103): icmp_req=1 ttl=57 time=29.8 ms
64 bytes from ber01s02-in-f103.1e100.net (209.85.149.103): icmp_req=2 ttl=57 time=29.8 ms
64 bytes from ber01s02-in-f103.1e100.net (209.85.149.103): icmp_req=3 ttl=57 time=29.9 ms
64 bytes from ber01s02-in-f103.1e100.net (209.85.149.103): icmp_req=4 ttl=57 time=30.2 ms
64 bytes from ber01s02-in-f103.1e100.net (209.85.149.103): icmp_req=5 ttl=57 time=30.0 ms
64 bytes from ber01s02-in-f103.1e100.net (209.85.149.103): icmp_req=6 ttl=57 time=30.1 ms
^C
--- www.l.google.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5007ms
rtt min/avg/max/mdev = 29.846/30.017/30.267/0.272 ms

Wenn die Pakete – wie hier – wieder zurückkommen, haben wir eine Verbindung zum Internet und sollten Surfen koennen.
Viel Freude mit der schönen neuen Verbindung.

firefox auf mehreren Monitoren

Ich habe mehrere Monitore. Zwei an der Zahl und diese sind nicht per Xinerama oder TwinView zusammengefasst. Ich möchte aber auch gleichzeitig den firefox auf beiden Bildschirmen (:0.0 und :0.1) laufen haben. Das mag der firefox aber leider nicht. Der Start wird mit einem Fenster mit folgendem Inhalt abgebrochen:
Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system.
Eine mögliche Lösung dieses Problems werde ich im folgenden beschreiben.
Weiterlesen

Systemrettung mit der Slackware-CD/DVD

Es ist schnell passiert: Bei einem System-Update wurde etwas im Boot-Verzeichnis verändert. Jedoch startet nach einem Reboot das System nicht mehr, weil mkinitrd und / oder lilo nicht ausgeführt wurden, sei es wegen Stromausfall oder weil es einfach vergessen wurde. In solchen und vielen anderen Fällen lässt sich das Live-System auf der Slackware-CD/DVD zur Systemrettung einsetzen. Weiterlesen

Slackware-LAMP einrichten

Die Kombination aus Linux-System, Apache-http-Server, MySQL-Datenbank und PHP-Modul ist ein beliebtes Softwarepaket für einen Web-Server. Im vollständig installierten Slackware-System sind die Einzel-Komponenten bereits vorkonfiguriert und lassen sich leicht einrichten. Weiterlesen