"Use the best tools available for testing and for analyzing the problem, the design, and the implementation" - Bjarne Stroustroup
Das Projekt, in das sich im Moment all meine Energie stecke wird langsam aber sich groß. Ich benutzte bisher lediglich Subversion mit WebSVN um der Änderungen Herr zu bleiben - und ein paar ganz normale Text Dateien. Mir war Trac schon etwas früher zufälligerweise aufgefallen, ich konnte damit aber herzlich wenig anfangen da ich eigentlich Support für ein WebSVN Feature suchte, das Trac lediglich für sich selbst implementiert hatte.
Ich gab dem ganzen heute einen Versuch und installierte es auf meinem System. Gentoo ist ja nicht gerade dafür bekannt, leicht konfigurierbar zu sein. Trac ist mal wieder ein Paradebeispiel und hat mich etliche Stunden gekostet. Aber wenn auf einem Linux System mal etwas erst läuft, dann läuft es meistens auf ewig! Das Setup dauerte auch zusätzlich noch etwas länger, da ich versehentlich meine 'system locales' geschrottet hatte, und die Python Skripte von Trac regelmäßig deshalb abschmierten.
Ich dachte also ich 'emerge' es einfach schnell, passe ein paar Config-Dateien an und es sollte laufen. Pustekuchen!
Probleme:
Ich habe einen Apache Server (ohne vHosts) der "/var/www/localhost/htdocs" verfügbar macht. Da liegen alle meine Skripte und anderes nützliches Zeugs wie PHPMyAdmin, MRTG, WebSVN usw. Ich dachte also ich könnte einfach ein weiteres Verzeichnis namens Trac hinzufügen und es dann einfach benutzen! Nö! Erstmal liegt Trac in "/var/lib/trac". Und es ist auch komplett in Python geschrieben, und nicht in PHP. D.h., um es Apache fähig zu machen brauch man für diesen ein Python Modul. Ansonsten stellt Trac den sog. Trac Daemon aka tracd bereit, einen Webserver. Der lief anfangs nur via Kommandozeile aber nicht per Init-Skript; erst als ich den Kram aus $TRACD_OPTS in "/etc/conf.d/tracd" löschte, wollte er starten.
Trac kam also nicht mit meinem Apache klar - jedenfalls nicht so einfach wie ich mir das vorgestellt hatte. Ich versuchte es krampfhaft dennoch; später war mir allerdings der Aufwand mit den vHosts einfach zu hoch und ich ließ es bleiben. Das nächste war der Datenbank Kram. Trac unterstützt (in diesem Moment) SQlite, PostgreSQL und MySQL. Da ich MySQL bereits eingerichtet hatte lag die Entscheidung auf der Hand. Das war ein Fehler. Trac warnt aber vor seiner MySQL Unterstütztung und bezeichnet sie als "experimental". War mir egal.
Ich richtete also ein neues Trac Projekt ein: "trac-admin /var/lib/trac/blah initenv". Ich füllte einen Kommandozeilenfragebogen aus und es ging los. Das hatte, mal abgesehen von den vorher genannten Gründen, aufgrund der Tatsache dass man den "trac" Eintrag in der MySQL DB manuell erstellen musste, nicht problemlos geklappt. Ich tat es also mehrere Male und irgendwann war ich einigermaßen zufrieden mit dem Ergebnis.
Eine weitere Odyssee hatte ich mit der Rechteverwaltung. Es funktionierte zwar alles, aber ich konnte mich einfach nicht authentifizieren, um Inhalte verändern zu können. Auch hier bietet Trac zahlreiche Möglichkeiten. Nach dem Klicken auf Login kam jedes Mal: "Authentication information not available. Please refer to the installation documentation" was nicht soooo aufschlussreich war. Ich probierte also so ziemlich alles aus was in der Dokumentation erwähnt wurde. Und ldap Krams, was mich wieder dazu brachte an Apache herumzufummeln. Ich werde nicht lange um den heißen Brei herumreden... es hat mich bereits Stunden gekostet herauszufinden, was wohl die beste Konfiguration für mein System ist, also will ich jetzt keine Zeit mehr vergeuden :-). Tada:
Via Trac Daemon mit SQlite DB in einer lokalen Datei mit "basic authentification" (Standalone) mittels .htpasswd. Das klappt alles bei mir. Bloß bis ich das erstmal alles begriffen hatte! Ganz wichtig ist folgendes: "tracd --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname" - Na? Alles klar? Also übersetzt heißt das folgendes (und so ungefähr sieht das auch in meiner "/etc/conf.d/tracd" aus):
PROJ="/var/lib/trac/blah"
TRACD_OPTS="--basic-auth=Blah,$PROJ/.htpasswd,$PROJ $PROJ"
Nicht vergessen ein .htpasswd File in $PROJ zu erstellen! Das geht wirklich ganz einfach mit dem gleichnamigen Befehl. Und dann sollte auch schon alles klappen. Das ist keine Installationsanleitung für einen Produktionsserver, aber wohl für ein kleines Heimprojekt und ein paar Beteiligte.
Bis auf die, für Einsteiger, relativ schwierige Installation finde ich das Projekt wirklich gelungen. Es macht Spaß damit zu arbeiten und vereint viele altbekannte Features auf einfache Weise, die einem einen nicht unwesentlichen Teil Arbeit abnehmen können. Ich werde bestimmt noch öfter über Trac reden in Zukunft...
Posts mit dem Label gentoo werden angezeigt. Alle Posts anzeigen
Posts mit dem Label gentoo werden angezeigt. Alle Posts anzeigen
Sonntag, 8. März 2009
Freitag, 26. Dezember 2008
Gentoo LibMSN Ebuild
So, da ich gerade mit der libmsn arbeite, und diese sich noch nicht im Portage von Gentoo befindet, habe ich mal eben ein eigenes ebuild gebastelt. Und das ist gar nicht mal so schlecht geworden für den ersten Versuch.
begin-base64 644 libmsn-4.0_beta2.ebuild
IyBDb3B5cmlnaHQgMTk5OS0yMDA4IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSB2MgojICRIZWFkZXI6ICQKCkVBUEk9IjEiCgppbmhl
cml0IGV1dGlscyBjbWFrZS11dGlscwoKTVlfUD0ke1AvX2JldGEvLWJldGF9
CgpERVNDUklQVElPTj0iTGlibXNuIGlzIGEgcmV1c2FibGUsIG9wZW4tc291
cmNlLCBmdWxseSBkb2N1bWVudGVkIGxpYnJhcnkgZm9yCmNvbm5lY3Rpbmcg
dG8gTWljcm9zb2Z0J3MgTVNOIE1lc3NlbmdlciBzZXJ2aWNlLiIKSE9NRVBB
R0U9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlibXNuIgpT
UkNfVVJJPSJodHRwOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC8ke1BO
fS8ke01ZX1B9LnRhci5iejIiCgpMSUNFTlNFPSJHUEwtMiIKU0xPVD0iMCIK
S0VZV09SRFM9In54ODYiCklVU0U9IiIKCkRFUEVORD0iZGV2LXV0aWwvY21h
a2UKCWRldi1saWJzL29wZW5zc2wiOwpSREVQRU5EPSIiCgpTPSIke1dPUktE
SVJ9LyR7TVlfUH0iCgpzcmNfY29tcGlsZSgpIHsKCWNkICIke1N9IgoJY21h
a2UgLgoJbWFrZQp9CgpzcmNfaW5zdGFsbCgpIHsKCWNtYWtlLXV0aWxzX3Ny
Y19pbnN0YWxsCn0K
====
Das .ebuild file in /usr/local/portage/net-libs/libmsn legen, dann ebuild libmsn-4.0_beta2.ebuild digest um ein Manifest zu erstellen und schließlich sudo emerge libmsn (nicht vergessen package.keywords zu ändern). Wenn das geschafft ist sieht das ganze so aus.
begin-base64 644 libmsn-4.0_beta2.ebuild
IyBDb3B5cmlnaHQgMTk5OS0yMDA4IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlz
dHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSB2MgojICRIZWFkZXI6ICQKCkVBUEk9IjEiCgppbmhl
cml0IGV1dGlscyBjbWFrZS11dGlscwoKTVlfUD0ke1AvX2JldGEvLWJldGF9
CgpERVNDUklQVElPTj0iTGlibXNuIGlzIGEgcmV1c2FibGUsIG9wZW4tc291
cmNlLCBmdWxseSBkb2N1bWVudGVkIGxpYnJhcnkgZm9yCmNvbm5lY3Rpbmcg
dG8gTWljcm9zb2Z0J3MgTVNOIE1lc3NlbmdlciBzZXJ2aWNlLiIKSE9NRVBB
R0U9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbGlibXNuIgpT
UkNfVVJJPSJodHRwOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC8ke1BO
fS8ke01ZX1B9LnRhci5iejIiCgpMSUNFTlNFPSJHUEwtMiIKU0xPVD0iMCIK
S0VZV09SRFM9In54ODYiCklVU0U9IiIKCkRFUEVORD0iZGV2LXV0aWwvY21h
a2UKCWRldi1saWJzL29wZW5zc2wiOwpSREVQRU5EPSIiCgpTPSIke1dPUktE
SVJ9LyR7TVlfUH0iCgpzcmNfY29tcGlsZSgpIHsKCWNkICIke1N9IgoJY21h
a2UgLgoJbWFrZQp9CgpzcmNfaW5zdGFsbCgpIHsKCWNtYWtlLXV0aWxzX3Ny
Y19pbnN0YWxsCn0K
====
Das .ebuild file in /usr/local/portage/net-libs/libmsn legen, dann ebuild libmsn-4.0_beta2.ebuild digest um ein Manifest zu erstellen und schließlich sudo emerge libmsn (nicht vergessen package.keywords zu ändern). Wenn das geschafft ist sieht das ganze so aus.
Abonnieren
Posts (Atom)