2017-01-30 2 views
0

Wenn ich meine Konfiguration in einem Ubuntu OS (16) benutze, scheint es kein Problem zu geben. Ich habe das Autoconf-Tool und die Abhängigkeiten installiert.autoconf configure Warnung:/usr/bin/file: Keine solche Datei oder Verzeichnis

Wenn ich die gleiche configure-Datei in einem Ubuntu (16 oder spätestens) ausführen Die Probleme sind, dass ich keine Autotools installiert habe. Ich erhalte die folgende Fehlermeldung.

./configure: line 7022: /usr/bin/file: No such file or directory 

Dies ist für den Build-Prozess unschädlich. Ich möchte nur verstehen, was vor sich geht. Die Konfigurationsdatei:

7022  case `/usr/bin/file conftest.o` in 
7023  *32-bit*) 

Es sieht aus, dass mein Docker nicht/usr/bin/Datei hat. Welche Ubuntu-Pakete enthalten das Datei-Dienstprogramm? Das Problem mit der Suche nach nützlichen Informationen über '/ usr/bin/file' ist, dass diese Datei ein so gebräuchlicher Begriff ist, dass es nicht einfach ist, weitere Informationen zu finden. Auf meinem System mit dem Datei-Dienstprogramm, kann ich die folgenden Informationen aus der Manpage der Datei erhalten:

AVAILABILITY 
    You can obtain the original author's latest version by anonymous FTP on ftp.astron.com in the direc‐ 
    tory /pub/file/file-X.YZ.tar.gz. 

Meine Frage: ist ‚Datei‘ ein sehr einfaches Dienstprogramm oder es ist vor kurzem zum autotolls Paket hinzugefügt? Soll ich es installieren?

+0

Ja, 'Datei' ist ein sehr einfaches Dienstprogramm. Das Paket, das es bereitstellt, wird einfach "Datei" genannt; Siehe https://launchpad.net/ubuntu/+source/file - Sie sollten die Paketverwaltungsfunktionen Ihres Betriebssystems verwenden, um das vom Anbieter bereitgestellte Binärpaket zu installieren, ohne zu versuchen, es von der Quelle aus zu installieren. –

+0

Übrigens, wenn Sie über ein Softwarepaket googlen möchten, ist "Paket" ein wichtiges Schlüsselwort. Googeln "Ubuntu-Datei-Paket" brachte das oben genannte als den zweiten Link, und der darüber war relevant. –

+0

Charles danke für den Kommentar, jetzt bin ich klar. Das Build-Essential scheint es nicht zu enthalten. –

Antwort

1

baut die GNU-System restricts the features dass configure für maximale Kompatibilität verwenden sollte, einschließlich, wie Shell-Code zu schreiben und die utilities zur Verwendung zur Verfügung stehen, und Funktionen, die Sie aus diesen Nebenkosten erwarten.

file ist nicht in dieser Liste, und soll (so oder so) tested for mit AC_PATH_PROG sein und so ist wirklich ein Fehler im Paket. Selbst wenn der Test in configure unbedingt erfordert file zu arbeiten, um eine AC_MSG_ERROR zu bekommen, sagen "Installieren Sie das Dateiprogramm" wäre besser, die Fehlermeldung zu dekodieren.

So Ihre Fragen zu beantworten:

ist ‚Datei‘ ein sehr einfaches Dienstprogramm oder es ist vor kurzem zum autotolls Paket hinzugefügt?

Nein, Datei ist nicht Teil von Autotools, aber es ist ein ziemlich verbreitetes Dienstprogramm, das installiert wird. Basic ist möglicherweise nicht das beste Adjektiv zur Beschreibung file.

Sollte ich es installieren?

Ihr configure Skript beruht darauf, also denke ich müssen Sie.

Aber es ist die Verwendung ist irgendwie albern: Die meiste Zeit können Sie die Architektur aus der host triplet bestimmen. Außerdem ist objdump einer der Standard-Compiler-Tools (objdump -f conftest.o wird ähnliche Informationen anzeigen). Zumindest wird es installiert werden.

+0

Das Programm 'file' wird vom generierten Code benötigt, und es gibt keine Notwendigkeit für 'Datei' mit configure.ac oder Makefile.am. Die Abhängigkeit wurde nur beim Ausführen von configure auf einem System ohne binäre Datei angegeben. –

+0

Richtig, aber irgendwo innerhalb 'configure.ac' (oder eines der .m4 Makros, die es benutzt) wird etwas sein, das die Zeilen 7022-7023 erzeugt, wenn' autoconf' ausgeführt wird, um das 'configure' Skript zu erzeugen. – ldav1s

0

Die Datei scheint ihren Ursprung in BSD zu haben und wurde weiterentwickelt (man-Datei). Dies ist eine seltene Frage, und ich erwarte keine Antworten. Ich versuche Daten zu sammeln. Nach einiger Detektivarbeit, fand ich, dass die folgenden Link:

https://travis-ci.org/file/file Github Seite für die Umsetzung

Unix-Datei Befehl: http://www.computerhope.com/unix/ufile.htm

Wiki-Seite: https://en.wikipedia.org/wiki/File_(command)

Wie Charles vorgeschlagen, Sie die Installation sollten Dateipaket über einen Paketmanager. Für Ubuntu ist der Link zum Paket: https://launchpad.net/ubuntu/+source/file

Nicht sicher, welche Quelle die authentische Implementierung ist. Ich bin kein OS-Experte, und andere bitte kommentieren und aktualisieren.

Verwandte Themen