Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme beim Source Kompilieren
Grützi miternand,
ich hab mal wieder eine Frage an Euch.
Bin gerade dabei einen Source Code zu kompilieren,
die Files hab ich schon entpackt. Danach
die folgendene Befehle im Verzeichniss
ausgeführt:
./configure
make
nur werdet ihr euch sicher denken, da fehlt doch
noch ein Befehl. Genau und da ist der Punkt.
wenn ich den Befehl "make install"
ausführe kommt folgende Meldung:
[ -d /usr/local/lib ] || \
(mkdir -p /usr/local/lib; chmod 755 /usr/local/lib)
/usr/bin/install -c -m 644 libpcap.a /usr/local/lib/libpcap.a
ranlib /usr/local/lib/libpcap.a
[ -d /usr/local/include ] || \
(mkdir -p /usr/local/include; chmod 755 /usr/local/include)
/usr/bin/install -c -m 644 ./pcap.h /usr/local/include/pcap.h
/usr/bin/install -c -m 644 ./pcap-namedb.h \
/usr/local/include/pcap-namedb.h
[ -d /usr/local/include/net ] || \
(mkdir -p /usr/local/include/net; chmod 755 /usr/local/include/net)
/usr/bin/install -c -m 644 ./bpf/net/bpf.h \
/usr/local/include/net/bpf.h
[ -d /usr/local/man/man3 ] || \
(mkdir -p /usr/local/man/man3; chmod 755 /usr/local/man/man3)
/usr/bin/install -c -m 644 ./pcap.3 \
/usr/local/man/man3/pcap.3
es ist das erst mal das ich Source kompiliere, hab
also keine Ahung ob das so ok ist... Deswegen frag ich Euch..
Danke schon mal für Eure Hilfe.
GRuß der Zivi :D
Ich kann da keine Fehler sehen. Er legt Verzeichnisse an und kopiert dann die compilierten Daten da rein.
Was genau ist denn das Problem ? Funktioniert das Programm oder die Lib nicht ?
Hallo Hunter,
hm ok wenn du sagst das sieht gut aus...
dann glaube ich Dir ;-) Wie gesagt habs
vorher noch nie gemacht. Wie kann ich testen ob libpcap
überhaupt funktioniert. Versuche seit einpaar Tagen Snort
zu installieren und dafür wird ja Libpcap benötigt.
Wenn ich Snort per RPM installieren will, gibt
er mir sofort die Meldung aus. Das er Libpcap
benötigt... Was nun???
Gruß der Zivi
RPM ist ein Paketsystem von Redhat (Redhats Paket Manger = RPM). Im Prinziep ist es eine Datenbank die sich merkt wo welche Dateien sind und wozu sie gehören.
Installierst du nun ein RPM, so wird dieses vorher nachschauen ob alle Abhängigkeiten erfüllt sind. Dazu wird es nicht danach suchen sondern eine Abfrage in der Datenbank machen. Du siehst sicher ein das wenn du etwas compilierst und installierst, das dann nichts davon in der Datenbank drin stehen wird. Ergebnis ist dann: Datei nicht vorhanden.
Also gibts nun 3 Möglichkeiten:
1. Du installierst das RPM gewaltsam da du weißt das die benötigten Dateien ja da sind. Sucht er dann in /usr/lib/ danach obwohl es in /usr/local/lib/ liegt dann hast du ein Problem, da er mit /usr/lib/ compiliert wurde und nun enttäuscht wird.
2. Du compilierst das ganze auch selbst so das er die benötigten Daten in /usr/local/lib/ finden wird. Du erhälst das selbe Programm wie mit dem RPM nur mit etwas anderer Config.
3. Du benutzt checkinstall. Dieses Programm macht dir aus dem compilierten Code ein RPM. Somit stehen alle darin enthaltenen Dateien in der Datenbank und ein anderes RPM sollte installiert werden können.
Nummer 3 solltest du immer machen, da es einiges an Vorteilen bietet. Siehe dazu: http://www.linuxforen.de/forums/showthread.php?s=&threadid=28873
Los_Andros
08.11.02, 08:44
Zu Nummer 3:
Wenn Du ein SuSE 8.1 System hast, dann musst Du darauf achten, eine ältere Version von checkinstall zu nehmen, sonst findet er rpmbuild nicht.
Das liegt daran, dass SuSE ein ältere Version von rpm verwendet, aber ist auch egal, probiers einfach aus
Hallo zusammen,
hab snort nun direkt auch kompiliert und nicht über
das RPM Paket installiert. Hat soweit auch alles funktioniert.
Aber dazu hab ich noch einpaar Fragen, zu erst entpacke
ich ja die Source dann Kompiliere ich es. Werde dabei
schon die Programmdatein in die bestimmten Verzeichnisse
kopiert oder muss ich das danach noch machen. Da ich
jetzt z.B die Snort conf noch ins etc verzeichniss kopieren musste.
Wie geht der eigentliche Prozess des Kompilierens von statten.
Bin da echt noch ein Newbie. Bitte entschuldigt meine Unwissenheit :confused:
gruß der zivi
Los_Andros
08.11.02, 10:02
Also
./configure -> durchsucht Dein System was Du hast (welchen c Compiler, welchen Prozessor, benötigte Bibliotheken, ...)
make --> erzeugt sozusagen die zu installierenden Dateien (Das ist so nicht ganz richtig, aber im Prinzip kannst Du Dir das so vorstellen. Es wird der blanke Quellcode in Linuxverständlichen (Maschinen-) Code übersetzt --> kompiliert!)
-------------------------------------------------------
Bis dahin geschieht alles nur in dem Ordner
in dem Du das Packet entpackt hast.
-------------------------------------------------------
make install (checkinstall) --> Dies installiert nun wirklich das Programm, das heisst, es werden Ordner angelegt (wenn nötig) und die Dateien in die Ordner kopiert!
Verwendest Du checkinstall (dringenst empfohlen, sonst hast Du später richtig Probleme), dann wird der Prozess des kopierens und Ordner anlegens mitprotokolliert und ein rpm erzeugt. Der Vorteil, installierst Du später mal ein rpm Packet (zum Beispiel den Mplayer), dann such rpm nicht das System durch, ob alle Abhängigkeiten gelöst sind, sondern nur die rpm Datenbank. Verwendest Du checkinstall, sind die Packete in die Datenbank eingetragen, machst du ein klassisches "make install" dann nicht.
Darüber hinaus lassen sich rpm Packet sehr einfach aus dem System entfernen (grafisch über kpackage, yast oder andere Konfigtools, oder in der Konsole mit dem Befehl "rpm -e packetname")
Also schau, dass Du checkinstall drauf machst (so früh wie möglich)
Ansonsten hoffe ich, dass Du das Ganze kapiert hast
Los_Andros
08.11.02, 10:05
ach ja, nochmal zum Syntax
Als user
tar zxvf packetname.tar.gz
cd packetname
./configure
make
su (Passwort eingeben)
checkinstall (falls Du das aus irgendeinem Grund nicht willst, dann "make install" an dieser Stelle verwenden)
Doch ich denke ich habs verstanden... *g*
ehrlich kein Scherz...muss ich checkinstall
noch extra installieren oder gehört es schon
zum standart von suse 8.1 Herzlichen Dank
schon mal für Deine Erklärungen, hat
mir wirklich weiter geholfen. Für mich ist das alles
Neuland, bin eher ein Windows Freak :D
Ok, steinigt mich... aber ich gelobe Besserung..
bin ja dabei mit Linux :D
gruß der zivi
Los_Andros
08.11.02, 11:38
Sollte bei SuSE Standardmässig dabei sein, bei der personal es zumindest nicht dabei ;-(
Aber es gibt ja das liebe Internet und das Programm ist eh schön klein
http://asic-linux.com.mx/~izto/checkinstall/files/rpm/
Nimm aber eine Version vor 1.5.3, also am besten die 1.5.2 ;-)
Kannst das Ganze auch aus den Source installieren
http://asic-linux.com.mx/~izto/checkinstall/files/source/
Wieder das Selbe, eine Verison vor 1.5.3 nehmen
Hier die Anelitung (Auszug INSTALL)
Simple enough:
make
su
make install
checkinstall
"make install" goes first because we have no checkinstall installed yet :)
"checkinstall" goes latter so we can have a properly installed (and removable)
package for checkinstall-1.5.2
(Be sure to read the README if you're planning on building RPM or
Debian binary packages)
This will install checkinstall-1.5.2, makepak (modified makepkg) and
installwatch-0.6.3.
also kein ./configure!!!!!!!!!!
Allgemein gilt bei Programmen, immer nach dem entpcken die README oder INSTALL Datei lesen (more INSTALL, oder more README), da steht dann acuh drin wie die Programme aus den Source installiert werden müssen! Und wenn da make install steht, einfach checkinstall eingeben ;-)
Grützi,
herzlichen Dank an Euch alle hier.. habt mir wie immer
sehr geholfen. Wünsche Euch einen schönen Dienstag.
Hoffentlich einen baldigen Feierabend :D
Gruß der Zivi:p
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.