Abhängigkeitsüberprüfung? vor der Installation

1656
chutsu

Jeder muss irgendwann einmal ein Programm von Source in Linux installiert haben. Sehr oft stelle ich fest, dass ich ein Programm herunterlade, das ich installieren möchte, durchlaufen ./configureund viele Fehlermeldungen erscheinen, die besagen, dass Sie dies nicht haben oder nicht.

Gibt es eine Website, die Ihnen die Abhängigkeiten des jeweiligen Programms deutlich zeigt? Einige haben es in der READMEAkte, aber die meisten stören sich nicht.

Gibt es eine Möglichkeit, alle Abhängigkeiten zu finden, ohne den ./configureBefehl auszuführen?

0

6 Antworten auf die Frage

3
Tim Post

Da verschiedene Distributionen Pakete unterschiedlich benennen, ist dies äußerst schwierig. Auf Debian kann ein Paket beispielsweise den Namen libfoo und das entsprechende Entwicklungspaket libfoo-dev haben. Bei RHEL / CentOS können es libfoo1 und libfoo1-devel sein.

Ein gut geschriebenes configure.ac (das verwendet wird, um das Skript 'configure' zu generieren) sollte Ihnen auf Meta-Weise mitteilen, welches Paket Ihnen fehlt. Ie

Checking for libfoo ... no Checking for libfoo usability .... no ./configure: Error: You are missing the package 'libfoo' and possibly 'libfoo-dev(el)' 

Damit können Sie apt-cache / yum nach etwas suchen, das installiert werden soll, wenn die Fehler vor dem configure: Error: nicht offensichtlich sind. Die Ausgabe von googling configure trägt in der Regel Früchte, um herauszufinden, welches Paket Ihnen fehlt.

Das eigentliche Problem tritt auf, wenn die Version von libfoo, die Ihre Distribution anbietet, für das Programm, das Sie kompilieren möchten, zu alt ist. In diesem Fall müssen Sie libfoo selbst erstellen, es getrennt von der von Ihrer Distribution bereitgestellten Version installieren und dem Programm mitteilen, wie es mit dem Programm verbunden werden soll (auch über 'configure').

Aus diesem Grund verwende ich für meine Entwicklungsmaschine in der Regel schnell bewegte Distributionen (z. B. Ubuntu). Normalerweise finde ich das, was ich brauche, aktuell im Universum-Repository.

Ich habe gerade glibc auf einer Debian Lenny Maschine eines Upgrade nur die Lage sein, ein multi - threaded AIO basierend AoE Ziel zu bauen und zu installieren, und meine eigene 2.6.31.6 Kernel rollen, weil das Programm eventfd Unterstützung wollte. Ich fühle deinen Schmerz :)

Dennoch ist dies ein Teil des Spaßes, eigene Sachen zu bauen. Sobald es funktioniert, sind Sie doppelt zufrieden, oder doppelt frustriert, wenn es nicht funktioniert :)

2
liori

Es gibt Programme, die Abhängigkeiten beim Erstellen von Software herausfinden. Sie überwachen den Build-Prozess, stoppen ihn, wenn er eine Datei benötigt, installieren ein Paket, das diese Datei bereitstellt, und setzen den Build-Prozess fort.

In Debian gibt es beispielsweise Auto-Apt .

1
demas

Viele Distributoren verfügen über Paketmanager, deren Aufgaben die Abhängigkeiten auflösen. Wenn Ihr Verteiler keinen Paketmanager hat, können Sie die Abhängigkeiten basierend auf anderen Verteilungspaketen finden. Zum Beispiel Debian-Pakete .

Zum Beispiel für Köter .

Ich weiß nicht, wie Sie alle Abhängigkeiten finden können, wenn kein Paket vorhanden ist.

0

RPMFIND.NET listet "Required" -Pakete für alles Wissenswerte auf.

YUM und APT (RedHat- bzw. Debian-basierte Distributionen) existieren hauptsächlich für diesen Zweck. Sie können jedoch auch die Pakete installieren. Whoo-Hoo

0
viraptor
  1. Überprüfen Sie auf der Website des Projekts - sie werden höchstwahrscheinlich die Abhängigkeiten auflisten.
  2. Machen Sie sich keine Sorgen über einige Überprüfungen / Fehler, die keine Fehler sind. Die meisten Projekte, die autoscan verwenden, werden beispielsweise nach awk, gawk, mawk usw. suchen, aber es ist egal, ob Sie eines oder alle von ihnen installieren.
  3. Wenn configure in einer Bibliothek tatsächlich mit einem Fehler stoppt, suchen Sie einfach nach dem Namen, den es meldet. apt-cache search .../ yum search/ google ist normalerweise alles, was Sie brauchen.
0
Ryan Thompson

Wenn Sie aus einem Quellcode installieren, um ein Update für ein Programm zu erhalten, das bereits über den Paketmanager installiert werden kann, können Sie im begrenzten Fall die Buildabhängigkeiten der Version im Paketmanager installieren, und dies sollte das gesamte oder das meiste davon enthalten Build-Deps der neuen Version