pages/static/talks/sourcen.html

363 lines
5.2 KiB
HTML

<html>
<hr>
<font size="+2"></font><div align="CENTER">
<font size="+2"><br>
<br>
<br>
14:00 Uhr<br>
<br>
Sourcen kompilieren und Pakete selber bauen<br>
</font><font size="-1"><br>
Norbert Tretkowski<br>
Team(ix) GmbH<br>
<br>
Debian Entwickler<br>
tretkowski@inittab.de<br>
</font></div>
<br>
(page 1)<br>
<hr>
<br>
Warum selber kompilieren?<br>
<br>
<br>
<ul>
<li>Programm ist bei der Distribution nicht oder in einer alten Version dabei
</ul>
<br>
<ul>
<li>Die benoetigten Funktionen wurden beim Bauen der Pakete des Distributors nicht aktiviert
</ul>
<br>
(page 2)<br>
<hr>
<br>
Wo gibts die Software?<br>
<br>
<br>
<ul>
<li>Freshmeat (<a href="https://web.archive.org/web/20041108233147/http://www.freshmeat.net/)">http://www.freshmeat.net/)</a>
</ul>
<br>
<ul>
<li>Sourceforge (<a href="https://web.archive.org/web/20041108233147/http://www.sourceforge.net/)">http://www.sourceforge.net/)</a>
</ul>
<br>
<ul>
<li>Google (<a href="https://web.archive.org/web/20041108233147/http://www.google.com/)">http://www.google.com/)</a>
</ul>
<br>
(page 3)<br>
<hr>
<br>
Vorausetzungen<br>
<br>
<br>
<ul>
<li>Packprogramm(e) (gzip, bzip2)
</ul>
<br>
<ul>
<li>Compiler (gcc, g++)
</ul>
<br>
<ul>
<li>Sonstige Tools (tar, make)
</ul>
<br>
<ul>
<li>Headerfiles (libc6-dev, libgtk1.2-dev, ...)
</ul>
<br>
(page 4)<br>
<hr>
<br>
Vorbereitungen fuer diesen Workshop<br>
<br>
<br>
<ul>
<li>Separates Changeroot anlegen
</ul>
<br>
(page 5)<br>
<hr>
<br>
Nach dem Download<br>
<br>
<br>
<ul>
<li>Download der Datei als tar.gz, tar.bz2, o.ae.
</ul>
<br>
<ul>
<li>Entpacken der Datei mit gzip, bzip2 und/oder tar
</ul>
<br>
(page 6)<br>
<hr>
<br>
Beispiele zum Entpacken<br>
<br>
<br>
<ul>
<li>tar zxvf foobar.tar.gz
</ul>
<br>
<ul>
<li>tar jxvf foobar.tar.bz2
</ul>
<br>
(page 7)<br>
<hr>
<br>
Einfach mal drauf los<br>
<br>
<br>
<ul>
<li>Aufruf von ./configure --help
</ul>
<br>
<ul>
<li>Aufruf von ./configure --foo=bar --baz=qux
</ul>
<br>
<ul>
<li>Aufruf von make
</ul>
<br>
(page 8)<br>
<hr>
<br>
Wenn kein ./configure vorhanden ist<br>
<br>
<br>
<ul>
<li>Makefile sollte dann vorhanden sein
</ul>
<br>
<ul>
<li>Von Hand editieren um Einstellungen zu aendern
</ul>
<br>
(page 9)<br>
<hr>
<br>
Wenn ./configure abbricht<br>
<br>
<br>
<ul>
<li>Installieren der gewuenschten Libraries
</ul>
<br>
<ul>
<li>Erneut ./configure starten
</ul>
<br>
(page 10)<br>
<hr>
<br>
Trouble erschiessen (1)<br>
<br>
<br>
<ul>
<li>Abbruch weil foo.h fehlt
</ul>
<br>
<ul>
<li>Abbruch weil ...
</ul>
<br>
(page 11)<br>
<hr>
<br>
Trouble erschiessen (2)<br>
<br>
<br>
<ul>
<li>Aufruf von ldconfig, falls neu installierte Library nicht gefunden wird
</ul>
<br>
<ul>
<li>Unter Umstaenden noch /etc/ld.so.conf anpassen
</ul>
<br>
(page 12)<br>
<hr>
<br>
Konkretes Beispiel<br>
<br>
<br>
<ul>
<li>Ein FTP Client: lftp
</ul>
<br>
<ul>
<li>Entpacken
</ul>
<br>
<ul>
<li>Aufruf von ./configure
</ul>
<br>
<ul>
<li>make
</ul>
<br>
<ul>
<li>make install
</ul>
<br>
(page 13)<br>
<hr>
<br>
Ordnung ins Chaos bringen<br>
<br>
<br>
<ul>
<li>Stow
</ul>
<br>
<ul>
<li>Checkinstall
</ul>
<br>
(page 14)<br>
<hr>
<br>
Stow<br>
<br>
<br>
<ul>
<li>Installiert jede Software in ein separates Verzeichnis
</ul>
<br>
<ul>
<li>Legt Links unter /usr/local/bin, /usr/local/sbin, etc an
</ul>
<br>
<ul>
<li>Aufruf von ./configure --prefix=/usr/local/stow/foo
</ul>
<br>
<ul>
<li>Aufruf von make
</ul>
<br>
<ul>
<li>Aufruf von make install
</ul>
<br>
<ul>
<li>Aufruf von stow foo unterhalb von /usr/local/stow
</ul>
<br>
(page 15)<br>
<hr>
<br>
Checkinstall<br>
<br>
<br>
<ul>
<li>Baut auf einfache Weise RPM und DEB Pakete
</ul>
<br>
<ul>
<li>Aufruf von ./configure
</ul>
<br>
<ul>
<li>Aufruf von checkinstall, Fragen beantworten
</ul>
<br>
(page 16)<br>
<hr>
<br>
Spezialfall Kernel<br>
<br>
<br>
<ul>
<li>Entpacken wie gehabt
</ul>
<br>
<ul>
<li>Aufruf von make {menu|x}config
</ul>
<br>
<ul>
<li>Aufruf von make dep clean (b)zImage modules modules_install
</ul>
<br>
<ul>
<li>Kernel arch/$ARCH/boot/kernel/(b)zImage nach /boot kopieren
</ul>
<br>
<ul>
<li>Lilo konfiguration anpassen und aufrufen
</ul>
<br>
<ul>
<li>Rebooten
</ul>
<br>
(page 17)<br>
<hr>
<br>
Debian Pakete selber bauen<br>
<br>
<br>
<ul>
<li>Debian Tools (debhelper, dh-make, dpkg-dev, build-essential)
</ul>
<br>
<ul>
<li>Sonstige Tools (fakeroot, evtl. gnupg)
</ul>
<br>
<ul>
<li>Sourcecode entpacken
</ul>
<br>
<ul>
<li>Aufruf von dh_make
</ul>
<br>
<ul>
<li>Aufruf von dpkg-buildpackage -rfakeroot -us -uc
</ul>
<br>
(page 18)<br>
<hr>
<br>
Kompliziertere Debian Pakete<br>
<br>
<br>
<ul>
<li>Subversion
</ul>
<br>
<ul>
<li>VIM
</ul>
(page 19)<br>
</body>
</html>
<!--
FILE ARCHIVED ON 23:31:47 Nov 08, 2004 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 10:25:32 May 11, 2024.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
-->
<!--
playback timings (ms):
captures_list: 1.982
exclusion.robots: 0.257
exclusion.robots.policy: 0.242
esindex: 0.012
cdx.remote: 5.119
LoadShardBlock: 80.58 (3)
PetaboxLoader3.datanode: 81.477 (4)
PetaboxLoader3.resolve: 68.888 (2)
load_resource: 80.599
-->