Ich hatte heute die reizende Aufgab im Intranet von Radio Corax für eine Ruby on Rails Anwendung einen nginx Webserver mit Upload Progress Module zu basteln. Dazu muss das Teil neu compiliert werden. Zur Entwicklung benutze ich ein gentoo, und da das ja eh alles selbst compiliert, war das schnell erledigt. Aber im Radio haben wir alles auf Debian unter OpenVZ laufen. Ich wollte ungern die originalen Sourcen nutzen und platt compilieren, sondern hätte gern ein Debian-Paket gebaut, welches sich mit allen Debian-Patches sauber integriert. Das war dann überraschend ziemlich leicht und ging so:
Bevor es los geht, brauchen wir noch ein paar Pakete
Zu erst mal an die Stelle tappen, wo es sich gehört Quelltexte abzulegen
die nginx-Quellen von Debian ziehen
und dazu die Quellen vom Upload Progress Module
das ganze schön auspacken
jetzt die Steuerscripte der Debian-Quellen anpassen. Damit das auch alles compiliert wird, wie wir es haben wollen, die Datei /usr/src/nginx-VERSION/debian/rules anpassen
Dort einfach in der letzten Zeile dranhängen
Jetzt das ganze Paket neu compilieren. Bei Fehlern während des ./configure Aufrufs einfach die fehlenden Abhängigkeiten (wird angezeigt) mit apt-get install PAKET nachinstallieren.
Ist alles glatt gelaufen, liegt unter /usr/src das fertige Debian-Paket rum, welches in gewohnter Debian-Manier installiert werden kann.
Fertig. Mehr Infos und Erklärungen zur genauen Funktionsweise gibt es im Bamboo Blog
Bevor es los geht, brauchen wir noch ein paar Pakete
apt-get install dpkg-dev fakeroot
Zu erst mal an die Stelle tappen, wo es sich gehört Quelltexte abzulegen
cd /usr/src
die nginx-Quellen von Debian ziehen
apt-get source nginx
und dazu die Quellen vom Upload Progress Module
wget -c http://wiki.codemongers.com/NginxHttpUploadProgressModule?action=AttachFile&do=get&target=nginx_uploadprogress_module-0.2.tar.gz
das ganze schön auspacken
tar -xvzf nginx_uploadprogress_module-0.2.tar.gz
jetzt die Steuerscripte der Debian-Quellen anpassen. Damit das auch alles compiliert wird, wie wir es haben wollen, die Datei /usr/src/nginx-VERSION/debian/rules anpassen
./configure --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid \ --lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/lib/nginx/body --http-proxy-temp-path=/var/lib/nginxproxy \ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --with-debug --with-ttp_stub_status_module
Dort einfach in der letzten Zeile dranhängen
--add-module=/usr/src/nginx_uploadprogress_module
Jetzt das ganze Paket neu compilieren. Bei Fehlern während des ./configure Aufrufs einfach die fehlenden Abhängigkeiten (wird angezeigt) mit apt-get install PAKET nachinstallieren.
cd nginx-VERSION dpkg-buildpackage -rfakeroot -uc -b
Ist alles glatt gelaufen, liegt unter /usr/src das fertige Debian-Paket rum, welches in gewohnter Debian-Manier installiert werden kann.
cd .. dpkg -i nginx-VERSION.deb
Fertig. Mehr Infos und Erklärungen zur genauen Funktionsweise gibt es im Bamboo Blog