14:00 Uhr
Sourcen kompilieren und Pakete selber bauen
Norbert Tretkowski
Team(ix) GmbH
Debian Entwickler
tretkowski@inittab.de
(page 1)

Warum selber kompilieren?

- Programm ist bei der Distribution nicht oder in einer alten Version dabei

- Die benoetigten Funktionen wurden beim Bauen der Pakete des Distributors nicht aktiviert

(page 2)

Wo gibts die Software?

- Freshmeat (http://www.freshmeat.net/)

- Sourceforge (http://www.sourceforge.net/)

- Google (http://www.google.com/)

(page 3)

Vorausetzungen

- Packprogramm(e) (gzip, bzip2)

- Compiler (gcc, g++)

- Sonstige Tools (tar, make)

- Headerfiles (libc6-dev, libgtk1.2-dev, ...)

(page 4)

Vorbereitungen fuer diesen Workshop

- Separates Changeroot anlegen

(page 5)

Nach dem Download

- Download der Datei als tar.gz, tar.bz2, o.ae.

- Entpacken der Datei mit gzip, bzip2 und/oder tar

(page 6)

Beispiele zum Entpacken

- tar zxvf foobar.tar.gz

- tar jxvf foobar.tar.bz2

(page 7)

Einfach mal drauf los

- Aufruf von ./configure --help

- Aufruf von ./configure --foo=bar --baz=qux

- Aufruf von make

(page 8)

Wenn kein ./configure vorhanden ist

- Makefile sollte dann vorhanden sein

- Von Hand editieren um Einstellungen zu aendern

(page 9)

Wenn ./configure abbricht

- Installieren der gewuenschten Libraries

- Erneut ./configure starten

(page 10)

Trouble erschiessen (1)

- Abbruch weil foo.h fehlt

- Abbruch weil ...

(page 11)

Trouble erschiessen (2)

- Aufruf von ldconfig, falls neu installierte Library nicht gefunden wird

- Unter Umstaenden noch /etc/ld.so.conf anpassen

(page 12)

Konkretes Beispiel

- Ein FTP Client: lftp

- Entpacken

- Aufruf von ./configure

- make

- make install

(page 13)

Ordnung ins Chaos bringen

- Stow

- Checkinstall

(page 14)

Stow

- Installiert jede Software in ein separates Verzeichnis

- Legt Links unter /usr/local/bin, /usr/local/sbin, etc an

- Aufruf von ./configure --prefix=/usr/local/stow/foo

- Aufruf von make

- Aufruf von make install

- Aufruf von stow foo unterhalb von /usr/local/stow

(page 15)

Checkinstall

- Baut auf einfache Weise RPM und DEB Pakete

- Aufruf von ./configure

- Aufruf von checkinstall, Fragen beantworten

(page 16)

Spezialfall Kernel

- Entpacken wie gehabt

- Aufruf von make {menu|x}config

- Aufruf von make dep clean (b)zImage modules modules_install

- Kernel arch/$ARCH/boot/kernel/(b)zImage nach /boot kopieren

- Lilo konfiguration anpassen und aufrufen

- Rebooten

(page 17)

Debian Pakete selber bauen

- Debian Tools (debhelper, dh-make, dpkg-dev, build-essential)

- Sonstige Tools (fakeroot, evtl. gnupg)

- Sourcecode entpacken

- Aufruf von dh_make

- Aufruf von dpkg-buildpackage -rfakeroot -us -uc

(page 18)

Kompliziertere Debian Pakete

- Subversion

- VIM

(page 19)