Yeah, ich hab GIMP 2.8

Vor ein paar Wochen ist die Bildbearbeitungs-Software GIMP in Version 2.8 erschienen, die jetzt endlich auch den Einfenster-Modus unterstützt. In den offiziellen Repos von Canonical ist das aber noch immer nicht enthalten.

GIMP 2.8 Splash ScreenVor ein paar Wochen ist die Bildbearbeitungs-Software GIMP in Version 2.8 erschienen, die jetzt endlich auch den Einfenster-Modus unterstützt. In den offiziellen Repos von Canonical ist das aber noch immer nicht enthalten.

Ich habe gestern Abend trotzdem mit wenig Aufwand die neue Version installieren können. Eine kurze Suche auf Google brachte mir neben jeder Menge englischsprachiger Seiten an Platz 2 auch eine deutsche Seite vom Computerclub Diedorf e.V., wo es eine kurze und einfache Anleitung gibt.

Eigentlich muss man nur ein neues Repository hinzufügen, und schon lässt sich GIMP ganz einfach auf Version 2.8 aktualisieren. Am einfachsten geht das über die Konsole:

sudo add-apt-repository ppa:otto-kesselgulasch/gimp

Das fügt das neue Repo hinzu, danach führt man einfach über apt-get das Update durch:

sudo apt-get update && sudo apt-get dist-upgrade

Damit wird GIMP, sofern installiert, auf 2.8 aktualisiert, und evtl. weitere verfügbare Updates werden auch gleich mit eingespielt. Ist GIMP noch nicht installiert, schaufelt man es mit folgendem Befehl auf die Platte:

sudo apt-get update && sudo apt-get install gimp

Abhängigkeiten werden dabei aufgelöst, und ggf. erforderliche Pakete gleich mitinstalliert.

Um den Einfenster-Modus in GIMP zu aktivieren, muss man im Hauptfenster der Bildbearbeitung im Menu Fenster den Haken bei Einzelfenster-Modus setzen. Wenn der Menüpunkt Fenster nicht zu sehen ist, einfach das GIMP-Hauptfenster breiter ziehen. :clap:

GIMP 2.8
GIMP 2.8 im Einfenster-Modus

tinc-VPN als sicheren Exit-Node

Guten Morgen,

nachdem der letzte Eintrag jetzt ja doch wieder ein Weilchen her ist (keine Sorge, ich habe auch die Artikelserie zum Thema Sicherheit nicht vergessen, ich bin nur aktuell 1. beschäftigt und 2. nicht sonderlich motiviert) habe ich hier mal wieder ein Goodie für euch:

Ein Script, das dafür sorgt, dass man seinen tinc-VPN-Server als Exitnode für einen Tunnel nehmen kann ohne sich dabei die Finger zu brechen.

Warnung: YMMV, ich habe alles auf der Konsole gemacht, ich habe keine Ahnung, ob sich das Script mit GUI-Foo wie z.B. dem network-manager verträgt.

Vorbereitung:

tinc installieren:

# apt-get install tinc

tinc.conf erstellen:

# echo "# Kurzname des Routers/Computers
Name = $NAME_DES_NODES
# Mit folgenden Computern versuchen zu verbinden
ConnectTo = $DEIN_SERVER
# Arbeitsweise des VPN
Mode = Router
# alternativen Port zu 655 verwenden
Port = 8656" > /etc/tinc/$DEIN_NETZWERK/tinc.conf

tinc-up erstellen:

# echo "#!/bin/sh
ip addr add dev $INTERFACE 1.2.3.4/24 broadcast 1.2.255.255
ip link set dev $INTERFACE up" > /etc/tinc/$DEIN_NETZWERK/tinc-up

tinc-down erstellen:

# echo "#!/bin/sh
ip route del default
ip route add default via $ORIGINAL_GATEWAY dev $INTERFACE" > /etc/tinc/$DEIN_NETZWERK/tinc-down

Dateien ausführbar machen:

# chmod +x /etc/tinc/$DEIN_NETZWERK/tinc-*

Keys erstellen:

# mkdir /etc/tinc/$DEIN_NETZWERK/hosts
# tincd -n $DEIN_NETZWERK -K

Dieser Befehl erstellt einen private- und einen public-key. Bitte beim private-key einfach mit Enter bestätigen und beim public-key
den Speicherort /etc/tinc/$DEIN_NETZWERK/hosts/$NAME_DES_NODES wählen.

Jetzt passt Du die host-Datei an

# vi /etc/tinc/$DEIN_NETZWERK/hosts/$NAME_DES_NODES

Folgende Eintragungen sind vor dem Key zu machen:

Address = $IP_DES_NODES
Address = $FQDN_DES_NODES_1
Address = $FQDN_DES_NODES_2
Port = 8656

Geh jetzt die gleichen Schritte auf Deinem Server nochmals durch. Du solltest jetzt auf Client und Server jeweils ein Exemplar der host-Datei haben, diese sollten natürlich unterschiedliche IPs haben und unterschiedliche Namen. Mein Laptop z.B. heißt loki, der Server heißt bifroest.

Jetzt kopierst Du die host-Datei von Deinem Client auf den Server und umgekehrt:

# scp /etc/tinc/$DEIN_NETZWERK/hosts/$NAME_DES_NODES root@server.

Wenn beide Dateien ausgetauscht sind sollten die beiden Rechner miteinander reden können:

# tincd -d 3 -n $DEIN_NETZWERK

startet den tinc-daemon mit log-level 3.

# tail -f /var/log/syslog

zeigt euch den Output. Wenn keine Fehlermeldungen aufblinken sollte es so weit tun.

Bis hierher ist das alles noch nichts besonderes, ihr habt jetzt also den ersten Schritt gemacht und könnt euren Server über ein VPN erreichen. So lange jetzt aber nicht alle Verbindungen über diesen Server geroutet werden, bringt euch das nicht wirklich weit.

Um sicherzustellen, dass das ganze Ding jetzt tut, was es soll, müsst ihr zunächst dem Server beibringen, das Richtige ™ zu tun.

Einsatz als Exitnode:

Dazu verbindet ihr euch mit dem Server:

$ ssh root@server.tld

und führt dort folgende Befehle durch:

# iptables -t nat --append POSTROUTING -i $DEIN_NETZWERK -j MASQUERADE
iptables -t nat --append POSTROUTING -j MASQUERADE
iptables -t nat --append PREROUTING -i $DEIN_NETZWERK -j ACCEPT
cat /proc/sys/net/ipv4/ip_forward

Das sorgt dafür, dass euer Server Verbindungen einfach durchschleift und sie nicht zwischendrin blockiert.

Wenn der Server so weit vorbereitet ist, könnt ihr das folgende Script auf dem Client ausführen:

#!/bin/sh
#I don't think that this is necessary but I'll do it anyway:
#License: CC
 
#define variables
 
GW="$(ip r get 8.8.8.8 | gawk '{print $3}')"
TUN="$IP_DES_SERVERS_IM_VPN"
INTERFACE="$(ip r get 8.8.8.8 | gawk '{print $5}')"
EXIT="$IP_DEINES_SERVERS/32"
 
# change routes
ip route del default
ip route add $EXIT via ${GW%0x*} dev ${INTERFACE%0x*}
ip route add $TUN dev $DEIN_NETZWERK
ip route add default via $TUN dev $DEIN_NETZWERK
echo 'nameserver 8.8.8.8' > /etc/resolv.conf
echo "routes established"
ip r show

Ja, das sind mindestens 2 dirty hacks: awk den Hex-Wert abgewöhnen und die resolv.conf überschreiben aber es funktioniert. Ich habe
das Script unter /etc/tinc/$DEIN_NETZWERK/tinc-route gespeichert. Außerdem habe ich ein weiteres Script angelegt:

# echo "#!/bin/sh
tincd -n $DEIN_NETZWERK" > /etc/tinc/$DEIN_NETZWERK/tinc-auto

Dieses dient dazu, beim Start der Netzwerkverbindung den tinc-daemon automatisch anlaufen zu lassen.

Meine /etc/network/interfaces habe ich angepasst wie folgt:

# dhcp-basiertes Kabelnetz
iface auto inet dhcp
pre-up "/etc/tinc/bifroest/tinc-auto"
post-up "/etc/tinc/bifroest/tinc-route"

Damit startet zunächst der tinc-daemon, dann bezieht das interface eine IP und dann werden die Routen angepasst.

Wenn ihr jetzt # mtr eingebt, sollte eure Route über euren Server verlaufen.

Fragen oder Anmerkungen wie immer jederzeit gern in den Kommentaren.

Amarok und SHOUTcast

Mein absolutes Lieblingsprogramm zur Verwaltung und zum Abspielen meiner lokalen MP3-Sammlung ist unter Linux schon immer AmaroK gewesen, das zusätzlich auch Internet-Radio und Podcasts wiedergeben kann.

Amarok Logo 256Mein absolutes Lieblingsprogramm zur Verwaltung und zum Abspielen meiner lokalen MP3-Sammlung ist unter Linux schon immer Amarok gewesen, das zusätzlich auch Internet-Radio und Podcasts wiedergeben kann.

Besonders gerne habe ich für Internetradio auf das SHOUTcast-Verzeichnis zurück gegriffen, welches eine schier unerschöpfliche Anzahl an Sendern aus alles Genres beinhaltet. Dass ich dabei auf die Country Music zugreife, ist keine Frage. :smoke:

Irgendwann im Laufe der Versionen, es müsste bei 2.2 gewesen sein, verschwand das SHOUTcast-Verzeichnis aus Amarok, was mir durch meine temporäre Linux-Abstinenz eigentlich ziemlich egal war. Aber nachdem ich nun mein Debian wieder am Laufen habe, will ich auch beim Arbeiten wieder Music hören, und startete bei Tante Gurgel eine kleine Suchabfrage. Gleich das erste Ergebnis brachte mir SHOUTcast zurück in AmaroK.

Der Artikel bezieht sich scheinbar auf Amarok 2.2, und die Menüstruktur ist in der aktuellen Version 2.5.0 etwas anders:
Unter Einstellungen -> Amarok einrichten ... findet sich links der Menüpunkt Skripte. Hier klickt man unten rechts auf Skripte verwalten, und dann wie im verlinkten Artikel angegeben auf Bewertung. Sucht in der Liste den Eintrag SHOUTcast Service (war bei mir der dritte), und klickt auf Installieren. Nach einem Neustart von Amarok steht SHOUTcast links unter Internet-Dienste zur Verfügung, und unter Einstellungen findet sich ein entsprechender Menüpunkt zur Konfiguration. :dup:

Amarok Skript installieren
Der Auswahl-Dialog zum Installieren neuer Skripte

Brauch ich den Schrott hier noch?

Heute habe ich für euch einen (oder genauer 2) Tipps, wie man sich einen Teil seiner Festplattenkapazität zurückholt.
Vielleicht kennt der eine oder andere die Situation, dass man zufälligerweise mal mit

$ls -a

den Inhalt seines home-Ordner anschaut und sich dabei denkt „Woher zum Teufel kommt dieser ganze Mist eigentlich?“

Nun, die Dateien mit einem Punkt vornedran (z.B. .nautilus) sind Konfigurationsdateien, die eure persönlichen Einstellungen speichern. Wenn ihr ein Programm deinstalliert, bleiben diese Konfigurationsdateien in der Regel erhalten. Das soll euch den Wiedereinstieg erleichtern, falls ihr das Programm doch wieder nutzen wollt.

Prinzipiell keine schlechte Idee – aber wenn man sich sicher ist, dass man ein bestimmtes Programm nicht mehr nutzen will, dann nervt das gewaltig. Erstens verbraucht es Speicherplatz und zweitens, viel wichtiger, sorgt es dafür, dass die Inhaltsanzeige des home-Ordners unübersichtlich wird und man nichts mehr findet.

Wenn man nun diese Konfigurationsdateien löschen will, kann man permanent von Hand

$ls -a
$rm -rf $Dateiname

eintippen. Oder man nutzt die Möglichkeiten, die einem die Linux-Bordmittel bieten. Zuerst erstellt man sich eine Liste, der gesammelten Konfigurationsdateien:

$ls -a > filelist

eine Liste aller im Ordner home enthaltenen Dateien. Achtung: Hierbei werden wirklich

    alle

Dateien angezeigt.

Diese Liste editiert ihr jetzt mit Hilfe von vi, gedit, nano, joe oder welchem Editor auch immer und löscht alle Verzeichnisse und Dateien, die ihr behalten möchtet.

Die neue Liste speichert ihr wieder ab.

Jetzt ruft ihr das Programm rm auf und übergebt ihm die Liste filelist als Input.

$cat filelist | xargs rm

Und schon hat euer home-Verzeichnis wieder ein paar Bytes mehr frei.

Ein ähnliches Vorgehen kann man auch beim Thema installierte Programme wählen. Hierbei lauten die Codes

#dpkg -l > proglist

und

#cat proglist2 | xargs apt-get remove --purge

Das

>

steht dabei für >

Achtung: Das file proglist ist absichtlich in einem von apt nicht lesbaren Format belassen worden. Dies habe ich mir selbst als Sicherheitsmaßnahme auferlegt um zu vermeiden, dass ich im Eifer des Gefechts versehentlich eine unbearbeitete Liste von Paketen zum Löschen vormerke.

Wenn jemand einen Tipp hat, wie man automatisiert aus proglist eine direkt nutzbare Paketliste generiert (sed, awk, whatever) und dabei eine Sicherungsmaßnahme einbaut dann postet den Tipp bitte in den Kommentaren. Danke.

Das file proglist2 ist die von Hand erstellte Liste der nicht mehr benutzten Pakete.

Unerwünschte Werbung blockieren

Hi, da ich leider zur Zeit nicht so viel schreiben kann, wie ich es mir wünschen würde, möchte ich euch die Wartezeit auf den nächsten Artikel meiner Serie ein wenig versüßen.

Hi,

da ich leider zur Zeit nicht so viel schreiben kann, wie ich es mir wünschen würde, möchte ich euch die Wartezeit auf den nächsten Artikel meiner Serie ein wenig versüßen.

Heute zeige ich euch, wie man nervige Werbung los wird.

Diesmal nicht im Browser mit Adblock Plus und NoScript, sondern direkt noch auf der IP-Ebene.

Um zu wissen, wie das funktioniert muss man zunächst das Konzept dahinter kennen. Jede Website, die Werbung einblendet, liefert euch den Content via TCP/IP aus. Der Werbecontent wird dabei aber nicht direkt auf dem Server gehostet, der auch die Website enthält, sondern in der Regel von externen Anbietern geliefert wie zum Beispiel Google Ads. Euer Browser sucht also mit Hilfe des DNS nach der IP-Adresse, die zu $Werbeserver gehört und fordert von dort die Pakete an.

Wenn man jetzt also im Internet surft liefert man diesen externen Anbietern erstens ein wunderbares Bewegungsprofil und zweitens blockiert der Werbecontent die Bandbreite, die man eigentlich für den Nutztraffic braucht (das spielt gerade im mobilen Netz eine wichtige Rolle.)

Um diese Problematik zu umgehen gibt es eine relativ einfache Lösung: Ich sorge dafür, dass mein Rechner (oder mein Router, wenn ich die Lösung fürs gesamte Netzwerk einbauen will) diese externen Anbieter nicht mehr anwählen kann.

Dazu öffne ich mit root-Rechten ausgestattet die Datei /etc/hosts.

Dort trage ich die Website, die ich blockieren möchte, nach folgendem Muster ein:

127.0.0.1 $Website

Dadurch wird der unerwünschte Werbecontent nicht vom Server abgerufen sondern der Computer greift auf den localhost zu (sprich, sich selbst.) So lange dort die abzurufende Datei nicht hinterlegt ist (ich weiß ja nicht, was in eurer /var/www so rumschwirrt…) wird statt der Werbung eine Fehlermeldung auf der Seite angezeigt. Dadurch verringern sich die Ladezeiten besonders auf von Werbung überfrachteten Seiten signifikant.

Als Beispiel hänge ich euch meine hosts-Datei an.

Auf diese Weise kann man nicht nur Werbung ausschalten sondern auch allerlei andere Seiten blockieren bzw. umleiten. Ich bin mir sicher, dass da der eine oder andere eine schlaue Idee hat und freue mich wie immer über Kommentare.

Ebenso gilt wie immer: Für Risiken und Nebenwirkungen bemühen Sie die Suchmaschine Ihrer Wahl oder fragen Sie in den Kommentaren.

Textdatei html-komform konvertieren unter Linux

Letztens hatte ich eine Textdatei, die ich schnell in HTML wandeln wollte. Das Grundgerüst und die Bodytags einfügen geht ja schnell. Doch was ist mit den Sonderzeichen und Umlauten, die natürlich auch in normgerechter Schreibweise vorhanden sein sollen. Beispielsweise wird aus einem ü ein ü und Ö ein Ö. Ich habe dann dieses Problem schnell mit dem Streameditor sed gelöst. Erstellt zuerst die folgenden Dateien und füllt sie mit dem Inhalt in den Rahmen.

Es kann vorkommen, dass unter Linux eine Textdatei gewandelt werden muss. Als Beispiel bringe ich hier eine einfache Textdatei, die HTML-Konform konvertiert werden muss. Dazu gehören, dass alle Umlaute gewandelt werden müssen. Also aus einem ü wird ü und Ö ein Ö. Ich löse dieses Problem gerne mit dem Streameditor sed.


Dazu ein kleines Übungsbeispiel:

Inhalt der Datei txt2html.sh

#!/bin/bash
DATEINAME=$1
sed -f txt2html.sed $DATEINAME.txt >> $DATEINAME.html

Inhalt der Datei txt2html.sed

s/ä/\ä\;/g;
s/Ä/\Ä\;/g;
s/ü/\ü\;/g;
s/Ü/\Ü\;/g;
s/ö/\ö\;/g;
s/Ö/\Ö\;/g;
s/ß/\ß\;/g;

Inhalt der Datei beispiel.txt

# Beispieldatei für die Textkonvertierung- und Bearbeitung.
#
# Obst und Gemüse
1	Erdbeere
2	Zitrone
3	Apfel
4	Banane
5	Pfirsich
#6	Kirsche
7	Gurke
#8	Kiwi
9	Möhre
10	Salat
11	Aubergine
12	Mais
#13	Bohnen
14	Ananas
15	Spargel

Nun kann an den gewünschten Effekt sehen, wenn das Script txt2html.sh mit den folgenden Optionen aufgerufen wird:
thomas@linux: ~>./txt2html.sh beispiel

Kurztipp: Tooltipp im IceWM umplatzieren

Onli schreibt zum Tooltipp im IceWM folgendes:

Onli schreibt zum Tooltipp im IceWM folgendes:

Wenn ShowWorkspaceStatus an ist, wird in einer kleinen Nachricht der Name der aktuellen Arbeitsfläche angezeigt. Diese Nachricht liegt immer knapp über der Taskbar. Wird diese gar nicht angezeigt, z.B. weil ein Dock ihre Funktion übernimmt das von der Nachricht blöderweise fast verdeckt wird, bekommt man die Anzeige scheinbar nur dort weg, indem man die gesamte unsichtbare Taskbar per TaskBarAtTop=1 nach oben legt.

Da ich mich mit dem IceWM nicht wirklich auskenne, bedanke ich mich bei Onli, und übernehme ich das mal so wie es ist.

Debian 6 „Squeeze“ vom USB-Stick installieren

Wer das neue Debian auf älterer Hardware ohne CD-ROM-Laufwerk, oder auf Netbooks installieren möchte, kann die heruntergeladenen ISO-Images auf CD oder DVD brennen, und dann ein USB-Laufwerk verwenden. Ist auch dieses nicht vorhanden, nimmt man einfach einen USB-Stick.

UNetbootin unter Win7
UNetbootin unter Win7
Wer das neue Debian auf älterer Hardware ohne CD-ROM-Laufwerk, oder auf Netbooks installieren möchte, kann die heruntergeladenen ISO-Images auf CD oder DVD brennen, und dann ein USB-Laufwerk verwenden. Ist auch dieses nicht vorhanden, nimmt man einfach einen USB-Stick.

Zunächst gibt es das Tool „UNetbootin”, welches es für Linux und Windows gibt. Dieses Tool lad die gewünschte Distribution aus dem Netz, und kopiert sie bootfähig auf einen USB-Stick. Alternativ lassen sich auch bereits auf der Festplatte vorhandene ISO-Images auf den Stick befördern. Für Mausschubser ist das die ideale Lösung, schnell und komfortabel.

Natürlich gibt es auch die Option, über die Linux-Konsole einen bootfähigen USB-Stick zu erstellen. Die folgende Lösung fand ich vorhin drüben bei Uwe, der die 32bit-Netinstall-ISO für ein altes Notebook auf den kleinen Speicherfreund packte.

root@host:~# wget -N 
root@host:~# dd if=debian-6.0.0-i386-netinst.iso of=/dev/sdb
387380+0 Datensätze ein
387380+0 Datensätze aus
198338560 Bytes (198 MB) kopiert, 51,5801 s, 3,8 MB/s
root@host:~# sync

In beiden Varianten sind natürlich die Pfade an die lokalen Gegebenheiten anzupassen.

Groß- / Kleinbuchstaben wandeln

Vielleicht geht es euch ja auch so und ihr wollt auf der Kommandoebene, der Shell, Zeichen im Dateinamen wandeln. So sollen zum Beispiel Groß- und Kleinbuchstaben oder umgekehrt gewandelt werden, damit es einheitlich ist. Außerdem unterscheidet Linux ja zwischen den verschiedene Schreibweisen. Wenn möglich, dann bitte mehrere Dateien gleich auf einen Rutsch. Eine mögliche Lösung bietet der Befehl tr an (die genaue Beschreibung des Befehls findet ihr hier).

Vor einiger Zeit wurde ein Script geschrieben, welches genau diese Anforderungen erfüllt. Das fertige Shellscript sieht dann so aus und konvertiert Großbuchstaben in Kleinbuchstaben. Dieses Script könnte man unter dem Namen lowercase speichern.

#!/bin/bash
# get filename
echo -n "Enter File Name : "
read fileName
 
# make sure file exits for reading
if [ ! -f $fileName ]; then
echo "Filename $fileName does not exists"
exit 1
fi
 
# convert uppercase to lowercase using tr command
tr '[A-Z]' '[a-z]' < $fileName

Sollte es erforderlich sein, alles in Großbuchstaben zu wandeln, muss nur die letzte Zeile im Script verändert werden. Die Sektion ‚[A-Z]‘ ‚[a-z]‘ muss dazu nur vertauscht werden und durch ‚[a-z]‘ ‚[A-Z]‘ ersetzt werden. Das fertige Script kann man dann unter dem Namen uppercase abspeichern.