Auflösen von Kompilierfehlern

rodeoflip02

Maurice Moss
Hallo erstmal ins Forum, bin ja doch neu hier. :-)

Nachdem ich jetzt seit einigen Wochen mit NetBSD rumspiele, komm ich immer öfter an Stellen, wo es beim kompilieren aus pkgsrc heraus Probleme gibt. Aktuellstes Beispiel:
- VMWare unter Windows
- NetBSD 3.0 Grundinstallation ohne X
- Download von pkgsrc.tar.gz von ftp://ftp3.de.netbsd.org
- nach /usr entpackt
- X11_TYPE=xfree86 nach mk.conf
- cd /usr/pkgsrc/meta-pkgs/xfce4
- make install clean clean-depends
und nach einigen Stunden fleißigen downloadens, entpackens und kompilierens kommt es zu ner Fehlermeldung. Den Inhalt dieser Fehlermeldung spar ich mir jetzt, der ist nicht Teil meiner Frage. Es handelt sich aber um eine Fehlermeldung aus dem Code, den man durchaus direkt beheben könnte.

Nun meine Frage: Ist an meinem grundsätzlichen Vorgehen etwas falsch? Das ich X nicht direkt mitinstalliert hab sondern es kompilieren wollte, ist dadurch geschuldet, dass ich zunächst gleich Xorg nehmen wollte, aber in anderen Versuche mit Xorg noch das eine oder andere Problem hatte und mich dann doch XFree86 entschieden habe.
Bzw. vielleicht sollte ich die Frage anders stellen: Wie würde man solche Fehler auf dem NetBSD Weg auflösen?

Ich hab vor einigen Tagen hier auch gelesen, dass man auf den Tod nicht irgendwelche Symlinks zu libs erstellen soll, wenn diese nicht gefunden werden, eine Praxis, die Linuxnutzern recht geläufig ist. Will ein Programm eine libXYZ.so, es gibt aber nur eine libXYZ.so.5, wird einfach ein Symlink erstellt. Leider fehlte aber eine Erklärung, was man stattdessen machen sollte, oder vielleicht hab ich die auch nur überlesen.

Also, für ein paar Gedanken wäre ich euch echt dankbar. :-)
 
Zuletzt bearbeitet:
Ich vermute mal das ist wie unter FreeBSD. Du machst in der /etc/libmap.conf einen Eintrag

libXYZ.so libXYZ.so.5
 
Ach na das ist ja praktisch. Ist das also eine Datei, die sämtliches Mapping von libs übernimmt?

Gut, besten Dank erstmal für die fixe Antwort. Bleibt nur noch Frage 1, prinzipielles Vorgehen beim beheben von irgendwelchen Fehlern bzw. ggf. frühzeitiges vermeiden.
 
Das ist soweit schon korrekt, das Vorgehen, solange dir NetBSD/pkgsrc auch die Zusammenarbeit mit xfree86 garantiert. Wenn Xorg das einzige unterstuetzte X11-System ist, dann darfst du dich nicht wundern :)

Ansonsten kommt es durchaus vor, das Ports/Packages mal broken sind, evtl. mal weng nachbohren/fragen, ob das Problem bekannt ist und evtl. nen Fix einreichen?
 
Das bedeutet also im Nachhinnein, dass ich beispielsweise dem Howto auf der Homepage eines auch hier vertretenen Mitglieds folgen sollte, Xorg installieren sollte und danach eher mit erfolgreicher Kompilierung rechnen darf? Ich mein, sicher ist Xorg die bessere Entscheidung, aber für den Anfang brauchte es noch keine perfekte Unterstützung meiner Hardware sein, da reicht mir in meinem Fall auch der generische Open Source Treiber für meine Radeon Grafikkarte und da ich das ganze ohnehin auf nem LCD bei 60Hz betreibe, hätte ich auch keine Abstriche bzgl. der Bildwiederholraten gehabt. Insofern war XFree als brauchbare Alternative, die ja auch per Default installiert wird, nur in meinem Fall eben nicht ;-).

Gut, danke erstmal für die Antworten. Da bin ich erstmal ganz froh, dass es nicht an mir liegt.
 
Ich meine irgendwo gelesen zu haben, daß vor kurzem in pkgsrc etwas an Xorg geändert wurde. Leider weis ich nicht mehr um was es da ging und finde den Link auch nicht mehr... :rolleyes: Allerdings müßte demnächst pkgsrc-2006Q1 anstehen und du probierst es damit. Oder du versuchst es mal mit dem Meta-Package. :)
 
Ungebremster Elan mit dem Ergebnis: Xfce4 lässt sich nach wie vor nicht kompilieren. Der Xfce4-mixer wollte nicht. Das Binary lies sich wunderbar installieren, die Versionsnummer ist die gleiche, weshalb ich mir da auch keine Gedanken gemacht habe. Anschließenden fröhliches weiterkompilieren des restlichen Xfce4 scheiterte allerdings auch, da er nach wie vor mit dem mixer anfangen wollte. pkg_add des xfce4 meta packages lief dann erwartungsgemäß erfolgreich durch. Testen konnte ich nicht mehr, da ich nach Abschluss der Installation schon 5 Minuten zu spät dran war.

Btw.: Ich denke grad angestrengt über den Fehler beim Kompilieren nach... aber im Moment will sich keine Erleuchtung einstellen.
 
Hallo rodeoflip02,

versuche mal die Ausgabe deines make / bmake install ... umzuleiten und den Fehler zu localisieren!

Es kann z.B. vorkommen, dass beim make fetch (Teil deines make-Befehls) ein Problem auftritt, z.B. der Source nicht komplett heruntergeladen wurde und so der Bau gestoppt wird - habe ich oft bei Server Timeouts erlebt.

Hier hilft z.B. das defekte *.tgz bzw. *.tbz in /usr/pkgsrc/distfiles (oder wo du die Distfiles ablegst - mk.conf!) zu löschen und entweder nochmal mit make fetch oder per Hand mit ftp runterzuladen.

Nur ein möglicher Fehler!

Es kann auch sein, dass Abhängigkeiten nicht erfüllt sind, die man dann seperat installieren muß ( sollte eigentlich durch das Meta-Pkg mit erledigt werden, klappt aber auch manchmal nicht, der Fehler wird aber sehr oft schnell erkannt und in der nächsten pkgsrc-Version behoben)

Manchmal hilft nur Handarbeit z.B. Ändern der Versionsnummer, wenn die entspr. Fehler hat und Kompilieren einer neueren bzw. älteren. Ist nicht immer ganz edel, hilft aber ungemein!

Z.B. Gftp crasht in der neusten *.18 Version mit der pthread, willst du aber das Programm, dann baust du dir eben die *.17, die läuft stabil.

Oder Xcdroast, soll mit der alten gtk+-1.2.10 und nicht mit der entspr. gtk+-2.* übersetzt werden - hier hilft nur Umschreiben der Makefiles und Setzen der entspr. Abhängigkeiten.

Viel Erfolg, Gruß Frank
 
Sowas in der Art hatte ich mir gestern nachmittag auch schon gedacht.

make fetch. Hm, darauf hätte ich auch selbst kommen können. Aber sei's drum, make clean(-depends) und neueres make install brachten den selben Fehler. Ich weiß nicht mehr die 100%ige Meldung, ich habs aber mindestens einmal umgeleitet und kanns nachher auch noch posten.
Ich hab mich einmal auch ins work Verzeichnis durchgehangelt und wollte es von Hand kompilieren. Ein überschwängliches ./configure ohne irgendwelche Optionen angesichts der fortschreitenden Zeit brachte mir eine Beschwerde bzgl. des wohl nicht auffindbaren src Verzeichnisses. Und da ich kaum mehr als 10 Minuten noch Zeit hatte, hab ich mich dann eben für die Binaries entschieden.

Anyways, erstmal danke für die Antworten. Die ersten Schritte mit GNU/Linux waren auch nicht gleich von Erfolg gekrönt, aber man lernt dazu.
 
Zurück
Oben