Hallo, Ich möchte innnerhalb eines runtergeladenen tar.bz2-Pakets eine Quelldatei des Typs C++ sources gegen eine andere gleichen Namens austauschen, die ich extra geliefert bekommen habe und die einen bug beseitigen soll. Normales Kopieren geht nicht. Was muss ich tun? Wenn ich nämlich erst entpacke und installiere, ist nach meinen Erfahrungen die Datei, um die es mir geht ja nicht mehr zu sehen. Sorry, habe nun mal keine Erfahrung mit Linux kompilieren/installieren und so. Habe bisher immer alles brav automatisch mit rpm und davon wiederum fast alles nur mit YAST2 gemacht. Darf ich auf Antwort hoffen, ohne dass man mich gleich erschlägt? :-) Bernd
Tach, Bernd Stäglich schrieb:
Ich möchte innnerhalb eines runtergeladenen tar.bz2-Pakets eine Quelldatei des Typs C++ sources gegen eine andere gleichen Namens austauschen, die ich extra geliefert bekommen habe und die einen bug beseitigen soll. Normales Kopieren geht nicht.
Jo, auspacken mußt du das Archiv ja sowieso, wenn du das Programm kompilieren willst. Also pack mal aus. Anschließend hast du ein neues Verzeichnis, in dem der entpackte Inhalt des Archivs liegt. Dort suchst du dann das Verzeichnis, in dem sich die Datei befindet, die du ersetzen möchtest und kopierst dann die neue Version dieser Datei in dieses Verzeichnis, um das Original zu überschreiben. Danach kannst du dann den configure-Lauf lostreten.
Darf ich auf Antwort hoffen, ohne dass man mich gleich erschlägt? :-)
Solange du uns nicht deine Adresse gibst, kann dir auch keiner was über die Rübe ziehen. Gruß, Patrick
Hallo Patrick, Hallo Achim, es hat doch alles seine Tücken, also: === Am Freitag, 17. Januar 2003 23:16 schrieb Patrick Hess: ===
Tach,
Bernd Stäglich schrieb:
Ich möchte innnerhalb eines runtergeladenen tar.bz2-Pakets eine Quelldatei des Typs C++ sources gegen eine andere gleichen Namens austauschen, die ich extra geliefert bekommen habe und die einen bug beseitigen soll. Normales Kopieren geht nicht.
Jo, auspacken mußt du das Archiv ja sowieso, wenn du das Programm kompilieren willst. Also pack mal aus.
Habe ich. Klappte wunderbar.
Anschließend hast du ein neues Verzeichnis, in dem der entpackte Inhalt des Archivs liegt. Dort suchst du dann das Verzeichnis, in dem sich die Datei befindet, die du ersetzen möchtest und kopierst dann die neue Version dieser Datei in dieses Verzeichnis, um das Original zu überschreiben.
Habe ich klappte wunderbar
Danach kannst du dann den configure-Lauf lostreten.
Habe ich und damit ging's los. Erst mal musste ich noch den c++-Compiler installieren, und dann passierte endlich was, leider aber mit den nachfolgenden Meldungen. Und was nun? In die config.log habe ich geguckt. Da steht unheimlich viel drin, aber was Aufregendes habe ich da nicht gefunden. Worauf muss ich evtl gucken, wenn ihr euch die nachstehenden Meldungen so anseht? checking for dlopen in -ldl... (cached) yes checking for shl_unload in -ldld... no checking for extra includes... no checking for extra libs... no checking for libz... configure: error: not found. Check your installation and look into config.log Ein make war dann gar nicht mehr zu machen. Nun hatte ich beim ersten ./configure vergessen, den Pfad anzugeben, habe das dann in einem zweiten Lauf aber nachgeholt. Wieder das gleiche Ergebnis. Ist nun richtig schön alles durcheinander?
[...] Gruß, Patrick
Ciao Bernd
Moin,
* Bernd Stäglich
=== Am Freitag, 17. Januar 2003 23:16 schrieb Patrick Hess: ===
Danach kannst du dann den configure-Lauf lostreten.
Habe ich und damit ging's los. Erst mal musste ich noch den c++-Compiler installieren, und dann passierte endlich was, leider aber mit den nachfolgenden Meldungen. Und was nun? In die config.log habe ich geguckt. Da steht unheimlich viel drin, aber was Aufregendes habe ich da nicht gefunden.
Vor allem die letzten Zeilen sind interessant.
Worauf muss ich evtl gucken, wenn ihr euch die nachstehenden Meldungen so anseht?
checking for dlopen in -ldl... (cached) yes checking for shl_unload in -ldld... no checking for extra includes... no checking for extra libs... no checking for libz... configure: error: not found. Check your installation and look into config.log
Du hast scheinbar die libz nicht installiert, und zwar die Entwicklerversion. Such mal auf den CDs danach (zlib oder libz) und hol das nach, dann versucht's nochmal.
Ein make war dann gar nicht mehr zu machen.
Das kannst Du vergessen, ein make nach einem mißglückten configure ist in erster Näherung immer zum Scheitern verurteilt.
Nun hatte ich beim ersten ./configure vergessen, den Pfad anzugeben, habe das dann in einem zweiten Lauf aber nachgeholt. Wieder das gleiche Ergebnis. Ist nun richtig schön alles durcheinander?
Vermutlich. Zum Glück kann man das mit einem make distclean oder einem make mrproper wieder geradeziehen. Thorsten -- Golly, I'd hate to have a kid like me! - Calvin
Moin === Am Samstag, 18. Januar 2003 00:19 schrieb Thorsten Haude: ===
Moin,
* Bernd Stäglich
[2003-01-18 00:01]: === Am Freitag, 17. Januar 2003 23:16 schrieb Patrick Hess: ===
Danach kannst du dann den configure-Lauf lostreten.
Habe ich und damit ging's los. [..] Worauf muss ich evtl gucken, wenn ihr euch die nachstehenden Meldungen so anseht?
checking for dlopen in -ldl... (cached) yes checking for shl_unload in -ldld... no checking for extra includes... no checking for extra libs... no checking for libz... configure: error: not found. Check your installation and look into config.log
Du hast scheinbar die libz nicht installiert, und zwar die Entwicklerversion. Such mal auf den CDs danach (zlib oder libz) und hol das nach, dann versucht's nochmal.
sehe ich das richtig, dass im Zusammenhang mit der c++-Compilerinstallation noch einige Sachen zusätzlich von den SuSE-CDs installieren muss (nämlich z.B. alles mit libz usw)? Dann fehlt da ja einiges, denn die Meldung "checking for ... configure: error: not found." tauchte in der config.log im Zusammenhang mit ziemlich vielen Dateien auf. Danke für den Hinweis!
[...]
Nun hatte ich beim ersten ./configure vergessen, den Pfad anzugeben, habe das dann in einem zweiten Lauf aber nachgeholt. Wieder das gleiche Ergebnis. Ist nun richtig schön alles durcheinander?
Vermutlich. Zum Glück kann man das mit einem make distclean oder einem make mrproper wieder geradeziehen.
Fehlen da nicht Optionen/Ziele/Regeln/Pfade usw.? Was muss ich da genau eintippen? Mit dem "./configure<ohne Pfadangabe> habe ich mir doch alles mögliche sonstwohin geschossen? Unter make -help konnte ich zu den Befehlen nichts finden. Oder sind das Extraprogramme, die ich da noch installieren muss. Aus der Google-Suche wurde ich auf den ersten Blick nicht so ganz schlau und wenn von dir/euch jemand schon mal praktisch damit gearbeitet hat, ist das vielleicht sinnvoller und schneller, hier ganz einfach noch einmal direkt zu fragen ;-)
Thorsten
Vielen Dank und Tschüss Bernd
Moin,
* Bernd Stäglich
=== Am Samstag, 18. Januar 2003 00:19 schrieb Thorsten Haude: ===
* Bernd Stäglich
[2003-01-18 00:01]: checking for libz... configure: error: not found. Check your installation and look into config.log
Du hast scheinbar die libz nicht installiert, und zwar die Entwicklerversion. Such mal auf den CDs danach (zlib oder libz) und hol das nach, dann versucht's nochmal.
sehe ich das richtig, dass im Zusammenhang mit der c++-Compilerinstallation noch einige Sachen zusätzlich von den SuSE-CDs installieren muss (nämlich z.B. alles mit libz usw)?
Es gibt so viele Bibliotheken, daß man zunächst nicht alle installiert. Dann läufst Du halt in den Fehler, installierst die Bibliothek (ist ja mit RPM schnell gemacht) und versuchst es nochmal.
Dann fehlt da ja einiges, denn die Meldung "checking for ... configure: error: not found." tauchte in der config.log im Zusammenhang mit ziemlich vielen Dateien auf. Danke für den Hinweis!
Es kann ja auch oft Alternativen geben. Wenn dann eines nicht gefunden wird, nimmt man etwas anderes (klassisches Beispiel: Yacc - Bison). Normalerweise sind nur die Sachen kritisch, die am Ende stehen und für einen Abbruch sorgen. Nur wenn Du spezielle Features haben willst (./configure --with-feature), mußt Du aufpassen: Wenn die eine bestimmte Bibliothek brauchen, kann es sein, daß der Rest sich ohne dieses Fesature bauen läßt. Dann ist der Fehler nicht am Ende.
Fehlen da nicht Optionen/Ziele/Regeln/Pfade usw.? Was muss ich da genau eintippen?
Lies mal die Dokumentation (README und INSTALL), da wird viel erklärt. Thorsten -- Die Zensur ist das lebendige Geständnis der Großen, daß sie nur verdummte Sklaven aber keine freien Völker regieren können. - Johann Nepomuk Nestroy
Bernd Stäglich wrote:
=== Am Samstag, 18. Januar 2003 00:19 schrieb Thorsten Haude: ===
[...] Du hast scheinbar die libz nicht installiert, und zwar die Entwicklerversion. Such mal auf den CDs danach (zlib oder libz) und hol das nach, dann versucht's nochmal.
sehe ich das richtig, dass im Zusammenhang mit der c++-Compilerinstallation noch einige Sachen zusätzlich von den SuSE-CDs installieren muss (nämlich z.B. alles mit libz usw)? Dann fehlt da ja einiges, denn die Meldung "checking for ... configure: error: not found." tauchte in der config.log im Zusammenhang mit ziemlich vielen Dateien auf. Danke für den Hinweis!
Das hat erst einmal nichts mit der C++ Compilerinstallation zu tun. Du moechtest Software uebersetzen (compilieren), und dazu werden ge- wisse Funktionen oder allgemeiner Ressourcen benoetigt, die von Bi- bliotheken und den zugehoerigen Header-Files (dort ist die Schnitt- stelle definiert) zur Verfuegung gestellt werden. Dazu muss auf Dei- nem System dann die entsprechende Ressource (hier: die Bibliothek libz) installiert sein, und auch das zugehoerige *-devel Paket, das i.d.R. die Header-Files und Archive (lib*.a) enthaelt. Das ist so gesehen erst einmal voellig unabhaengig vom Compiler. Der Compiler (oder genauer: der Praeprozessor) wertet die #include<...> Befehle im Quellcode, der zu uebersetzen ist, aus. Das kann nur funktionie- ren, wenn diese Header auch auf Deinem System vorhanden sind. Und ge- nau das ueberprueft das ./configure Skript.
[...]
Nun hatte ich beim ersten ./configure vergessen, den Pfad anzugeben, habe das dann in einem zweiten Lauf aber nachgeholt. Wieder das gleiche Ergebnis. Ist nun richtig schön alles durcheinander?
Vermutlich. Zum Glück kann man das mit einem make distclean oder einem make mrproper wieder geradeziehen.
Fehlen da nicht Optionen/Ziele/Regeln/Pfade usw.? Was muss ich da genau eintippen? Mit dem "./configure<ohne Pfadangabe> habe ich mir doch alles mögliche sonstwohin geschossen? Unter make -help konnte ich zu den Befehlen nichts finden. Oder sind das Extraprogramme, die ich da noch installieren muss. Aus der Google-Suche wurde ich auf den ersten Blick nicht so ganz schlau und wenn von dir/euch jemand schon mal praktisch damit gearbeitet hat, ist das vielleicht sinnvoller und schneller, hier ganz einfach noch einmal direkt zu fragen ;-)
Das ./configure Skript untersucht Dein System und versucht, alle zum Compilieren der Software benoetigten Ressourcen zu finden. Ge- lingt das, so werden Makefiles generiert, mit deren Hilfe dann die Software compiliert werden kann, i.d.R. einfach durch Eingabe von "make". Laeuft ./configure nicht zu Ende, so hat man auch keine Makefiles und kann damit den Befehl make nicht nutzen (siehe dazu auch meine andere Email). Im Makefile stehen Regeln, wie die Software zu uebersetzen ist (an- gepasst auf Dein System, das hat naemlich das ./configure Skript er- mittelt). Es gibt im Makefile viele Regeln, die Default-Regel (die wird benutzt, wenn man einfach "make" ohne weitere Angaben auf- ruft) uebersetzt meist den Quellcode. Daneben gibt es dann noch ein "make test" oder "make check" und ein "make install". Wenn man Glueck hat, dann gibt es auch ein "make uninstall", und vielleicht viele weitere Regeln (sog. Targets), u.a. auch zum Erstellen von RPMs. Gruesse, Th. -- Thomas Hertweck, Dipl.-Geophys., GPI Universitaet Karlsruhe === First they ignore you, then they laugh at you, then === === they fight you, then you win. (M. Ghandi) ===
Thorsten Haude wrote:
* Bernd Stäglich
[2003-01-18 00:01]: [...] checking for libz... configure: error: not found. Check your installation and look into config.log [...] Ein make war dann gar nicht mehr zu machen.
Das kannst Du vergessen, ein make nach einem mißglückten configure ist in erster Näherung immer zum Scheitern verurteilt.
Genau. Die Makefiles werden i.d.R. erst am Ende des ./configure Laufes geschrieben, d.h. wenn ./configure nicht zumindest durch- laeuft, dann gibt es ueberhaupt kein Makefile.
Nun hatte ich beim ersten ./configure vergessen, den Pfad anzugeben, habe das dann in einem zweiten Lauf aber nachgeholt. Wieder das gleiche Ergebnis. Ist nun richtig schön alles durcheinander?
Vermutlich. Zum Glück kann man das mit einem make distclean oder einem make mrproper wieder geradeziehen.
Das geht nur, wenn beim ersten Lauf schon ein Makefile geschrieben wur- de, siehe oben. Normalerweise reicht es, das Cache File des ./configure Laufes zu loeschen und ./configure mit den richtigen Parametern erneut aufzurufen. Gruesse, Th. -- Thomas Hertweck, Dipl.-Geophys., GPI Universitaet Karlsruhe
Hallo zusammen, mit besonderem Dank an Patrick, Thomas und Thorsten, die mir nicht nur sehr geholfen haben, das Ganze zum Funkionieren zu bringen, sondern auch den tieferen Sinn von dem, was ich da machen sollte zu verstehen :-) Hier nun noch mal für Newbies, die vor ähnlichen Fragen stehen, die tatsächlich zu gehenden Schritte wie folgt: === Am Samstag, 18. Januar 2003 11:32 schrieb Thomas Hertweck: ===
Thorsten Haude wrote:
* Bernd Stäglich
[2003-01-18 00:01]: [...]
Also: Tar-Paket entpacken (hab's mit Ark gemacht), dann kann man in der Tat in das neu entstandene Verzeichnis jede beliebige Datei (also auch cpp-Quelldateien) ganz normal reinkopieren oder verschieben. Wenn nötig (also während des ./configure-Laufs auf der Konsole gemeldet) den noch fehlenden Compiler nachinstallieren. In meinem Fall war das ja der c++-Compiler, der noch installiert werden musste. Dann tortzdem noch beim ./configure --prefix=/opt/kde3 die Fehlermeldung:
checking for libz... configure: error: not found. Check your installation and look into config.log
Es fehlte dann tatsächlich libz, aber auch noch mehr: Und zwar meldete config.log nach nochmaligem Reinsehen ganz detailliert "configure" mit diversen weiteren Dateien als fehlend, was ich dann in YASt2 als "kconfigure" wiederfand. Bei der Installation von kconfigure kam dann plötzlich ein Riesenpaket "kdelibs3.03" als fehlend zum Vorschein und die ganze Nachinstallation nahm erst mal kein Ende :-)
[...]
Ein make war dann gar nicht mehr zu machen.
Das kannst Du vergessen, ein make nach einem mißglückten configure ist in erster Näherung immer zum Scheitern verurteilt.
Das kann ich nur bestätigen
Genau. Die Makefiles werden i.d.R. erst am Ende des ./configure Laufes geschrieben, d.h. wenn ./configure nicht zumindest durch- laeuft, dann gibt es ueberhaupt kein Makefile.
So ist es. Also dann ein neues ./configure und alles lief fast normal durch (einzelne Fehlermeldungen aber blieben zunächst wohl aus folgendem Grund:
Nun hatte ich beim ersten ./configure vergessen, den Pfad anzugeben, habe das dann in einem zweiten Lauf aber nachgeholt. Wieder das gleiche Ergebnis. Ist nun richtig schön alles durcheinander?
Vermutlich. Zum Glück kann man das mit einem make distclean oder einem make mrproper wieder geradeziehen.
Das geht nur, wenn beim ersten Lauf schon ein Makefile geschrieben wur- de, siehe oben.
das habe ich dann gemacht, auch noch ein make clean. Dann lief endlich alles ganz glatt durch: ./configure, make, make install und von da ab hatte ich vom config.log und allen weiteren Meldungen und Abläufen auf der Konsole dann endlich einen glatten, sauberen Eindruck.
Normalerweise reicht es, das Cache File des ./configure Laufes zu loeschen und ./configure mit den richtigen Parametern erneut aufzurufen.
ja auch das habe ich zwischendurch gemacht und war nach meinem Eindruck für einen sauberen, weiteren Verlauf ebenfalls erforderlich.
Gruesse, Th.
Der Rat, INSTALL zu lesen war natürlich auch richtig. Das hatte ich sogar schon gemacht, aber wenn man von den ganzen Zusammenhängen so überhaupt keine Ahnung hat, nützt einem so was zunächst einmal nicht so viel bei der ganzen fremden Terminologie und dann noch auf Englisch :-) Jetzt verstehe ich natürlich Wort für Wort und frage mich.... :-) Also Tschüss und Dank! Bernd
Am Freitag, 17. Januar 2003 23:16 schrieb Bernd Stäglich:
Hallo,
Ich möchte innnerhalb eines runtergeladenen tar.bz2-Pakets eine Quelldatei des Typs C++ sources gegen eine andere gleichen Namens austauschen, die ich extra geliefert bekommen habe und die einen bug beseitigen soll. Normales Kopieren geht nicht.
Was muss ich tun? Wenn ich nämlich erst entpacke und installiere, ist nach meinen Erfahrungen die Datei, um die es mir geht ja nicht mehr zu sehen.
Sorry, habe nun mal keine Erfahrung mit Linux kompilieren/installieren und so. Habe bisher immer alles brav automatisch mit rpm und davon wiederum fast alles nur mit YAST2 gemacht.
Darf ich auf Antwort hoffen, ohne dass man mich gleich erschlägt? :-)
Wie wäre es mit diesen Schritten: die bz2 entpacken, dann die Quelldatei austauschen, kompilieren und installieren? Gruß Achim
participants (5)
-
Achim Lehmkuhl
-
Bernd Stäglich
-
patrick_hess@t-online.de
-
Thomas Hertweck
-
Thorsten Haude