Es geht mir darum aufgrund der Source-Files herauszufinden, von welchen Softwarepacketen z.b. der GCC-Compiler abhängt. LinuxFromSratch liefert die Abhängigkeiten für GCC: "Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, GCC, Gettext, Glibc, GMP, Grep, M4, Make, MPC, MPFR, Patch, Perl, Sed, Tar, and Texinfo" (http://www.linuxfromscratch.org/lfs/view/development/appendices/dependencies.html,siehe unter "GCC" ) Kann ich auch alleine durch den gegebenen Sourcecode von ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-4.9.2/ herausfinden welche Software vor der eigentlichen Installation von GCC installiert sein muss? Wo werde ich in den Source-Files fündig?
Peter schrieb: > Wo werde ich in den Source-Files fündig? gar nicht, zumindest nicht in den Source-Files. Es können ja vom Makefile auch Scripte ausgeführt werden und dort werden dann andere Programm gebraucht. Auch das make selber wird gebraucht, obwohl es selber in den quelle nicht zu finden ist. Oder zählt für die das Makefile als source-file?
Kannst du nicht rausfinden, zumindest nicht ohne weiteres. Du kannst nur so Dinge tun wie schauen, gegen welche Bibliotheken gelinkt wird und welches Pak(!)et die zur Verfügung stellt. Build-Systeme wie CMake können dir auch oft sagen, was genau du brauchst, bzw. da ist es oft sehr explizit aufgelistet (find_package(...)).
:
Bearbeitet durch User
Woher nimmt dann LinuxFromScratch die Abhängigkeiten? Irgendwo müssen diese doch aufgelistet sein?
Peter schrieb: > Woher nimmt dann LinuxFromScratch die Abhängigkeiten? Irgendwo müssen > diese doch aufgelistet sein? Du kannst einfach die Quellen landen und einfach versuchen es zu bauen. und jedes Mal wenn etwas fehlt schreibst du es auf - schon hast du die liste.
Peter schrieb: > Woher nimmt dann LinuxFromScratch die Abhängigkeiten? Irgendwo müssen > diese doch aufgelistet sein? Die tippt für die Distributionen in der Regel jemand von Hand in eine Paket-Konfigurationsdatei. Siehe zum Beispiel aur.archlinux.org, etwa https://aur.archlinux.org/packages/ka/kate-git/PKGBUILD (depends=, makedepends=)
:
Bearbeitet durch User
Sven B. schrieb: > Build-Systeme wie CMake können dir auch oft sagen, was genau du > brauchst, bzw. da ist es oft sehr explizit aufgelistet > (find_package(...)). Bei gcc kommt meines Wissens autoconf zum Einsatz. Das meldet beim configure-Aufruf auch einen Fehler, wenn irgendwas fehlt. Abgesehen von dem ganzen gibt es aber auch unterschiedliche Kategorien von Abhängigkeiten. Manche Programme kann man auch bauen, wenn bestimmte Sachen nicht verfügbar sind. Dann fehlt halt eine entsprechende Teilfunktionalität des Programms. Oder es kann auch mehrere unterschiedliche Alternativen geben, von denen das Build-System aber nur eine vorfinden muss. Welche das ist, hängt dann ggf. vom System ab. So kann ein Audio-Player z.B. unter Linux ALSA zur Tonausgabe benutzen, unter Windows DirectX, unter FreeBSD OSS oder alternativ PulseAudio auf allen diesen Systemen.
Peter schrieb: > Woher nimmt dann LinuxFromScratch die Abhängigkeiten? Irgendwo müssen > diese doch aufgelistet sein? du könntest z.B. bei Gentoo in die Ebuilds gucken. da steht sowas drinnen, vor allem auch, welche Abhängigkeiten optional sind. z.B. (passend zum Forum) avrdude: virtual/libusb:0 ftdi? ( dev-embedded/libftdi ) ncurses? ( sys-libs/ncurses ) readline? ( sys-libs/readline ) bedeutet: libusb brauchst du immer. Wenn das Feature "ftdi" gewünscht ist (use-flag), dann bitte die libftdi, ncurses/readline ähnlich. Bei einer Binär-Distribution stellt sich diese Frage nicht, da hat der zuständige Maintainer schon sinnvolle Einstellungen gewählt, und dadurch die Abhängigkeiten vorgegeben.
Rolf Magnus schrieb: > Sven B. schrieb: >> Build-Systeme wie CMake können dir auch oft sagen, was genau du >> brauchst, bzw. da ist es oft sehr explizit aufgelistet >> (find_package(...)). > > Bei gcc kommt meines Wissens autoconf zum Einsatz. Das meldet beim > configure-Aufruf auch einen Fehler, wenn irgendwas fehlt. gcc ist ein Compiler und autoconf ein Build-System. Das kannst du beliebig kombinieren. gcc hat mit autoconf nix zu tun. Außerdem ist autoconf kacke.
Sven B. schrieb: > gcc ist ein Compiler und autoconf ein Build-System. Ja, und zwar das, mit dem gcc gebaut wird.
Rolf Magnus schrieb: > Sven B. schrieb: >> gcc ist ein Compiler und autoconf ein Build-System. > > Ja, und zwar das, mit dem gcc gebaut wird. Ach so. Sorry, da hab ich gar nicht kapiert was du sagen wolltest.
Peter schrieb: > von welchen > Softwarepacketen z.b. der GCC-Compiler abhängt. Das ist eine höchst ungenaue Frage: Pakete, die man braucht um den ggc selbst zu compilieren? Pakete, die vorhanden sein müssen, damit der gcc läuft? Pakete, die bestimmte Funktionen zur Verfügung stellen, aber nicht unbedingt vorhanden sein müssen? Die verschiedenen Abhängigkeiten gelten auch für jede andere Software. U.a. kann sich der Programmierer entscheiden, ob eine bestimmte DLL vorausgesetzt wird, so dass das Programm ohne garnicht erst startet, oder ob er nur bei Bedarf eine Fehlermeldung bringt, dass die Funktion XY nicht verfügbar ist weil... Dazu kommt, dass eben libraries bzw. DLLs verlangt werden und nicht Pakete - da führt wohl kein Weg an der Fleissarbeit vorbei, die Liste manuell zu erstellen. Man kann zwar aus einem Paket auslesen, was drin ist, aber nicht von einer library, in welchem Paket sie steckt. Georg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.