Automatisches Veröffentlichen einer Webseite mit git

Ich erstelle gerade einen automatischen Ablauf um eine Webseite, welche in einem git-Repository erstellt wird, nachdem sie in ein zentrales Repository gepusht wurde, auf einen Webserver weiterzupushen und dort automatisch in das htdocs-Verzeichnis zu kopieren.

Zunächst ist natürlich ein zentrales Entwicklungsrepository nötig. Dieses wird bei mir von gitolite verwaltet. In diesem muss ein post-receive hook erstellt werden, der dafür sorgt, dass z.B. wenn in master ein neuer Commit empfangen wurde, master an den Webserver gepusht wird.

Auf dem Webserver muss ein post-receive dafür sorgen, dass die Webseite in htdocs aktualisiert wird.

Es werden also zwei unterschiedliche post-receive hooks benötigt, welche an den richtigen Stellen installiert werden müssen. Und der gitolite-Server muss in der Lage sein, post-receive hooks zu installieren.

Zunächst der gitolite Server: Hier findet sich eine recht gute Anleitung. Jetzt kann im gitolite-admin Repository unter dem (anzulegenden) Pfad local/hooks/repo-specific ein Skript angelegt werden, das z.B. deploy heißt. Dieses wird dann in der gitolite.conf mit option hook.post-receive = deploy in den gewünschten Repositories installiert. Es folgt der deploy post-receive hook:

#! /bin/bash
BRANCH="master"

# push to webserver
while read oldrev newrev ref
do
    if [ "$ref" = "refs/heads/$BRANCH" ]
    then
        git push webserver ${BRANCH}
    else
        echo "Ref $ref received. Nothing to do"
    fi
done

Damit das so funktioniert muss natürlich der Webserver als remote bekannt gemacht werden und ein SSH-Key hinterlegt werden. Also dem Repository auf dem gitolite Server mittels git remote add webserver <user>@<webserver>:<path> den Webserver bekannt machen und mit ssh-copy-id <user>@<webserver> den SSH-Zugang ermöglichen. Der gewählte user auf dem Webserver braucht Schreibzugriff auf das Verzeichnis, aus dem die Dateien ausgeliefert werden.

Auf dem Webserver muss nun unter dem zuvor gewählten <path> mit git init --bare ein leeres git Repository erzeugt werden. In dieses wird der folgende post-receive hook eingehängt.

#! /bin/bash
TARGET="/srv/www"
BRANCH="master"

while read oldrev newrev ref
do
        if [ "$ref" = "refs/heads/$BRANCH" ];
        then
                echo "Ref "$ref" received. Deploying ${BRANCH} to htdocs"
                git --work-tree=$TARGET checkout -f $BRANCH -- htdocs
        else
                echo "Ref $ref received. Doing nothing. Only ${BRANCH} will be deployed"
        fi
done;

Ich habe in dem Repository einen Ordner mit dem Namen htdocs, da noch mehr Dinge zu meiner Anwendung gehören. Es sollen natürlich nur diese ausgeliefert werden, daher wird in Zeile 10 nur dieses Verzeichnis in das Verzeichnis /srv/www ausgecheckt.

Wenn alles funktioniert hat, wird nun jedes Mal, wenn etwas in den master branch des gitolite Repositorys gepusht wird, der Inhalt des Verzeichnisses htdocs automatisch auf dem Webserver veröffentlicht.

Git unter Windows und Eclipse

Ich habe für Praktikumspartner im Fach Software Engineering 2 während meines Studiums der Technischen Informatik ein kleine git tutorial geschrieben. Hier nun also sowohl die Latex Quellen als auch das pdf. Das Ding ist noch lange nicht fertig, aber so sieht man schon mal die Anfänge und etwas helfen kann es wohl auch schon.

Desweiteren kann natürlich jeder gerne mitmachen. Ist ja schließlich CC-BY-SA lizensiert.

git-tutorial (nur PDF)

git-tuorial (Archiv mit Latex Quellen und PDF)

btrfs kernel panic

Ich habe mein Netbook mit btrfs als Dateisystem für / und /home aufgesetzt. Dies geschah in dem Wissen, dass fsck.btrfs noch nicht immer funktioniert.
Nun wollte das Ding nicht mehr booten und zeigte nur eine kernel-panic und die dazugehörigen Meldungen an.
Nach etwas Spaß mit Suchmaschinen und einigem Lesen fand ich diesen Eintrag im openSUSE-Forum.

Nachdem ich also von meinem USB Stick openSUSE 12.1 KDE gebootet hatte, besorgte ich mir mittels

su -c 'zypper in git'
git clone git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git 

die aktuellen Quellen der btrfs-progs.
Um diese zu kompilieren müssen mindestens folgende Pakte installiert werden:
libuuid-devel, libattr-devel, gcc, make, zlib-devel
Nun kann mittels

make
make btrfs-zero-log

das benötigte Tool erstellen.
Nur noch mit

btrfs-zero-log /dev/sdXY

ausführen (wobei X und Y entsprechend ersetzt werden müssen) und neu booten.
So ließ sich mein Netbook wieder booten. Allerdings könnte da immer noch ein Problem sein. Ich werde es im Auge behalten.

openSUSE 12.1

Seit einiger Zeit ist openSUSE 12.1 nun verfügbar. Ich habe mir die KDE-Live-CD auf mein Netbook gespielt und bin begeistert.

Die Installation war wie immer problemlos. Der Installer kann wahlweise aus der KDE Umgebung der Live-CD oder direkt aus dem Boot-Menü der CD. Die enthaltenen Pakete sind natürlich auf einem aktuellen Stand, die für mich interessantesten Neuerungen sind aber zum einen der Umstieg von SystemV init zu systemd, was die Bootzeit leicht positiv beeinflusst, aber auch noch weitere Vorteile, wie etwa das starten eines Dienstes, wenn dieser benötigt wird. Zum anderen kann man nun fast guten Gewissens BtrFS benutzen. Die Snapshot funktion desselben kann von dem Paketmanagement genutzt werden, um vor und nach dem Einspielen von Paketen einen Snapshot des Dateisystems zu machen. Diesen kann man im Falle eines Problems nutzen, um das System schnell wieder in einen funktionsfähigen Zustand zu bringen. Allerdings ist der Filesystemcheck nicht komplett fertig, sodass es in ungünstigen Fällen zu einem korrupten Dateisystem kommen kann, welches nicht mittels fsck gerettet werden kann.

Nachdem ich auf dem Netbook nun viele Distributionen getestet habe, werde ich wohl doch wieder bei openSUSE hängen bleiben. Chakra war eigentlich sehr schön, aber der Paketmanager hat noch einige Kanten und komplett ohne GTK ist zwar eine nette Idee, hat aber zur Folge, dass man zwei Systeme zum Aktualisieren von Paketen bedienen muss, da Chakra zum Beispiel Firefox als Paket anbietet, welches ein Dateisystem mit allen Abhängigkeiten beinhaltet. Diese Pakete werden nicht über pacman aktualisiert sondern über einen Bundlemanager.

Vor Chakra hatte ich Arch installiert, auf dem auch Chakra aufbaut. Daher benutzt es den selben Paketmanager, der, wie gesagt, noch Kanten hat. Im großen und Ganzen ist Arch aber wirklich zu empfehlen.

Kubuntu war nur sehr kurz auf der Platte, da es insgesamt zu unrund lief.

Falls ich noch mal wieder eine andere Distribution haben wollen sollte, werde ich wohl mal Fedora und Debian Testing oder sid in Betracht ziehen.

Symbian und SQLite

Ich hatte ja schon lange vor, eines meiner Programme auf meinem Symbian Telefon (N97) zum laufen zu bringen.

Dank Qt ist das auch sehr einfach. ich musste im Grunde nur einige kleine Anpassungen am Hauptfenster vornehmen und etwas Kram in die Projektdatei einfügen.

Alles kein Problem. Auch Qt auf das Telefon zu bekommen ist sehr einfach, da man auch ein sogenanntes smart installer Paket erstellen kann, welches eine aktuelle Qt-Version aus dem Netz lädt und installiert.

Das größte Problem war, dass auf die zu dem Programm gehörende SQLite Datenbank nicht zugegriffen werden konnte.

Ich hatte schon befürchtet, dass diese überhaupt nicht in dem Paket enthalten sei, doch nach einigem probieren mit dem Simulator war klar, dass die Datei auf dem Telefon sein sollte.

Da das N97 zwar an sich ein schönes Gerät ist, aber ein paar gravierende Designfehler hat, wie zum Beispiel die viel zu kleine Systempartition, habe ich mir angewöhnt alle Anwendungen auf den großen Massenspeicher zu installieren, tat ich das auch mit meinem kleinen Programm. Das dazugehörige Qt muss aber auf den Systemspeicher, daher wird auch nicht gefragt, wo das installiert werden soll.

Ich weiß im Moment nicht mehr, ob die SQLite3 Bibliothek auch vom Smart Installer installiert wurde oder schon auf dem Telefon vorinstalliert war, wie dem auch sei: Bei mir befindet sich diese auf der Systempartition und es scheint nun der Fall zu sein, dass auf diese nur zugegriffen werden kann, wenn das Programm auf der selben Partition wie die SQLite3 Bibliothek installiert ist.

Das könnte ich ja noch verstehen, wenn man denn eine sinnvolle Fehlermeldung bekäme….

So habe ich etwa einen halben Tag an einem funktionierenden Programm herumgefrickelt…

Es gilt also für die Nachwelt festzuhalten: Wenn ein Programm unter Symbian^1 SQLite3 nutzen soll, so muss beides auf der selben Partition installiert werden!!!

Grub mit openSUSE DVD reparieren

Dies ist zwar eigentlich nur ein Backup für mich, um beim nächsten Mal nicht suchen zu müssen, aber vielleicht hilft es ja auch noch jemandem.

Mein Rechner hat in letzter Zeit viele Probleme gemacht. Mittlerweile bin ich mir relativ sicher, dass es an der alten Audigy2 Soundkarte lag, aber Hard Freezes sind kein Spaß und die Ursachenforschung ist anstrengend und auch die Konsequenzen manchmal etwas nervig (mysql verträgt Abstürze manchmal gar nicht gut, aber dazu später mehr.). Das Problem, dem ich mich in diesem Eintrag widmen will ist die Wiederherstellung von grub mit Hilfe der openSUSE DVD (11.4 in meinem Fall, sollte aber mit jeder Linux LiveCD funktionieren)

Als erstes sollte man das LiveSystem booten, wenn man die openSUSE DVD nutzt, so bootet man das Rettungssystem. Wenn das geschen ist, meldet man sich als root an. Normalerweise geschieht dies einfach durch die Eingabe von „root“. Falls ein Passwort gebraucht wird, so erfährt man dieses von der Homepage der genutzten LiveCD. Sodann muss man herausfinden welches Laufwerk die root („/“) Partition enthält und, falls man eine seperate /boot Partition nutzt muss man auch dieses Laufwerk kennen. In meinem Fall waren es /dev/sdb3 für / und /dev/sda1 für /boot.

Sodann mountet man die root Partition nach /mnt, bindet in diese /dev und/proc ein, wechselt das root Verzeichnis nach /mnt und mountet dort /sys und eventuell /boot. Dies geschieht mit folgenden Befehlen:

mount /dev/sdXY /mnt
mount -o bind /dev/ /mnt/dev/
mount -o bind /proc/ /mnt/proc/
chroot /mnt/ /bin/bash
mount /sys
mount /dev/sdXY /boot

Bei /dev/sdXY müssen natürlich noch XY durch die tatsächlichen Werte ersetzt werden.

Danach kann man mit „yast2 bootloader“ den Bootloader konfigurieren. Am besten läßt man sich von yast eine neue Konfiguration vorschlagen (Alt+e, Alt+p) und bestätigt diese (Alt+o).

Die Kommandos sind schamlos von niczsoft.com/ abgeschrieben

KDE SC 4.5.2

Hier nun endlich wieder ein Screenshot von KDE

KDE 4.5.2

So sieht das im Moment bei mir auf dem Desktop aus. Besonders schön finde ich die transparenten Fensterdekorationen. Leider ist der Blur Effekt noch nicht komplett optimiert und auch das Transparente Oxygen theme ist noch im alpha oder beta Stadium, so dass dieser Eyecandy noch recht viel Leistung schluckt. Ansonsten ist KDE 4.5.2 wie es sein sollte, vielleicht mit Ausnahme der fehlenden PIM Suite, denn diese wird gerade auf Akonadi umgestellt. Ich nutze schon die beta Version, doch diese hat noch ein paar kleine Probleme… Alles andere ist sehr schön. Die Desktopsuche und das Nepomuk Geschleuder (Semantischer Desktop) funktionieren mittlerweile sehr gut.

KDE und die Einfachheit des Seins

Da ich in letzter Zeit einige Leute mit ihren Windows-Kisten gesehen habe, die versuchten auf einen sftp Server (file transfer over ssh) zuzugreifen, ist mir verstärkt aufgefallen, wie schön es ist, dass KDE über kio-slaves auf viele verschiedene Protokolle zugreifen kann!

So kann man in jedem Dateimanager auf sftp zugreifen und jedes Programm kann dort gespeicherte Dateien direkt öffnen.

Und wenn einem das noch nicht reicht, weil man zum Beispiel mittels rsync Verzeichnisse synchronisieren möchte, bietet Gnu/Linux ja auch noch die Möglichkeit, sftp wie eine Partition zu mounten.

Festplatten und Partitionierung

Man liest des öfteren in IRC Chats, dass einige Hilfesuchende nicht wissen, was Partitionen sind. Das größte Problem scheinen die „Laufwerke“ in Microsoftbetriebssystemen zu sein. Dort wird jeder Partition, jedem externen Laufwerk und auch „Netzlaufwerken“ ein Buchstabe zugeordnet. Die Systempartition von Windows (und auch DOS) heißt normalerweise C:. Das liegt daran, dass A: und B: für Diskettenlaufwerke reserviert waren.

Diese Einteilung ist allerdings etwas irreführend, denn es handelt sich nicht zwingend um ganze Festplatten. Eine solche kann nämlich in Partitionen aufgeteilt sein. Vor allem bei modernen Festplatten macht es Sinn, mehrere Partitionen auf einer Platte einzurichten, um besser die Übersicht zu behalten, aber auch um z.B. Defragmentationen besser planen zu können.

In unixoiden Betriebssystemen wird die Festplatte meist in mindestens drei oder mehr Partitionen aufgeteilt, nämlich eine root Partition, welche das System, alle Programme und das Wurzeldateisystem enthält. In dieses werden die anderen Partitionen „gemountet“, also eingehängt. Diese root Partition ist eigentlich ausreichend, doch erstellt man für Desktoprechner meistens noch mindestens eine /home Partition, die alles unterhalb des Verzeichnisses „/home“ beinhaltet, damit man bei Neuinstallationen die Benutzereinstellungen behalten kann und nur die root Partition formatieren muss. Bei Servern nutzen viele noch eine eigene Partition für /var, wo z.B. Emails, Druckerwarteschlangen und andere Dinge die sich schnell ändern, wie logs gespeichert werden. Zusätzlich gibt es noch eine sog. Swap Partition, die die gleiche Aufgabe erfüllt wie die Auslagerungsdatei in Windows.

Bis auf Swap Partitionen werden alle Partitionen in des Wurzeldateisystem eingebunden, sind also Unterverzeichnisse. Dies ist in Windows auch möglich, wird aber selten genutzt.

Es gibt zwei Arten von Partitionen: Primäre und Erweiterte. Pro Festplatte kann es maximal vier Partitionen geben. Um mehr zu erhalten, muss man eine dieser vier als erweiterte Partition erstellen und kann dann in dieser beliebig viele „logische Partitionen“ erstellen. Diese Begrenzung liegt daran, dass die Partitionstabelle nur eine feste größe am Anfang der Festplatte zur Verfügung hat. In dieser Tabelle werde Partitionsart und der Anfangs- und Endpunkt festgehalten.

Jede Partition kann wiederum mit einem Dateisystem formatiert werden. Windows nutzt heutzutage meist NTFS, versteht aber auch das ältere und nicht mehr zu empfehlende FAT32. GNU/Linux kann NTFS und FAT32 zwar lesen und beschreiben, doch fehlen einige wichtige Funktionen wie Benutzerrechte und NTFS ist proprietär und somit nicht vollständig bekannt, weshalb GNU/Linux z.B. korrupte NTFS Partitionen nicht säubern kann. Das verbreitetste Dateisystem in GNU/Linux ist wohl ext4 und dessen Vorgänger ext3. Beide sind sog. „Journaling Filesystems“, wie NTFS. Desweiteren kann man aber auch eine Reihe weiterer Dateisysteme nutzen, die je nach Gebrauch Vor- und Nachteile bringen.

Partitionen sind also nur Teile einer Platte, wenn auch eine Platte nur eine Partition beinhalten kann. Natürlich kann man auch USB Sticks in mehrere Partitionen unterteilen. Leider kann Windows dann nur die Erste lesen, und auch nur wenn es sich um eine mit NTFS oder FAT32 formatierte Partition handelt.

Leyenhafte Zensurversuche, mal wieder

Es ist mal wieder soweit. Unsere Lieblingspolitikerin hat die nächste Idee, wie sie das Internet zensieren kann. netzpolitik.org erklärt das sehr gut. Diese Idee geht sehr viel weiter als alle bisherigen. Im Grunde werden Access-Provider, Hosting-Provider und Inhalte-Anbieter gleichgestellt und sollen für einen durchgängigen Jugendschutz sorgen, indem z.B. Inhalt „ab 16“ nur zwischen 22 und 6 Uhr zugänglich ist.

Weitere Links:

HTML5 Video und YouTube

YouTube bietet seit kurzem auch einen HTML5 Player für ihre Filme an, allerdings nur, solange keine Werbung eingeblendet wird. Grundsätzlich ist das zu begrüßen.

Aber da der zu nutzende Codec in HTML5 nicht definiert ist gibt es zwei unterschiedliche Codecs. Safari unterstützt nur h.264, Google Chrome h.264 und Ogg/Theora, Firefox und Opera nur Ogg/Theora. IE kann gar nichts. Da die Videos bei YouTube in h.264 vorliegen, kann man mit Firefox den HTML5 Player also nicht nutzen, obwohl Firefox grundsätzlich in der Lage ist, HTML5 video tags darzustellen.

Nun ist h.264 ein sehr guter Codec, aber eben durch Softwarepatente verkrüppelt. Daher verstehe ich es sehr gut, dass gerade Hersteller freier Browser (Chromium kann auch kein h.264) keine Lust auf dadurch entstehende Probleme haben.

Schade eigentlich. So wird das nichts mit Videos ohne Flash, obwohl es dringend an der Zeit wäre.

Software Updates

Firefox 3.6 wurde gestern veröffentlicht. Er startet nun schneller und kann das aussehen mit sogenannten Personas ändern. Diese legen im Grunde nur ein Bild über das Grau der Bedienelemente, sieht aber trotzdem schick aus.

Doch schon lese ich wieder einen dieser unsäglichen „Linux ist noch nicht für den Massenmarkt“-Artikel. Im Grunde geht es um das updaten von Software. Der Autor des Artikels ist der Meinung, dass es doch viel einfacher sei, den Installer von der Mozilla-Webseite herunterzuladen und mittels einiger clicks Firefox neu zu installieren. Das funktioniert unter Gnu/Linux tatsächlich nicht, doch geht es ja dank Software Management auch viel einfacher. Wenn man weiß, dass man einen möglichst aktuellen Firefox nutzen möchte, so kann man in jeder mir bekannten Gnu/Linux Distribution entweder ein zusätzliches Repository (für openSUSE wäre das für Firefox dieses) nutzen oder dem Software Management mitteilen, dass man bestimmte Pakete erhalten möchte, sobald sie verfügbar sind (z.B. bei gentoo). Man kann natürlich auch das auf der Mozilla Seite angebotene Archiv herunterladen, entpacken und Firefox so starten, was natürlich keine Systemweite Installation ist, zum antesten aber ausreicht.

Viele Gnu/Linux Distributionen veröffentlichen in ihren normalen Updates nur Sicherheitsrelevante Patches, bieten aber fast immer, wie gesagt, für fast alles Repositories an, die wenigstens die letzte stabile Version eines Programms oder einer Programmgruppe enthält. Meistens gibt es sogar Repositories mit Beta Versionen oder sogar Snapshots des Entwicklungszweiges.

Der große Vorteil dieser Repositories ist, dass man Programme, die man einmal so installiert hat, automatisch auf dem neuesten Stand hat. Somit war mein Update auf Firefox 3.6 auch sehr einfach und schnell. einmal „zypper up“ gestartet und schon fertig.

Ich ärgere mich vor allem über den oben genannten Artikel, weil ich gestern endlich Windows 7 installiert habe. Ich benutze Windows zwar nur zum spielen, aber trotzdem braucht man ja einige Programme, wie z.B. einen vernünftigen Dateimanager, einen Instant Messenger und vor allem Patches für die (neu zu installierenden) Spiele. Das dauerte alles ewig lange und vor allem fiel mir auf, dass in meiner vorherigen Vista-Installation einige Programme doch arg alt waren.

Mittlerweile haben zwar viele Programme eigene Updatemechanismen, aber diese belegen dann auch Ressourcen. so ärgere ich mich jedesmal über Apples Updater, der mit iTunes installiert wird (ja, ich benutze einen iPod, allerdings noch einen aus der 5. Generation, so dass ich den normalerweise per amarok unter openSUSE betanke). Dieser Updater läuft dauernd im Hintergrund und überprüft, ob es Updates zu installierter Apple-Software gibt. Das wäre ja auch ganz nett, wenn man denn mehr von Apple benutzte, aber nur für iTunes finde ich das doch übertrieben. Auch Adobe nutzt ein ähnliches Modell. Sun für Java auch. Da ich den Flashplayer und Java nutze sind also gleich zwei weitere Updater im Hintergrund aktiv.

Ich fände es sehr nett, wenn all diese Dienste wenigstens etwas zentralisiert würden.

Bei den meisten Gnu/Linux Distributionen ist dies schon der Fall! (Ich schreibe hier nicht von „allen“ Distributionen, weil ich nicht alle kenne)

Firefox Plugins

Da openSUSE in 11.2 Mozillas Firefox als Standardbrowser einsetzt und dessen Integration in KDE deutlich verbessert hat, habe ich Firefox in letzter Zeit wieder öfter benutzt und (mir) neue Plugins gefunden. Diese möchte ich hier nun vorstellen:

Firefox

  1. Tab Scope – Dieses Plugin zeigt eine Miniansicht des Reiters unter dem Mauszeiger
  2. Cookie Safe – Cookie Management für jede Seite einzeln
  3. Foxy Proxy – Proxy Management, gut um TOR zu nutzen. Kann je nach Seite bestimmte Proxys benutzen
  4. No Script – Erklärt sich fast von selbst: blockiert erstmal alle Scripts, inklusive Flash. Man kann seitenspezifische Ausnahmen definieren
  5. AdBlock+ – Blockiert Werbung.
  6. FireGestures – Mausgesten. Mit einfachen Gesten navigieren und sonstiges

Firefox ist vor allem mit einem neuen Profil recht schnell. Mittlerweile benutze ich Firefox fast so oft wie Konqueror und das will schon was heißen, da ich den fast ausschließlich genutzt habe. Viel Spaß beim Ausprobieren.

GNU/Linux und das Installieren von Software

Es fällt mir immer öfter auf, dass offensichtlich viele Windows zu Linux Umsteiger versuchen, Software genau so zu installieren, wie sie es schon unter Windows gelernt haben: Browser öffnen, Software suchen und den Downloadlink drücken; danach doppelt auf die heruntergeladene Datei klicken. Mit etwas Glück ist es immerhin keine .exe oder .msi Datei. Wenn man dann im openSUSE IRC channel (#suse auf irc.freenode.net) darauf hinweist, dass das heruntergeladene Programm so nicht funktionieren wird, sieht man sich nicht selten mit Unverständnis konfrontiert.

Doch ist meiner Meinung nach gerade das Softwaremanagement eine der großen Stärken von GNU/Linux. Man muss eben nicht selber das gesamte Internet durchsuchen und in regelmäßigen Abständen sicherstellen, dass die Programme wenigstens auf einem halbwegs aktuellen Stand sind. Eine kurze Suche mit YaST oder zypper, oder welches System die genutzte Distribution auch verwendet, und das gesuchte Programm ist mit einem Häkchen installiert.

Das ist natürlich nur dann der Fall, wenn das gesuchte Programm im Hauptrepository zu finden ist. In dem Fall reicht es sogar, nur zu Wissen, was man eigentlich will, um mit geeigneten Stichwörtern sogar die Beschreibungen der im Repository befindlichen Programme zu durchsuchen.

Etwas schwieriger wird es, wenn nichts im Hauptrepository den Anforderungen entspricht. Wenn man nun weiß, wie das gesuchte Stück Software heißt, kann man auf opensuse.org fündig werden. Diese Suchmaschine durchsucht allerdings nur den Open Build Service und die Repositories der gewählten Version. Um auch das (großartige) Packman Repository und andere zu durchsuchen, sollte man packages.opensuse-community.org ausprobieren. Für diejenigen, die gerne mit der Shell arbeiten, empfehle ich das kleine Programm „webpin“, welches im Open Build Service zu finden ist.

Was aber macht man, wenn man das entsprechende Programm gefunden hat? Einfach auf „Download“ drücken ist auch hier wenig ziel-führend. Am Besten ist es wohl, das Repository in das Softwaremanagement einzupflegen. Mittels „zypper ar <url> <alias>“ ist das recht einfach. In YaST gibt es auch eine grafische Oberfläche. Danach sollte das gesuchte Programm mittels YaST oder zypper zu finden und zu installieren sein.

Und was, wenn das installierte Programm nicht gefällt und das, was man jahrelang unter Windows verwendet hat viel besser ist?

  1. Hat man sich damit ja auch schon eingearbeitet
  2. Sind einige FOSS-Programme deutlich anders zu bedienen als Kommerzielle
  3. Bedeutet eine andere Oberfläche nicht zwingend, dass eine besser ist

Gerade wenn es um GIMP geht, meckern viele Umsteiger gleich, denn es sieht ja deutlich anders aus als Photoshop, und das kann ja nur schlecht sein. Allerdings gibt es unter GNU/Linux ja virtuelle Arbeitsflächen, wovon man ja eine ausschließlich für GIMP nutzen kann. So finde ich es sogar sehr nützlich, dass ich die einzelnen Fenster einzeln minimieren und platzieren kann und ab 2.8 soll es ja nun auch eine Photoshop-ähnliche Oberfläche geben. Auch sollte der Funktionsumfang für die Meisten locker ausreichen. So viele professionelle Designer, wie sich im IRC oder in Foren über Gimp beschweren, die auch noch auf Linux umsteigen wollen, kann es gar nicht geben.

Aber ich habe auch schon von vielen gehört, dass sie unbedingt einen bestimmten Instantmessenger bräuchten oder einen bestimmten IRC-Client oder einen bestimmten Mediaplayer oder etwas ähnlich banales oder alles auf einmal. Und diese benötigten Dinge gibt es dann eben nur für Windows. Da frage ich mich meist zuerst, warum derjenige denn nun auf GNU/Linux umsteigen will, wenn er doch nur Windowsprogramme nutzen will. Dann kommt meist sofort die Frage, wie wine denn funktioniere. Es ist ja ganz nett, dass einige Windowsprogramme mit wine tatsächlich funktionieren, aber sollte man wine nutzen, wenn es genug native Alternativen gibt, wie bei obigen Beispielen? Ich befürchte, dass das eher Probleme mit sich bringt, zumal solche Anwendungen nicht von dem Softwaremanagement profitieren und man sich doch wieder selber um neue Versionen für jedes so installierte Programm kümmern muss.

Fazit: Warum sollte man alle Vorteile von GNU/Linux opfern, nur um bestimmte (Windows)Programme weiter zu nutzen? Dann kann man gleich bei Windows bleiben. Ein Wechsel des Betriebssystems beinhaltet eben auch, dass man neue Programme lernen muss.