「build-essential」および「build-dep」とは何ですか?


66

Xubuntu 10.04にRuby 1.9.1をインストールする方法を研究していますが、コマンドbuild-essentialbuild-depに複数回遭遇しました。パッケージが後に続くこともあれば、パッケージが前後に付く場合もあります。

私が見ている2つの例は次のとおりです。

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

sudo apt-get build-dep ruby​​1.9

そして

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


3
コマンドではなく、Debianパッケージシステム(APT)のパッケージであることに注意してください。GUIツールを使用してパッケージを取得することもできます。

ありがとう。しかし、それはRubyとどのように関係していますか?Rubyを実行するにはRubyが必要だと思いますが、おそらく間違っているでしょう。
クラッサ

回答:


48

このbuild-essentialパッケージは、Debianパッケージのコンパイルに必要なすべてのパッケージの参照です。通常、GCC / g ++コンパイラとライブラリ、およびその他のユーティリティが含まれています。

こちらのドキュメントをご覧ください


2
わかりましたが、それでも私の質問に完全には答えられません。「build-essential」には、Debianパッケージの作成に不可欠なパッケージの情報リストが含まれていることを理解しています。しかし、Debianパッケージとは何ですか?ルビー?gcc / g ++コンパイラー?Debianパッケージと「ビルド必須」はどのようにRubyに関連しますか?RubyはDebianパッケージの上に構築されますか?別の言い方をすれば、Rubyは実行するためにビルド必須パッケージを必要としますか?これらのすべての部分間の関係
.-分類

3
簡単に言えば、あなた(またはインストールしたい他のパッケージ)がC / C ++コンパイラを必要とする場合、build-essentialをインストールする必要があります。通常、Ubuntuの新規インストールで最初にインストールするものです:

4
@Adam Rubyはインタープリター言語であるため、インタープリターは、コンピューターで実行するためにCまたはC ++コンパイラーをビルドする必要があります。build-essentialはメタパッケージ(g ++やgccのような他の多くのパッケージをインストールするパッケージ:GNU CおよびC ++コンパイラ)です。ソースから何かをコンパイルする場合、およびほとんどすべてのプログラミング言語で作業する場合に必要です。HTH!
リス

7
この答えは間違っています。以下の答えは正しいものです。build-depapt-getコマンドでbuild-essentialあり、パッケージです。
デビッド14

2
これは正しい答えではありません。提供されているリンクでは、ビルド必須パッケージの内容に関する洞察や説明は提供されていません。
-andDevW

55

このコマンドsudo apt-get build-dep packagenameは、「rootとして、 'packagename'のすべての依存関係をインストールして、ビルドできるようにする」という意味です。したがって、build-depは、インストール、削除、更新などのapt-getコマンドです。

build-essential 一般的なソフトウェアの構築に必要な多数のパッケージへの参照を含むパッケージです。


1
「build-dep」コマンドを説明してくれてありがとう。私が理解しているように、この場合、Ruby1.9にはLinuxが「To Do / Build List」として参照する依存関係リストが添付されており、これらの各項目を1つずつビルドします。構築される最終的なインフラストラクチャにより、Ruby1.9が適切に機能します。私が理解していないのは、「build-essential」、または最上行の他のすべてのパッケージ(zlib1g zlib1g-dev zlibc libruby1.9など)が「To Do / Build List」に含まれない理由です'Ruby1.9に添付。コマンドが1つだけだったらもっと簡単ではないでしょうか?
クラッサ

5

build-essential魔法のプロパティが1つあります。https://www.debian.org/doc/debian-policy/ch-source.html#で文書化されているように、ソースパッケージのBuild-Dependsコントロールフィールド(debian-packages)の下にビルド依存関係としてリストする必要はありません。 s-pkg-relations

ビルドに不可欠なパッケージのリストは、次の場所で入手できます。

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

パッケージが以下の一部であるかどうかも判断できますbuild-essential

apt-get show gcc

それは言う:

Build-Essential: yes

4

「build-essential」には、ソースからソフトウェアをコンパイル/ビルドするためのツール(gccコンパイラ、makeツールなど)が含まれています。そのため、(通常はC)ソースファイルから開始し、それらから実行可能ファイルを作成します。

Rubyをインストールしようとしている場合は、RVM(Rubyバージョンマネージャー)を使用することを強くお勧めします。

「Githubリポジトリ(推奨)」の指示に従ってください

最初にGitバージョン管理ソフトウェアをインストールする必要があることに注意してください。apt-get install git-coreまだ持っていない場合に使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.