Page 1 of 1

Programm aus Source kompilieren

Posted: 13. Jun 2006 17:10
by SoylentGrün
Mal so eine allgemeine Frage,

ich arbeite jetzt schon länger mit Debian Linux
Und installiere wenn möglich alles über "apt-get" oder irgendwelchen Backports.

Ich bin nicht so der Fan vom selbst kompilieren, da ich dann immer nicht weis wo die
Dateien beim "make install" hinkommen.
Ich hätte eben gerne die Kontrolle über alle Dateien die dabei erstellt werden, um es auch
wieder sauber entfernen zu können.

Also wie macht ihr das mit dem Kompilieren???

Vielen Dank für jede Anregung
MfG SoylentGrün

Posted: 13. Jun 2006 18:51
by petameta
Das geht mit checkinstall: Natürlich erst installieren, dann statt dem finalen "make install" "checkinstall" aufrufen. Dieses baut Dir dann automatisch nen deb-Paket, das du installieren kannst (und auch deinstallieren).

Edit: checkinstall kann nicht nur Debian-Pakete bauen, sondern auch Redhat und Slackware Pakete.

Posted: 13. Jun 2006 18:57
by Lateralus
edit: War zu spät und unwissend, aber dennoch: ;-)
@petameta: Vielen Dank, wieder was dazu gelernt.

Ich weiß leider nicht, wie / ob es bei Debian möglich ist, die Quellcodepakete (apt-get source) zu verwenden. Generell kannst du nicht garantieren, dass nicht irgendwelche Dateien überschrieben werden, wenn du puren Quellcode verwendest. Du kannst aber in der Regel überprüfen, wohin installiert wird. Es steht im Makefile unter "install". Eine automatisierte Methode, herauszubekommen, wohin der Code kommt, ist, einen prefix anzugeben und dann in ein temporäres Verzeichnis zu installieren. Nachteil ist: 1. Du musst alles zweimal installieren. 2. Manche Software unterstützt die --prefix-Option vielleicht nicht. (Das ist wohl selten):

Code: Select all

#!/bin/sh
TMPDIR=/tmp/test
SRCDIR=~/bla
mkdir -p ${TMPDIR}

# entpacken, konfigurieren, kompilieren und installieren (erster Lauf)
tar -zxf software-3.4.5.tar.gz
cd software-3.4.5
./configure --prefix ${TMPDIR}
make && make install

# Dateiliste erstellen
cd ${TMPDIR}
find . -type f >> ~/selfcompiled/software-3.4.5.list

# Echter Build
cd ${SRCDIR}/software-3.4.5
make clean
./configure && make && make install