Source-Files: Wo sind Abhängige Packete gelistet?

Gast #4076401
Lesenswert?

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?
Gast #4076406
Lesenswert?

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?
#4076407
Lesenswert?

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(...)).
Gast #4076420
Lesenswert?

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.
Gast #4076469
Lesenswert?

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.
#4076567
Lesenswert?

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.
#4076797
Lesenswert?

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.
Gast #4078045
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren