Installation von moin auf druck

Vorbereitungen

Es werden python und moin installiert. Außerdem bekommt der Rechner per ntp-client die genaue Zeit. Die ganze Installation und Konfiguration wird als root durchgeführt. Die tarballs werden nach der Installation in /root/src abgelegt.

Kompilation von python

su; cd ~
tar -xjf Python-2.5.tar.bz2
cd Python-2.5
./configure
make
make install
# aufräumen
cd ..; rm -r Python-2.5; mv Python-2.5.tar.bz2 /root/src/

Installation von moin

cd ~;
tar -xzf moin-1.5.7.tar.gz
cd moin-1.5.7
python setup.py install --prefix='/usr/local'
# aufräumen
cd ..; rm -r moin-1.5.7; mv  moin-1.5.7.tar.gz /root/src/

Kompilation, Installation und Konfiguration von ntp

Die Konfigurationsdatei /etc/ntp.conf wird im wesentlichen von clyde übernommen, aber ein wenig editiert. Das init-script, ntpd, wird von google gefunden, google(ntpd debian start stop). Die start- und stopp-links müssen unter debian händisch gesetzt werden.

gunzip ntp-4.2.4p0.tar.gz
tar -xf ntp-4.2.4p0.tar
cd ntp-4.2.4p0
./configure --disable-debugging --disable-all-clocks --disable-parse-clocks
make
make install
cd ..; rm -r ntp-4.2.4p0
# ntp.conf und ntpd anpassen
vi /etc/ntp.conf
vi /etc/init.d/ntpd
# initsys scripts
chmod +x /etc/init.d/ntpd
cd /etc/rc2.d
ln -s ../init.d/ntpd S22ntpd
cd /etc/rc0.d
ln -s ../init.d/ntpd K19ntpd
cd /etc/rc6.d
ln -s ../init.d/ntpd K19ntpd
# aufräumen
cd; bzip2 ntp-4.2.4p0.tar && mv ntp-4.2.4p0.tar.bz2 /root/src/

Synchronisation mit clyde

Der gesamte web-Auftritt, d.h., die moin-engine sowie der wiki-Quelltext der einzelnen Seiten werden von www (alias clyde) auf druck gespiegelt. Erst einmal wird das ganze wiki per rsync auf druck kopiert. User und group sind auf clyde und druck unterschiedlich. Auf clyde gehören die wiki Dateien dem user wwwrun, group www, die Dateien unter/usr/local/share/moin und auch moin und moin.py unter /usr/local/var/www besitzt allerdings root.

Per rsync werden die web-Seiten kopiert. Siehe auch /etc/rsyncd.conf auf clyde. Die option --numeric-ids um user:group auf druck auf die ids 33:33 (www-data:www-data), statt wwwrun:www auf clyde, zu setzen schlug fehl. Es werden deshalb statt der Optioon -a die Optionen -rtlpW gesetzt. Zuerst werden die web-Seiten einmal übertragen, dann wird der entsprechende crontab-Eintrag gesetzt. Um 2:44 bzw. 2:54 werden die web-Daten von clyde auf druck übertragen.

# einmal kopiert
rsync -rtlpz --delete --exclude cache --exclude '*.pyc' clyde::www /usr/local/var/www

# crontab-Eintrag für www-data
crontab -u www-data -e
# im root-crontab steht der rsync-Eintrag fuer /usr/local/share/moin
44 2 * * *   /usr/bin/rsync -rtlpzW --delete --exclude cache --exclude 'cryptedemail*.jpg' --exclude '*.pyc' clyde::www /usr/local/var/www

# crontab-Eintrag für root
crontab -e
# im www-data-crontab steht der rsync-Eintrag fuer /usr/local/var/www
54 2 * * *   /usr/bin/rsync -rtlpzW --delete clyde::htdocs /usr/local/share/moin/htdocs

Der daemon schreibt ein .pid-file. Dafür muss ein directory vorbereitet werden, das für www-data schreibbar ist. Siehe allerdings auch den hack von daemon.py. Auch wird ein für www-data scheibbares cache-directory angelegt. Schließlich wird im initsys ein link auf den daemon gesetzt.

# directory für .pid-file
mkdir /var/run/moin
chown www-data:www-data /var/run/moin

# cache-directory
mkdir /usr/local/var/www/data/cache
chown www-data:www-data /usr/local/var/www/data/cache

# link in /etc/init.d auf den daemon
ln -s /usr/local/var/www/moin /etc/init.d/moin

Starten des web-servers auf druck

Es müssen in moin.py wwwrun und www beide auf www-data korrigiert werden und in init.d start- und stopp-links gesetzt werden. Dann wird der daemon gestartet. Es sollte nun http://druck.fluid.tuwien.ac.at funktionieren.

# in moin.py wwwrun und www auf www-data korrigieren
vi /usr/local/var/www/moin.py
# start-links in /etc/rc2.d sowie stopp-links in /etc/rc0.d, /etc/rc1.d und /etc/rc6.d erzeugen
cd /etc/rc2.d; ln -s ../init.d/moin S23moin
cd /etc/rc0.d; ln -s ../init.d/moin K19moin
cd /etc/rc1.d; ln -s ../init.d/moin K19moin
cd /etc/rc6.d; ln -s ../init.d/moin K19moin

# start
/etc/init.d/moin start

Deinstallation

Hier sind die Angaben um moin und python zu deinstallieren, nicht ntp. Auf clyde sollten in /etc/rsyncd.conf die Module [www] und [htdocs] gelöscht werden.

# moin restlos entfernen
rm -r /etc/init.d/moin /etc/rc*/*moin /var/run/moin
rm -r /usr/local/var/www
rm -r /usr/local/share/moin
rm -r /usr/local/lib/python2.5/site-packages/MoinMoin
rm -r /usr/local/lib/python2.5/site-packages/moin-1.5.7-py2.5.egg-info

#die rsync-Zeilen in den crontabs löschen
crontab -u www-date -e
crontab -e

#  python entfernen
rm -r /usr/local/lib/python2.5 /usr/local/bin/py*

# tarballs entfernen
cd /root/src && rm moin-1.5.7.tar.gz Python-2.5.tar.bz2