2

RVM、Ruby、Rails に が必要なのはなぜlibc6-dev, ncurses-dev and libtool ですか?

Ubuntuで実行すると、次のようになりrvm requirementsます。

Linux の要件 ( DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10" )

注: 「ruby」は Matz の Ruby インタープリター (MRI) (1.8.X、1.9.X) を表します。
これはオリジナル/標準の Ruby 言語インタープリターです
。「ree」は Ruby Enterprise Edition を
表します。「rbx」は Rubinius を表します。

bash >= 4.1 が必要です
curl が必要です
git が必要です (>= ruby​​-head の場合は 1.7)
patch が必要です (1.8 ruby​​ といくつかの ruby​​-head の場合)。

rbx および/または Ruby 1.9 head (MRI) (例: 1.9.2-head) を
インストールするには、最初に rvm 1.8.7 をインストールして使用する必要があります。

追加の依存関係:
# Ruby / Ruby HEAD (MRI、Rubinius、および REE) の場合、以下をインストールします:
ruby​​: /usr/bin/apt-get install build-essential openssl libreadline6
libreadline6-dev curl git-core zlib1g zlib1g-dev libssl -dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool バイソン サブバージョン pkg-config

# JRuby の場合は以下をインストール
jruby: /usr/bin/apt-get install curl g++ openjdk-6-jre-
headless jruby-head: /usr/bin/apt-get install ant openjdk-6-jdk

# IronRuby の場合、以下をインストールします:
ironruby: /usr/bin/apt-get install curl mono-2.0-devel

RVM、Ruby、Rails に が必要なのはなぜlibc6-dev, ncurses-dev and libtoolですか?

他のパッケージについては、私が知る限り:

build-essential automake bison autoconf pkg-configソースからのコンパイルに便利です
libreadline6 libreadline6-devirb の readline サポート
openssl libssl-devが必要です ruby​​ の SSL サポート
curl git-core subversionが必要です ソフトウェアのフェッチ
zlib1g zlib1g-devに必要です unpacking ruby​​gems
libyaml-devが必要です ruby​​ の YAML サポート
libsqlite3-dev sqlite3が必要です Rails の sqlite サポートが
libxml2-dev libxslt-dev必要です

そもそもなぜ RVM がそれらを追加したのか知りたいですか?
これらのパッケージのいずれかがインストールされていない場合、どのよく知られたライブラリが壊れますか?
これらのパッケージのどれが ruby​​ 自体をインストールするのに必要で、どのパッケージが stdlib に必要なのか。yaml または rexml ?

編集: pkg-config を忘れました
編集: 最後にいくつかの質問を追加しました

4

3 に答える 3

2

これらはすべて、将来使用するさまざまなgemの依存関係である基本的なライブラリです。

 build-essential openssl libreadline6
 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev 
 libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev 
 autoconf libc6-dev ncurses-dev automake libtool bison subversion

m / c内のすべてのライブラリが必要ない場合もありますが、いくつかのgemをインストールすると、次のようなエラーが発生します。

ネイティブ拡張を構築できません

そのような場合、必要なライブラリが失敗したgemを探して、インストールされます。ライブラリは一度だけインストールされ、gemとはまったく異なります。ここにあるライブラリは

Git、mysqlサーバー、sqlite、curlなど。

最初に、Sudoapt-getinstallを使用してsudo権限でインストールすることをお勧めします。お役に立てれば。また、新しいgemやプラグインを試してみると、将来的には新しいライブラリをインストールすることになります。

于 2012-11-30T10:17:40.710 に答える
2

ruby には一連の拡張機能が付属しており、一部の拡張機能には追加のパッケージが必要です。たとえば、より良いコンソール サポート (irb) には ncurses が必要です - ただし必須ではありませんが、パッケージ検索には pkg-config が必要です - ほとんどのパッケージは、役立つ構成ファイルを公開しています。コンパイルのための適切なパスを見つける際に...など、ここにすべての拡張機能のリストがあります: https ://github.com/ruby/ruby/tree/trunk/ext ...要件のリストではありませんが-できます要件の公式ルビーリストが見つかりません。

于 2012-11-30T14:46:55.907 に答える
2

libc6-dev は C 標準ライブラリ開発ファイルです。それらなしで有用な C コードがコンパイルされる可能性はほとんどありません。Ruby は C で書かれているため、Ruby 自体をコンパイルしてビルドするために必要です。

irb をコンパイルするには ncurses が必要だと思います。

あなたが言及した他のパッケージの目的に同意します。

于 2012-11-30T09:08:27.777 に答える