Was sind "Build-Essential" und "Build-Dep"?

65

Ich recherchiere, wie Ruby 1.9.1 in Xubuntu 10.04 installiert werden kann, und bin mehrmals auf den Befehl build-essential und build- dep gestoßen . Manchmal folgen Pakete, und manchmal werden Pakete vorangestellt und nachgeordnet.

Die 2 Beispiele, die ich betrachte, sind:

sudo apt-get install build-wesentlich zlib1g zlib1g-dev zlibc libruby1.9 libxml2 libxml2-dev libxslt-dev

sudo apt-get build-dep ruby1.9

und

sudo apt-get install ruby ​​irb ri rdoc ruby1.8-dev libzlib-ruby libyaml-ruby libreadline-ruby libncurses-ruby libcurses-ruby libruby libruby-extras libfcgi-ruby1.8 build-essential libopenssl-ruby libdbm-ruby-libdbm-ruby libdbd-sqlite3-ruby sqlite3 libsqlite3-dev libsqlite3-ruby libxml-ruby libxml2-dev

Classer
quelle
3
Beachten Sie, dass es sich nicht um einen Befehl handelt, sondern um ein Paket im Debian-Paketsystem (APT). Sie können das Paket auch mit GUI-Tools erwerben.
Vielen Dank. In welcher Beziehung steht es zu Ruby? Ich gehe davon aus, dass Ruby es zum Laufen braucht, aber vielleicht irre ich mich.
Classer

Antworten:

49

Das Paket build-essentials ist eine Referenz für alle Pakete, die zum Kompilieren eines Debian-Pakets benötigt werden. Es enthält im Allgemeinen die GCC / g ++ - Compiler und -Bibliotheken sowie einige andere Dienstprogramme. Überprüfen Sie die Dokumentation: Hier!

Ismael
quelle
2
Ok, aber das beantwortet meine Frage immer noch nicht vollständig. Ich verstehe, dass 'build-essential' eine informative Liste von Paketen enthält, die für die Erstellung von Debian-Paketen wesentlich sind. Aber was ist ein Debian-Paket? Rubin? GCC / G ++ - Compiler? Und in welcher Beziehung stehen Debian-Pakete und "build-essential" zu Ruby? Ist Ruby auf dem Debian-Paket aufgebaut? Oder muss Ruby das build-essential-Paket ausführen? Ich möchte wirklich eine visuelle Darstellung der Beziehungen zwischen all diesen Teilen.
Classer
3
Einfach ausgedrückt, wenn Sie (oder ein anderes Paket, das Sie installieren möchten) einen C / C ++ - Compiler benötigen, müssen Sie build-essential installieren. Normalerweise ist es das erste, was ich in einer neuen Ubuntu-Installation installiere :-)
4
@Adam Da Ruby eine interpretierte Sprache ist, muss der Interpreter den C- oder C ++ - Compiler selbst erstellen, damit er auf Ihrem Computer ausgeführt werden kann. build-essentialist ein Metapaket (ein Paket, das viele andere Pakete wie g ++ und gcc installiert: die GNU C & C ++ - Compiler). Dies ist erforderlich, wenn Sie alles aus dem Quellcode kompilieren und mit nahezu jeder Programmiersprache arbeiten möchten. HTH!
Squircle
6
Diese Antwort ist falsch. Die Antwort unten ist die richtige. build-depist ein apt-get-Befehl und build-essentialein Paket.
David
2
Dies ist nicht die richtige Antwort. Der bereitgestellte Link gibt keinen Einblick oder eine Erklärung darüber, was in dem Build-Essential-Paket enthalten ist.
DevW
54

Der Befehl sudo apt-get build-dep packagenamebedeutet "Installiere als root alle Abhängigkeiten für 'Paketname', damit ich es erstellen kann". Build-dep ist also genau wie install, remove, update usw. ein apt-get-Befehl.

build-essential ist ein Paket, das Verweise auf zahlreiche Pakete enthält, die zum Erstellen von Software im Allgemeinen benötigt werden.

Kleist
quelle
1
Vielen Dank für die Erklärung des Befehls 'build-dep'. So wie ich es verstehe, ist Ruby1.9 in diesem Fall eine Abhängigkeitsliste angehängt, die Linux als 'To-Do / Build-Liste' ansieht, und eine nach der anderen erstellt jedes dieser Elemente. Die endgültige Infrastruktur, die erstellt wird, ermöglicht es Ruby1.9, ordnungsgemäß zu funktionieren. Was ich nicht verstehe, ist, warum "build-essential" oder alle anderen Pakete in der obersten Zeile (zlib1g zlib1g-dev zlibc libruby1.9 usw. usw.) nicht in die "To Do / Build List" aufgenommen werden 'an Ruby1.9 angehängt. Wäre es nicht einfacher, wenn es nur einen Befehl gäbe?
Classer
5

build-essentialHat eine magische Eigenschaft: Es muss nicht als Build-Abhängigkeit unter dem Build-DependsKontrollfeld ( debian-packages) von Quellpaketen aufgeführt sein, wie unter https://www.debian.org/doc/debian-policy/ch-source.html# dokumentiert. s-pkg-Beziehungen

Sie können eine Liste der Build-Essential-Pakete unter folgender Adresse abrufen:

cat /usr/share/doc/build-essential/list

Sie können auch feststellen, ob ein Paket Teil von ist build-essentialmit:

apt-get show gcc

was sagt:

Build-Essential: yes
Ciro Santilli ist ein Schauspieler
quelle
4

"build-essential" enthält Tools (wie den gcc-Compiler, das make-Tool usw.) zum Kompilieren / Erstellen von Software aus dem Quellcode. Sie beginnen also mit (normalerweise C) Quelldateien und erstellen daraus ausführbare Dateien.

Wenn Sie nur versuchen, Ruby zu installieren, kann ich nur die Verwendung von RVM (Ruby Version Manager) empfehlen :

Folgen Sie den Anweisungen unter "Github Repository (empfohlen)"

Beachten Sie, dass Sie zuerst die Git-Versionskontrollsoftware installieren müssen. Verwenden apt-get install git-coreSie, wenn Sie das noch nicht haben.

Doug
quelle