hamster
Anmeldungsdatum: 12. April 2007
Beiträge: 197
Wohnort: Berlin
|
Hallo zusammen! Ich arbeite seit 7.04 mit Ubuntu, also länger als ein paar Tage aber zu kurz um mich wirklich auszukennen. Wenn ich irgendein Problem habe, folge ich meistens diesem Schema: http://imgs.xkcd.com/comics/tech_support_cheat_sheet.png Das klappt in vielen Fällen, in manchen endet es damit, dass ich aufgebe und hin und wieder ist es mir so wichtig, dass ich hier um Hilfe frage. Was mir in den letzten fünf Jahren aber (so weit ich mich erinnern kann) noch nie gelungen ist, ist ein Programm, das es leider nur als Quellcode gibt, selber zu kompilieren und zu installieren. Es scheitert immer daran, dass "make" mit irgendeiner Fehlermeldung abbricht. Dann kopiere ich die Fehlermeldung, suche bei Google danach und befolge alle Ratschläge, die ich dazu finden kann. Das war bis jetzt immer erfolglos. Irgendwann, nach ein paar Stunden, gebe ich dann auf. Manchmal finde ich doch noch irgendwo ein .deb-Paket, aber in der Regel muss ich versuchen, ohne das Programm auszukommen. Wenn ich hier im Forum und anderswo querlese kommt es mir immer so vor, als wäre das kompilieren und installieren von Programmen aus dem Quellcode das einfachste der Welt. Einfach ein paar Eingaben im Terminal und alles funktioniert. Bin ich der einzige, bei dem das nie funktioniert? Gruß, Max
|
Klemens
Anmeldungsdatum: 29. Oktober 2010
Beiträge: 168
|
Hallo, Bekomme keine Krise! Ich darf hier einsteigen, weil ich von Programmieren ebenfalls keine Ahnung habe 😉. Die meisten Fehler entstehen, weil - so in meiner Sprache - die "Abhängigkeiten" nicht passen. Gerade bei Paketdistributione (wie deb, rpm), werden die Quellen nicht installiert und dann fehlt einfach was. Ubuntu, Suse, usw. erwartet nicht, dass da jemand plötzlich kompilieren will und dann wirds mühsam. Mir war eine große Hilfe meine "gentoo-Zeit" vor Ubuntu 8.xx. So ein gentoo ist von Haus aus auf kompilieren ausgerichtet und macht einem das Leben in diesem Bereich deutlich! leichter, bzw. bekommt man im Lauf der Zeit ein Gefühl dafür. Heutzutage kann man das ja in einer virtuellen Maschine angehen oder größerer Kick ist auf einer eigenen Partition. Dann ruhig einmal einen eigenen Kernel bauen. Ist nur halb so wild, wenn man weiß, welche Hardware verbaut ist. Das schafft Instinkt, wie kompilieren funktioniert. (Wenn man es genau wissen will, dann gehe ich davon aus, dass man sich tatsächlich ausbilden lassen muss) Es macht auch Sinn mit Programmen zu beginnen, die keine große Einbindung in die grafische Umgebung (also grafische Programme) oder in den Kernel (Gerätetreiber), oder in Multimedia (viele Codecs) haben. Leider ist halt so, dass man genau dort zum ersten mal zu einer Eigenkompilation aufgefordert wird ☹. Nimm irgendetwas einfaches. *Achtung - mit etwas schwarzem Humor gezuckert* Grafische Programme - da fehlt immer irgendein gtk*-devel, das nicht vorhanden ist und wenn, dann in der falschen Version, Gerätetreiber sind fast immer nur mit einem anderen Kernel funktionstüchtig, der seinerseits selber kompiliert werden muss. Im Mulitmediabereich fehlt dir das entsprechende codecs-dev, das wegen nicht auflösbarer Abhängigkeiten nicht installiert werden kann. README durchlesen ist Pflicht! V.a, wenn es darauf ankommt, was das Programm braucht und voraussetzt. Einmal geduldig! ./configure anschauen und durchkauen, wenn es angeboten wird. Ich selber habe schon lange nichts mehr kompiliert - wende mich immer feig an ein gefundenes ppa. aber eine alte Erinnerung sagt mir, dass z.B. w_scan was ganz simples war (und hoffentlich noch ist). Und dann ein Programm, dass brauchbaren Hash aus Passwörter erzeugte, die direkt für /etc/passwd verwendet werden konnten - weiß ich jetzt auch die schnelle nicht.
Also so kleine tools. In Ruhe nachschauen, was dem Programm fehlt, wenn die Kompilation abbricht. Es sind meist wirklich Versions-Probleme oder fehlende *-dev - Pakete. Wie gesagt, schon etws länger her bei mir. Meistens sind es doch 2-3 Fehlerquellen-Kategorien - sowas wie falsche Version, Keine/falsche Header, usw. Das ist dann für Laien Erfahrungssache. Zum Schluss - Ich gebe zu, dass oft genug ein Hund begraben liegt, der schwer aufzulösen ist, ohne, dass man das halbe System umkrempelt. Und beim nächsten Update geht die Geschichte von vorne los ...
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17552
Wohnort: Berlin
|
Dein Entwickler haben üblicherweise viele Bibliotheken in der aktuellsten Version installiert - bei denen funktioniert das dann anstandslos. Früher habe ich viel aus Paketen selbst gebaut, dabei hat rund die Hälfte so geklappt wie versprochen, und die andere Hälfte machte folgendes Problem, welches teils mehrfach ähnlich auftrat, und teils ein Unterproblem hatte, welches sich aber schon bei
ankündigte: Paket nicht gefunden. Dann musste pango, libpango, libpango-dev und libpango-dev4 sowie pango4, libpango4 und - Du ahnst es - installiert werden. Beim Versuch das zu tun trat dann das gleiche Problem mit einem weiteren Paket auf, mit einem 4, und spätestens dann hatte man vergessen wo man überhaupt herkam. ☺ Damit verbunden war das Unterproblem - halt, das fällt mir noch eins ein - also 2 Unterprobleme, die häufig auftraten: Man hatte libpango-dev4.so.0.11.7-99b artig installiert, und weiterhin wurde man angemeckert, libpango-dev4 sei nicht vorhanden. Das konnte geheilt werden, indem man einen symbolischen Link erzeugte von libpango-dev4.so.0.11.7-99b auf libpango-dev4.so, wobei ich das nirgends beschrieben fand, und oft probiert habe, und es hat nie versagt, und nie trat ein Fehler auf, den ich auf diese Eigenmächtigkeit hätte zurückführen können. Kleines Nebenproblem welches nicht richtig zählt: Es wird oft nicht erwähnt, dass man für "make install" Rootrechte braucht - für das Fummeln an den .so-Links übrigens auch. Offenbar gehen die Autoren oft davon aus, dass außer Root eh niemand etwas im System installiert, und das Root ein fauler Sack ist, der auch als Root ./configure und ./make aufruft. Programmierer! Das andere Unterproblem, welches seltener und erst später auftrat habe ich nicht mehr im Kopf. Diese Configurescripte erwarten neben der Kombination Library (.so-File) und header (.h-File) oft noch eine Art Meta- oder Konfigurationsfile, in der Bla-Fasel steht, nähmlich ob das Zeug nun in /lib, in /usr/lib, in /usr/local/lib liegt oder sonstwo. Vielleicht waren es auch die .h-Files oder beides. Statt dass das Programm die 3 häufigsten Lokationen aufsucht, und nur bei einem Konflikt meckert (Version 3.11.stable.final.rocksolid hier, Version 4.0-beta da) hat es also oft auf so einer Datei bestanden - alleine sie war nicht mitgeliefert worden. Was ich da gemacht habe weiß ich nicht mehr. Ich meine es waren Textdateien, die man leicht erraten konnte, wenn man sich ähnliche angesehen hat, weswegen es so ärgerlich war, dass das System das nicht selbst gemacht hat. Es war eine Wunderbare Zeit. Mit 64MB RAM habe ich KDE aus den Quellen compiliert mit allem drum und dran - ich glaube 4x über Nacht laufen lassen, bis alles durch war. Ach - die Jugend ... sie kommt nicht wieder.
|
VincentVale
Anmeldungsdatum: 11. Juni 2009
Beiträge: 317
Wohnort: Solingen
|
Am einfachsten Kompiliert sich denke ich mal Wine. Die beschreiben in Ihrer Doku auch genau was gebraucht wird und bringen dir zur Not auch ein Script mit was die Schritte automatsich abhandelt. Das ganze Scheitert meist echt nur an den Abhängigkeiten. Sonst nimm dir doch mal eine Software und frage hier im Forum nach wo der Fehler liegt.
|
zephir
Anmeldungsdatum: 20. März 2006
Beiträge: 2758
|
Geht mir genauso. Oft dürfte der Grund das es kein Debian/Ubuntu Paket gibt, aber wohl genau daran liegen, das es eben nicht so einfach zu kompellieren ist, weil z.B. ihrgendwelche Bibliotheken in Ubuntu fehlen oder zu alt sind. Für die Opensoftware, wo das kompilieren keine Probleme macht, gibt es eben meist schon fertige Pakete, so daß man gar nicht in die Verlegenheit kommt, es selbst zu versuchen.
|
olli1973
Anmeldungsdatum: 18. Januar 2009
Beiträge: 275
Wohnort: Velbert-Langenberg bei Essen
|
Wenn ich mal selber was kompiliere, gehe ich unter Ubuntu nach folgenden Schema vor: https://help.ubuntu.com/community/CompilingEasyHowTo Allerdings ist es damit häufig nicht getan, und ich muss noch solche Sachen wie autoconf, automake und setuptools nach- oder neu installieren.
Manchmal ist auch einfach der richtige Compiler nicht installiert!
Das Terminal zeigt ja meistens sehr gut an, was noch fehlt oder benötigt wird. Das suche ich mir dann über Synaptic zusammen!
So hat es bis jetzt in 90% der Fälle immer funktioniert! Oft mache ich das aber wirklich nicht mehr, da unnötig!
|
Kelhim
Anmeldungsdatum: 18. September 2006
Beiträge: 3642
Wohnort: Köln
|
Beim Kompilieren von Treibermodulen stößt man gerne auf das Problem, dass der Vorgang nur bis zu einer bestimmten Kernelversion funktioniert und der Quellcode nicht an neuere Versionen angepasst wurde. Viel Spaß dabei, auf Seite 10 der Suchmaschinen-Ergebnisse in einer alten Mailing-Liste diese Ursache herauszufinden. ☺
|
hamster
(Themenstarter)
Anmeldungsdatum: 12. April 2007
Beiträge: 197
Wohnort: Berlin
|
Danke für die Antworten. Es scheint also nicht nur mir so zu gehen. Ein paar Abhängigkeiten nachzuinstallieren, ist ja normalerweise kein Problem, nur taucht dann immer irgendein weiteres Problem auf, das nicht so leicht zu lösen ist. Im Moment stehe ich z.B. vor folgendem Problem: schwerwiegender Fehler: gtk/gtk.h: Datei oder Verzeichnis nicht gefunden
Kompilierung beendet. Dabei ist GTK+ eigentlich installiert und es gibt auch eine gtk/gtk.h unter /usr/include/gtk-3.0/gtk/gtk.h.
|
ontaiwolf
Anmeldungsdatum: 19. November 2011
Beiträge: 121
|
libgtk-3-dev bzw. libgtk2.0-dev installiert? Sonst musst du das include-Verzeichnis als Parameter beim Compiler definieren.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17552
Wohnort: Berlin
|
Kelhim schrieb: Beim Kompilieren von Treibermodulen stößt man gerne auf das Problem, dass der Vorgang nur bis zu einer bestimmten Kernelversion funktioniert und der Quellcode nicht an neuere Versionen angepasst wurde. Viel Spaß dabei, auf Seite 10 der Suchmaschinen-Ergebnisse in einer alten Mailing-Liste diese Ursache herauszufinden. ☺
Kommt mir wie eine Widerspruch vor: Wie kann die Lösung des Problems mit einer neueren Kernelversion auf einer alten Mailingliste beschrieben sein? ☺
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17552
Wohnort: Berlin
|
hamster schrieb: Im Moment stehe ich z.B. vor folgendem Problem: schwerwiegender Fehler: gtk/gtk.h: Datei oder Verzeichnis nicht gefunden
Kompilierung beendet. Dabei ist GTK+ eigentlich installiert und es gibt auch eine gtk/gtk.h unter /usr/include/gtk-3.0/gtk/gtk.h.
Die Fehelrmeldung im Wortlaut mitzusenden ist schonmal gut, das gibt eine 4-, Fehlermeldungmachen gerade so bestanden. Eine 3 gibt es, wenn Du noch die Kommandozeile, mit der Du das erreicht hast mitlieferst, eine 2 für den Namen u. Version des Paketes, 1 bei Informationen wo das Paket her ist, welcher Compiler, welche Ubuntuversion und sonstige Petitessen.
|
TausB
Anmeldungsdatum: 26. November 2009
Beiträge: 1563
Wohnort: Terra incognita
|
[OT] user unknown schrieb: Die Fehelrmeldung im Wortlaut mitzusenden ist schonmal gut, das gibt eine 4-, ...
Kommt mir wie eine Widerspruch vor: ...
Wie passend! "gut" entspricht üblicherweise einer "2" ... 😉 [/OT]
|
Kelhim
Anmeldungsdatum: 18. September 2006
Beiträge: 3642
Wohnort: Köln
|
user unknown schrieb: Kelhim schrieb: Beim Kompilieren von Treibermodulen stößt man gerne auf das Problem, dass der Vorgang nur bis zu einer bestimmten Kernelversion funktioniert und der Quellcode nicht an neuere Versionen angepasst wurde. Viel Spaß dabei, auf Seite 10 der Suchmaschinen-Ergebnisse in einer alten Mailing-Liste diese Ursache herauszufinden. ☺
Kommt mir wie eine Widerspruch vor: Wie kann die Lösung des Problems mit einer neueren Kernelversion auf einer alten Mailingliste beschrieben sein? ☺
Alter Logiker! 😉 Das kann passieren, weil der 3er-Kernel schon eine Weile draußen ist, aber der Treiber noch älter ist und nur für die 2er-Kernel getestet wurde. Ist mir neulich mit einem billigen und etwas älteren DVB-T-Adapter passiert (meine Schuld - warum habe ich damals diesen Schrott gekauft?). Oder schon mal mit einem WLAN-Treiber, genau das gleiche.
|
VincentVale
Anmeldungsdatum: 11. Juni 2009
Beiträge: 317
Wohnort: Solingen
|
TausB schrieb: [OT] user unknown schrieb: Die Fehelrmeldung im Wortlaut mitzusenden ist schonmal gut, das gibt eine 4-, ...
Kommt mir wie eine Widerspruch vor: ...
Wie passend! "gut" entspricht üblicherweise einer "2" ... 😉 [/OT]
Du weißt doch. 4 ist Bestanden. Bestanden ist gut... und gut ist 2. 😀
|
Tim_Petu
Anmeldungsdatum: 24. November 2007
Beiträge: 245
|
VincentVale schrieb: TausB schrieb: [OT] user unknown schrieb: Die Fehelrmeldung im Wortlaut mitzusenden ist schonmal gut, das gibt eine 4-, ...
Kommt mir wie eine Widerspruch vor: ...
Wie passend! "gut" entspricht üblicherweise einer "2" ... 😉 [/OT]
Du weißt doch. 4 ist Bestanden. Bestanden ist gut... und gut ist 2. 😀
'Ne 4 ist ausreichend. Wenn die Fehlermeldung aber ausreicht, wozu dann noch die Kommandozeile etc. *verwirrt* 😉
|