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?
(page 3)
Vorausetzungen
- Packprogramm(e) (gzip, bzip2)
- 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
(page 7)
Einfach mal drauf los
- Aufruf von ./configure --help
- Aufruf von ./configure --foo=bar --baz=qux
(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)
(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
(page 13)
Ordnung ins Chaos bringen
(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 stow foo unterhalb von /usr/local/stow
(page 15)
Checkinstall
- Baut auf einfache Weise RPM und DEB Pakete
- Aufruf von checkinstall, Fragen beantworten
(page 16)
Spezialfall Kernel
- 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
(page 17)
Debian Pakete selber bauen
- Debian Tools (debhelper, dh-make, dpkg-dev, build-essential)
- Sonstige Tools (fakeroot, evtl. gnupg)
- Aufruf von dpkg-buildpackage -rfakeroot -us -uc
(page 18)
Kompliziertere Debian Pakete
(page 19)