seeseekey.net - Invictus Deus Ex Machina

Bei Linutop handelt es sich um eine Reihe von Kleinstrechnern. Der Linutop 2 ist dabei Baujahr 2008, besitzt einen AMD Geode LX800, welcher mit 800 Mhz getaktet ist. Daneben befindet sich in dem Gerät 512 MiB Arbeitsspeicher. Auf einem solchen Gerät wollte ich nun Ubuntu in der Servervariante installieren. Als Version kommt dabei nur die 12.04 LTS, welche bis April 2017 unterstützt wird, in Frage.

Der Grund hierfür ist das der AMD Geode LX800 kein PAE unterstützt, neue Ubuntu-Versionen dieses aber zwingend voraussetzen. Im ersten Schritt muss die Netboot-Variante (non-pae) heruntergeladen werden. Die mini.iso kann dann mit Tools wie UNetbootin auf einem USB Stick gespielt werden.

Ein Linutop 2

In diesem Fall wird das System von und auf diesem USB-Stick installiert. Der Grund dafür ist der 1 Gigabyte große Flashspeicher welcher nicht ausreicht um das System zu installieren. In der Standardkonfiguration weist Ubuntu der Systempartionen 512 MB und der Swap-Partion ebenfalls 512 MB zu. Wenn man der Systempartion die gesamten 1000 Megabyte zuweist, sollte sich der Ubuntu Server auch auf dem internen Flashspeicher installieren lassen, allerdings verfügt man dann nur noch über knapp 100 Megabyte freien Speicher.

Wenn man bei der Installation stattdessen das ganze auf einem angeschlossenen USB Stick installiert, sollte auch genug Platz für andere Aufgaben da sein. Die 1 Gigabyte große Flashdisk, kann dabei als Swapspeicher genutzt werden. Für die Installation muss der Linotop ans Netz angeschlossen sein. Nachdem man die grundlegenden Einstellungen vorgenommen hat, dauert die Installation zirka 60 bis 90 Minuten. Anschließend kann das System genutzt werden.

Wenn man eine Menge Rechner mit einem Linux bespielen möchte, so kann das je nach Distribution eine Menge Zeit in Anspruch nehmen. Einfacher wird es mit der freien Software Fully Automatic Installation kurz FAI. Das Projekt entstand, als der Autor von FAI, einen Linux-Cluster mit einem Server und 16 Rechnern im Jahre 1999 installieren musste. Da er automatische Installationen unter Solaris gewöhnt war, wollte er ein ähnliches System für Linux.

Eine vollautomatische Installation in Aktion

Mit Hilfe von FAI ist es möglich hunderte Server in wenigen Minuten zu installieren. Das verringert die Fehler, welche bei der Installation gemacht werden können, da jede Installation nach dem gleichen Prozess und vollautomatisch abläuft. Seit kurzen unterstützt FAI dabei auch das neue Dateisystem btrfs. Zu finden ist FAI unter fai-project.org. Lizenziert ist die Software unter der GPL in der Version 2 — der Quelltext ist auf GitHub zu finden.

Bei Homebrew handelt es sich neben MacPorts um einen Paketmanager für Mac OS X. Möchte man Homebrew wieder loswerden empfiehlt die offizielle FAQ folgendes Skript:

#!/bin/sh
# Just copy and paste the lines below (all at once, it won't work line by line!)
# MAKE SURE YOU ARE HAPPY WITH WHAT IT DOES FIRST! THERE IS NO WARRANTY!

function abort {
echo "$1"
exit 1
}

set -e

/usr/bin/which -s git || abort "brew install git first!"
test -d /usr/local/.git || abort "brew update first!"

cd `brew --prefix`
git checkout master
git ls-files -z | pbcopy
rm -rf Cellar
bin/brew prune
pbpaste | xargs -0 rm
rm -r Library/Homebrew Library/Aliases Library/Formula Library/Contributions
test -d Library/LinkedKegs && rm -r Library/LinkedKegs
rmdir -p bin Library share/man/man1 2> /dev/null
rm -rf .git
rm -rf ~/Library/Caches/Homebrew
rm -rf ~/Library/Logs/Homebrew
rm -rf /Library/Caches/Homebrew

Nach dem erfolgreichen Durchlauf des Skriptes, sollte Homebrew Geschichte sein. Dabei ist zu beachten, das dass Skript nur funktioniert, wenn Homebrew unter /usr/local installiert wurde, was allerdings der Normalfall sein sollte.

Bei Tweepy handelt es sich um eine freie unter der MIT-Lizenz lizenzierte Twitterbibliothek für Python, deren offizielle Webseite unter tweepy.org zu finden ist. Unter anderem wird diese Bibliothek für den Twitter Radiergummi genutzt. Im Gegensatz zu früher hat sich die Installation der Bibliothek etwas verändert. Hierfür sollte man jetzt pip nutzen. Dabei handelt es sich um ein Tool zur Paketverwaltung unter Python. Zur Installation gibt man im Terminal folgendes ein:

curl -O https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Damit ist pip installiert und kann genutzt werden:

sudo pip install tweepy

Pip installiert hiermit die Bibliothek Tweety und löst alle Abhängigkeiten auf, so das diese anschließend systemweit genutzt werden kann.

Seit der 3.0er Version von WordPress steckt in jedem WordPress die Möglichkeit aus dem normalen WordPress ein sogenanntes Multisite-Wordpress zu machen. Wenn man sich die aktuelle WordPress-Version auf den Webspace kopiert hat, wird diese ganz normal installiert. Nach der Installation wird der „wp-config.php“ folgende Zeile hinzugefügt:

define('WP_ALLOW_MULTISITE', true);

Durch das Hinzufügen der entsprechenden Optionen findet man in den Einstellungen unter Werkzeuge den Punkt Netzwerk-Einrichtung. Dort kann man die vorgegebenen Einstellungen so belassen und den Installationsbutton nutzen.

Die Netzwerk-Einrichtung unter WordPress

Nach der Installation kann das Multiuser-Wordpress theoretisch schon genutzt werden. Allerdings gilt das nur für den Fall das alle Blogs auf der gleichen Domain laufen. Für eine Installation welche mehrere Domains bedient, muss das „WordPress MU Domain Mapping“ Plugin genutzt werden.

Im ersten Schritt kann das Plugin wie gehabt über die WordPress Pluginverwaltung installiert werden. Allerdings beinhaltet die Installation dieses Plugins einen manuellen Teil. Die Datei „sunrise.php“ aus dem Plugin muss in den Ordner „wp-content“ kopiert werden. Bei einer Aktualisierung des Plugins muss dieser Schritt wiederholt werden. Nun muss die „wp-config.php“ angepasst werden. Dieser wird dabei:

define( 'SUNRISE', 'on' );

hinzugefügt. Nachdem man sich aus dem Multisite-Wordpress ein– und ausgeloggt hat, kann das Plugin genutzt werden. In den Optionen sollte man unter „Domain Mapping“ nur den Punkt „Permanent redirect (better for your blogger’s pagerank)“ aktivieren. Alle anderen Optionen können deaktiviert werden.

In der Netzwerkverwaltung wird eine neue Seite z.B. „example.org/seeseekey“ angelegt. Unter „Einstellungen -> Domains“ wird diese neue Seite mit der ID (2, 3, 4 und weiter aufsteigend) und der Domain hinzugefügt. Anschließend kann die Seite über die Domain aufgerufen und genutzt werden.

Manchmal hat man ein Skript geschrieben welches man systemweit aufrufen möchte. Dazu muss dieses natürlich „installiert“ werden. Genaugenommen handelt es sich bei der Installation nur um eine Kopie an den richtigen Ort im System. In diesem Fall ist das der Ordner „/usr/local/bin/“. Allerdings wird für ein solche Operation nicht „cp“ genutzt. Stattdessen wird dies mittels „install“ erledigt:

sudo install skript.sh /usr/local/bin/skript.sh

Damit wird das Skript in den entsprechenden Ordner kopiert. Daneben werden die Dateirechte und Attribute angepasst. Anschließend kann das Skript von allen Nutzern systemweit genutzt werden.

Weitere Informationen gibt es unter:
https://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

Möchte man eine Dropbox Alternative haben, bietet sich ownCloud an. Im ersten Schritt lädt man sich die Installationsdateien unter http://owncloud.org/ herunter. Es empfiehlt sich dabei die Installation auf einer Domain zu installieren, welche über ein SSL-Zertifikat verfügt. Damit ist die spätere Verbindung verschlüsselt und kann nicht ganz so einfach abgehört werden. Die entpackten Dateien werden anschließend auf den Webserver hochgeladen. Ist dies geschehen wird die passende URL zur Installation angesteuert:

https://example.org/owncloud/

Beim Ausführen des Installers kann es passieren das derselbe fehlende Dateirechte bemängelt:

Can't write into apps directory

This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file.

Wenn die Dateirechte korrigiert wurden sollte der Installer anschließend starten.

Der ownCloud Installer

Nach dem Ausfüllen der Felder für die Datenbank und dem administrativen Account kann der Installer abgeschlossen werden. Mit dem vergebenden Nutzernamen und dem entsprechenden Passwort kann sich dann eingeloggt werden. Verfügt man über ein SSL Zertifikat sollte man in den Einstellungen den Punkt „Erzwinge HTTPS“ aktivieren.

Für die lokale Synchronisierung muss der entsprechende Client installiert werden. Nach dem Start des Clients wird man aufgefordert, den entsprechenden Pfad zur ownCloud Installation, sowie seinen Nutzernamen und das entsprechende Passwort einzugeben. In den erweiterten Einstellungen kann auch der lokale Pfad verändert werden.

Die Servereinstellungen von ownCloud

Mit einem Klick auf den Button „Abschließen“ beginnt die Synchronisation. Was bei der Synchronisierung im leider nicht funktionert, ist die Nutzung mehrerer ownCloud Instanzen mit dem Sync-Client.

Um Piwik in die MediaWiki zu integrieren gibt es eine Extension die auf den „Piwik Integration“ hört. Das Problem dieser Extension ist das sie seit 2009 nicht mehr weiterentwickelt wurde. Bedingt dadurch funktioniert das ganze nicht mehr mit der aktuellen Media Wiki Version.

Abhilfe schafft hier die Extension „PCR GUI Inserts“ welche unter http://www.mediawiki.org/wiki/Extension:PCR_GUI_Inserts zu finden ist. Mit dieser Extension ist es möglich Code auf der MediaWiki einzubinden. Im Gegensatz zu anderen Verfahren, wie z.B. dem direkten editieren der Templatedateien funktioniert diese Lösung auch nach einem Update der MediaWiki Version weiter.

Für die Installation muss man dabei folgende Schritte befolgen:

  • Extension herunterladen
  • den entpackten Ordner in den „extensions“ Ordner der MediaWiki hochladen
  • die „LocalSettings.php“ bearbeiten

Bei der Bearbeitung der „LocalSettings.php“ muss nur die Zeile:

require_once( "$IP/extensions/PCRGUIInserts/pcr_guii.php" );

an das Ende der Datei angefügt werden. Danach ist die „PCR GUI Inserts“ Erweiterung aktiv. Nun muss nur noch der Piwik Tracking Code eingebaut werden. Dazu gibt es in der entsprechenden Wiki ein schönes Beispiel:

$wgPCRguii_Inserts['SkinAfterBottomScripts']['on'] = true;
$wgPCRguii_Inserts['SkinAfterBottomScripts']['content'] = '<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwik.example.com/" : "http://piwik.example.com/");
document.write(unescape("%3Cscript src=\'" + pkBaseURL + "piwik.js\' type=\'text/javascript\'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 2);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://piwik.example.com/piwik.php?idsite=2" style="border:0" alt="" /></p></noscript>';

Diese Zeilen werden dabei auch in die „LocalSettings.php“ geschrieben. Natürlich müssen die entsprechenden Domainnamen angepasst werden, sowie die passende Nummer für die zu trackende Webseite benutzt werden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Piwik
http://de.wikipedia.org/wiki/MediaWiki

MacPorts kann man installieren und natürlich auch wieder deinstallieren. Zur Deinstallation öffnet man ein Terminal und gibt dort:

sudo port -fp uninstall installed

ein. Damit sind im ersten Schritt sämtliche Ports deinstalliert. Nun müssen nur noch die restlichen Spuren auf der Festplatte getilgt werden. Dies geschieht mittels:

sudo rm -rf \
/opt/local \
/Applications/DarwinPorts \
/Applications/MacPorts \
/Library/LaunchDaemons/org.macports.* \
/Library/Receipts/DarwinPorts*.pkg \
/Library/Receipts/MacPorts*.pkg \
/Library/StartupItems/DarwinPortsStartup \
/Library/Tcl/darwinports1.0 \
/Library/Tcl/macports1.0 \
~/.macports

im Terminal. Danach ist MacPorts deinstalliert.

Weitere Informationen gibt es unter:
http://guide.macports.org/chunked/installing.macports.uninstalling.html

Vor einiger Zeit hatte ich beschrieben wie man den „twitter-eraser“ unter Ubuntu installiert. Heute gibt es das ganze für Mac OS X. Dazu öffnen wir das Terminal und geben dort folgendes ein:

git clone https://github.com/ilf/twitter-eraser
git clone git://github.com/tweepy/tweepy.git
cd tweepy
sudo python setup.py install
cd ..
sudo rm -r tweepy/

Die weitere Einrichtung ist im Artikel der Installation für Ubuntu ausreichend beschrieben. Nun müssen wir nur noch einen Cronjob eintragen, damit das Skript regelmäßig ausgeführt wird. Dafür geben wir im Terminal:

EDITOR=nano crontab -e

ein und füllen die Datei mit folgendem Inhalt:

*/45 *    * * *   python /Users/seeseekey/radiergummi.py

Danach muss das ganze nur noch gespeichert werden (Strg + O) und anschließend kann „nano“ wieder beendet (Strg + X) werden. Damit ist das Skript eingerichtet.