ubuntuの下でerlangソースコードのコンパイルとインストール
今日ubuntuシステム(ubuntu server)を再インストールしましたが、開発環境がほとんど裸であることがわかりました.再コンパイルインストールerlangにはいくつかのキーライブラリが必要で、昨年インストールしたが、今は忘れてしまったので、メモしておきます.
もちろんapt-getでerlangを直接インストールできますが、バージョンは古いだけで、ubuntuで使用可能なerlangをソースコードからどのようにコンパイルするかについて説明します.
aptインストールerlangに依存する他のライブラリを次のコマンドで確認できます.
sudo apt-get build-dep erlang
しかし、openjdk、fopなど、ここの多くのライブラリは必要ではありません.
1.基礎開発ツールのインストール
gcc/g+、makeを指す
2.その他のErlang依存キーライブラリ
基本的に上記のソフトウェアをインストールすると、利用可能なerlang/OTPとその仮想マシンをスムーズにコンパイルできます.
デフォルトでは、Erlang Homeディレクトリは/usr/local/lib/erlang/です.
欠けているのは次のとおりです. systemtapのサポート、 JInterfaceのサポート、 wxのGUIライブラリ(observerは使えません)、 ODBCのサポート、 Erlangドキュメントの生成 以上の機能が必要な場合は、下を見続けます.
3.旧バージョンのErlangが依存する可能性のある他のライブラリ
今m 4はもう必要ではありません.古いバージョンのerlangは必要かもしれません.
sudo apt-get install m4
また、これらも必要ではありません.古いバージョンが必要かもしれません.
sudo apt-get install libncursesw5-dev libreadline6-dev
4.その他erlangソースコードのコンパイルに影響しない非必須ソフトウェアのインストール
4.0システムtapのサポート
まずシステムtapをインストールするにはlinuxカーネルdebug symbolsのサポートが必要です.そのため、独自のカーネルを再コンパイルする必要があります.
幸いubuntu-10.xxのためにlinux-image-dbgsymのaptインストールソースを提供している人がいて、このステップを省きました.詳しく見る
このメモ
カーネルdbgsymをインストールしたら、systemtapとsystemtap-sdt-devのインストールを開始します.
Erlang/OTPのコンパイル時にsystemtapを指定する
注意システムtapのみをインストールする場合、システムtap-sdt-debがインストールされていないと次のエラーが発生します.
configure: error: No dtrace utility found.
4.1.JDKの取り付け
JInterfaceのコンパイルにはjavaコンパイラjavacが必要です(JInterfaceはJDK 5ですが、デフォルトのJDKが1.5未満の場合、makeがJInterfaceに到達してもエラーが発生します).
JInterfaceは必須ではありませんが、使い続けるにはJDKをインストールする必要があります.2つのインストール方法があります.
ubuntuはapt-getでインストールするか、oracle公式サイトでインストールパッケージをダウンロードして手動でインストールすることができます.
4.1.1 apt-getインストール
昔、ubuntuはjavaを直接apt-getでインストールすることができました.
sudo apt-get install sun-java6-jdk
Ubuntu 10.04からapt-getはsun-jdkをデフォルトで提供しなくなり、aptにJDKソースを手動で追加する必要があります
1)Ubuntu 10.04でソースを手動で追加するには:
2)Ubuntu 10.10で、手動でソースを追加します.
3)Ubuntu 11.10で、手動でソースを追加します.
インストールの完了:
4)Ubuntu 12.10で、手動でソースを追加します.
インストールの完了:
4.1.2 JDKインストールパッケージのダウンロードインストール
もちろんoracleのウェブサイトに行って直接JDK(登録が必要)のインストールをダウンロードすることもできて、jrockitとsunのJDKはすべてできます
sun:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
jrockit:
http://www.oracle.com/technetwork/middleware/jrockit/downloads/index.html
4.1.3インストール完了後、JDKに環境変数を設定する必要がある
普通はJAVAを設置しますHOMEとPATH(私は/etc/profileで設定することに慣れています);
JAVA_HOME=/my/path/to/jdk
PATH=$JAVA_HOME/bin:$PATH
注意:
jdkのインストールが完了したらjavacをチェックしたほうがいいです.新しくインストールしたJDKが自動的にデフォルトのJDKになるとは限らないからです.Javaコンパイラのバージョンを確認します.
4.2その他の重要でないライブラリもあります
たとえば、リレーショナル・データベース、グラフィック・インタフェース.
sudo apt-get install libc 6(Ubuntu 9.10以降は自動的にこれを持っているので、これ以上詰める必要はありません)
Erlangの新しいGUIツールはwxWidgetsに基づいて開発されているので、これらのツールを使用するにはwxWidgetsをインストールする必要があります.
ubuntuでwxをインストールします.
注意wxだけがうまくいかないmakeはGUIをサポートするerlang/otpを出して、freeglut 3-devも必要で、さもなくば以下のエラーを提示します:
古いバージョンのerlangで使用されている古いグラフィックツール(toolbar、appmon、pman、debugger、tvなど)は、tcl/tkのwishでGUIインタフェースを作るため、tkをインストールする必要があります
tkは古いバージョンerlangのコンパイルとインストールに影響しませんが、toolbarが提供する一連のグラフィックモニタリングツールを開発中に使用したい場合に問題が発生します.
4.3 erlangヘルプドキュメントの生成に必要なソフトウェア
R 13 B 03以降、ヘルプファイルを自動的に生成するには、xsltprocとfopをインストールする必要があります.
いずれも大きい(百MB以上)ので、ドキュメントを気にしないでインストールしなくてもいいし、erlangのmakeに影響しません.
5.manマニュアルのインストール
公式にはソースパッケージのほかに、manマニュアルのダウンロードも提供されており、このman圧縮パッケージをダウンロードした後、erlang homeディレクトリの下に解凍し、後でerl-manコマンドで関連モジュールの定義と説明を参照することができます.例えば、listsモジュールを参照してください.
6.アンインストール
デフォルトでは、Erlangホームディレクトリは/usr/local/lib/erlang/であり、このディレクトリを直接削除するとerlang otpをアンインストールできます.
自分でERL_を設定したらLIBSなどの環境変数も、対応するディレクトリを削除することを覚えています.
cryoliteはblog文章の安定性を保証せず、時間と必要があればいつでも原文を修正します.
7.その他の取り付け方法
7.1 clangでerlangをコンパイルする
clangについてはここを見ることができます(
Linuxでclang 3.0+llvm 3.0+libc++を使用)の紹介です.
ubuntuの下にはclangのインストール方法が2種類あります
1)apt-getでclangをインストールできる
そして
2)行ってもいい
llvmのウェブサイトのダウンロード最新のコンパイルされた公式clang、そして
これで構成が完了するとmake R 15 Bができます.
しかしR 14 B 04はmakeに成功せず、
だれか Mac OS XでCFLAGSを-Qunused-argumentsコンパイルに成功するように設定します.しかしubuntuではgccはこのパラメータをサポートしていません.の
R 14 Bと
R 15 Bのインストール説明書で、後者だけがclangに言及していることが分かったが、R 14 Bはclangを公式にサポートしていない可能性があると推定されている.
理論的にはclangもR 14 Bをコンパイルすることができ、手動でコンパイルスクリプトを修正してコンパイルに成功した人もいますが、コンパイルされたR 14 B仮想マシンの実行時に問題があるようなので、R 14 Bのコンパイルを振り回すことはありません.
7.2.erlang-solutions公式提供のバイナリインストールパッケージ
今erlang-solutionsは正式にコンパイルしたErlang OTPを提供し始めました.
ここ
様々なプラットフォーム(Mac OSX,ubuntu,linux,OpenSUSE,CentOS,Debian)でコンパイルされた各バージョンのEralng OTPを提供します.
ubuntuについては、ubuntuの公式よりも新しいバージョンを提供しており、リリースは非常にタイムリーで、新版erlang OTPが正式にリリースされたばかりで、バイナリはすでにコンパイルされています.
しかし、openjdk、GUI gtk、wxなど、GUIのないserver ubuntuの下でも、他の依存を追加的にインストールする必要があります.
apt-get、rpmでインストールできます.
もちろんapt-getでerlangを直接インストールできますが、バージョンは古いだけで、ubuntuで使用可能なerlangをソースコードからどのようにコンパイルするかについて説明します.
aptインストールerlangに依存する他のライブラリを次のコマンドで確認できます.
sudo apt-get build-dep erlang
しかし、openjdk、fopなど、ここの多くのライブラリは必要ではありません.
1.基礎開発ツールのインストール
gcc/g+、makeを指す
sudo apt-get install build-essential
2.その他のErlang依存キーライブラリ
sudo apt-get install libncurses5-dev
sudo apt-get install libssl-dev
基本的に上記のソフトウェアをインストールすると、利用可能なerlang/OTPとその仮想マシンをスムーズにコンパイルできます.
./configure && make
sudo make install
デフォルトでは、Erlang Homeディレクトリは/usr/local/lib/erlang/です.
欠けているのは次のとおりです.
3.旧バージョンのErlangが依存する可能性のある他のライブラリ
今m 4はもう必要ではありません.古いバージョンのerlangは必要かもしれません.
sudo apt-get install m4
また、これらも必要ではありません.古いバージョンが必要かもしれません.
sudo apt-get install libncursesw5-dev libreadline6-dev
4.その他erlangソースコードのコンパイルに影響しない非必須ソフトウェアのインストール
4.0システムtapのサポート
まずシステムtapをインストールするにはlinuxカーネルdebug symbolsのサポートが必要です.そのため、独自のカーネルを再コンパイルする必要があります.
幸いubuntu-10.xxのためにlinux-image-dbgsymのaptインストールソースを提供している人がいて、このステップを省きました.詳しく見る
このメモ
カーネルdbgsymをインストールしたら、systemtapとsystemtap-sdt-devのインストールを開始します.
sudo apt-get install systemtap systemtap-sdt-dev
Erlang/OTPのコンパイル時にsystemtapを指定する
./configure --with-dynamic-trace=systemtap --enable-vm-probes --enable-native-libs
注意システムtapのみをインストールする場合、システムtap-sdt-debがインストールされていないと次のエラーが発生します.
configure: error: No dtrace utility found.
4.1.JDKの取り付け
JInterfaceのコンパイルにはjavaコンパイラjavacが必要です(JInterfaceはJDK 5ですが、デフォルトのJDKが1.5未満の場合、makeがJInterfaceに到達してもエラーが発生します).
JInterfaceは必須ではありませんが、使い続けるにはJDKをインストールする必要があります.2つのインストール方法があります.
ubuntuはapt-getでインストールするか、oracle公式サイトでインストールパッケージをダウンロードして手動でインストールすることができます.
4.1.1 apt-getインストール
昔、ubuntuはjavaを直接apt-getでインストールすることができました.
sudo apt-get install sun-java6-jdk
Ubuntu 10.04からapt-getはsun-jdkをデフォルトで提供しなくなり、aptにJDKソースを手動で追加する必要があります
1)Ubuntu 10.04でソースを手動で追加するには:
sudo apt-add-repository "deb http://archive.canonical.com/ lucid partner"
2)Ubuntu 10.10で、手動でソースを追加します.
sudo apt-add-repository "deb http://archive.canonical.com/ubuntu maverick partner"
3)Ubuntu 11.10で、手動でソースを追加します.
sudo add-apt-repository ppa:ferramroberto/java
インストールの完了:
sudo apt-get update
sudo apt-get install sun-java6-jdk
4)Ubuntu 12.10で、手動でソースを追加します.
sudo add-apt-repository ppa:webupd8team/java
インストールの完了:
sudo apt-get update
sudo apt-get install oracle-java6-installer
4.1.2 JDKインストールパッケージのダウンロードインストール
もちろんoracleのウェブサイトに行って直接JDK(登録が必要)のインストールをダウンロードすることもできて、jrockitとsunのJDKはすべてできます
sun:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
jrockit:
http://www.oracle.com/technetwork/middleware/jrockit/downloads/index.html
4.1.3インストール完了後、JDKに環境変数を設定する必要がある
普通はJAVAを設置しますHOMEとPATH(私は/etc/profileで設定することに慣れています);
JAVA_HOME=/my/path/to/jdk
PATH=$JAVA_HOME/bin:$PATH
注意:
jdkのインストールが完了したらjavacをチェックしたほうがいいです.新しくインストールしたJDKが自動的にデフォルトのJDKになるとは限らないからです.Javaコンパイラのバージョンを確認します.
javac -version
4.2その他の重要でないライブラリもあります
たとえば、リレーショナル・データベース、グラフィック・インタフェース.
sudo apt-get install libc 6(Ubuntu 9.10以降は自動的にこれを持っているので、これ以上詰める必要はありません)
sudo apt-get install unixodbc unixodbc-dev ODBC
Erlangの新しいGUIツールはwxWidgetsに基づいて開発されているので、これらのツールを使用するにはwxWidgetsをインストールする必要があります.
ubuntuでwxをインストールします.
sudo apt-get install freeglut3-dev libwxgtk2.8-dev
注意wxだけがうまくいかないmakeはGUIをサポートするerlang/otpを出して、freeglut 3-devも必要で、さもなくば以下のエラーを提示します:
Can not link the wx driver, wx will NOT be useable
古いバージョンのerlangで使用されている古いグラフィックツール(toolbar、appmon、pman、debugger、tvなど)は、tcl/tkのwishでGUIインタフェースを作るため、tkをインストールする必要があります
sudo apt-get install tk8.5
tkは古いバージョンerlangのコンパイルとインストールに影響しませんが、toolbarが提供する一連のグラフィックモニタリングツールを開発中に使用したい場合に問題が発生します.
4.3 erlangヘルプドキュメントの生成に必要なソフトウェア
R 13 B 03以降、ヘルプファイルを自動的に生成するには、xsltprocとfopをインストールする必要があります.
sudo apt-get install xsltproc
sudo apt-get install fop
いずれも大きい(百MB以上)ので、ドキュメントを気にしないでインストールしなくてもいいし、erlangのmakeに影響しません.
5.manマニュアルのインストール
公式にはソースパッケージのほかに、manマニュアルのダウンロードも提供されており、このman圧縮パッケージをダウンロードした後、erlang homeディレクトリの下に解凍し、後でerl-manコマンドで関連モジュールの定義と説明を参照することができます.例えば、listsモジュールを参照してください.
erl -man lists
6.アンインストール
デフォルトでは、Erlangホームディレクトリは/usr/local/lib/erlang/であり、このディレクトリを直接削除するとerlang otpをアンインストールできます.
自分でERL_を設定したらLIBSなどの環境変数も、対応するディレクトリを削除することを覚えています.
cryoliteはblog文章の安定性を保証せず、時間と必要があればいつでも原文を修正します.
7.その他の取り付け方法
7.1 clangでerlangをコンパイルする
clangについてはここを見ることができます(
Linuxでclang 3.0+llvm 3.0+libc++を使用)の紹介です.
ubuntuの下にはclangのインストール方法が2種類あります
1)apt-getでclangをインストールできる
sudo apt-get install clang
そして
CC=clang CXX=clang ./configure
2)行ってもいい
llvmのウェブサイトのダウンロード最新のコンパイルされた公式clang、そして
CC=/path/to/clang+llvm-3.0/bin/clang CXX=/path/to/clang+llvm-3.0/bin/clang ./configure
これで構成が完了するとmake R 15 Bができます.
make
sudo make install
しかしR 14 B 04はmakeに成功せず、
だれか Mac OS XでCFLAGSを-Qunused-argumentsコンパイルに成功するように設定します.しかしubuntuではgccはこのパラメータをサポートしていません.の
R 14 Bと
R 15 Bのインストール説明書で、後者だけがclangに言及していることが分かったが、R 14 Bはclangを公式にサポートしていない可能性があると推定されている.
理論的にはclangもR 14 Bをコンパイルすることができ、手動でコンパイルスクリプトを修正してコンパイルに成功した人もいますが、コンパイルされたR 14 B仮想マシンの実行時に問題があるようなので、R 14 Bのコンパイルを振り回すことはありません.
7.2.erlang-solutions公式提供のバイナリインストールパッケージ
今erlang-solutionsは正式にコンパイルしたErlang OTPを提供し始めました.
ここ
様々なプラットフォーム(Mac OSX,ubuntu,linux,OpenSUSE,CentOS,Debian)でコンパイルされた各バージョンのEralng OTPを提供します.
ubuntuについては、ubuntuの公式よりも新しいバージョンを提供しており、リリースは非常にタイムリーで、新版erlang OTPが正式にリリースされたばかりで、バイナリはすでにコンパイルされています.
しかし、openjdk、GUI gtk、wxなど、GUIのないserver ubuntuの下でも、他の依存を追加的にインストールする必要があります.
apt-get、rpmでインストールできます.