Edited at

Raspberry Piに最新版の各種ツール・言語・ライブラリをインストールする

More than 3 years have passed since last update.

最近Raspberry Piで「最新版」をインストールするのにハマってるので、適当にメモ。

各地に散らばる情報を参考にまとめてみました。

基本的にはx86/64のDebianとかUbuntuでの手順で間に合うんですが、一部Raspi特有のオプションとかあったりするので。


追記


  • もうしばらく更新してないですが、今のところバージョン以外のコマンド入力部分が変わったものは見受けられないので、
    大きな問題は無いと思われます。何かお気づきの点があれば気軽に編集リク・コメントなどお願いします。

  • ビルド時間の目安は初代Raspberry Pi Model Bでのものです。今はRPi3があるので格段に早く終わるでしょうし、
    同じバージョンでも常駐プロセスや温度によって割りと時間は変わるので寝てる間にでも終わらせておくといいかもしれません。

  • 一緒にpushbullet-bashを利用すると、
    PCやスマホにビルド進捗通知や再起動通知を送れるのでなかなかいい感じです。コレについては後で記事書くと思います。



注意点


  • ホームディレクトリ直下にbuildディレクトリを作ってその中での作業をおすすめします。

  • /stc/ld.so.confの先頭に/usr/local/libを追加しましょう。

  • 更に、シェルのrcにexport LD_LIBRARY_PATH="/usr/local/lib:/usr/lib"と追記します。


    • ld.so.confと両方に書かないとうまくいかない事があります。



  • あと特に書いていませんが、ライブラリ系のものは終わった後にsudo ldconfigしておきましょう。


    • 忘れると、せっかく最新版をビルドしたのに旧バージョンのものが参照されたりします。

    • 純粋なライブラリだけではなく、実行ファイルのおまけ的にshareに登録する奴もいるのでビルドメッセージをよく見ておくと
      いいです。



  • ここではほぼ全てで.tar.gzをDLしていますが、要はtarballがあればいいのでbz2とかxzでもお好みで。


    • むしろxz推奨



  • SCM用のパッケージとして、git,mercurialをインストールしておきましょう。


    • 最近Vimがmercurialに移行したようなのでgitだけでもよさそう



  • 過去の記憶を元にして書いている部分も結構あるので、若干間違っている可能性があります。


    • まあ間違ってるといってもせいぜい展開後のフォルダ名ぐらいだとは思う。



  • 追記してたら縦に長い記事になってしまいました。右のメニューから各項目に飛ぶといいかもしれません。

./configureの偉大なる力と先人のお陰でほとんど書くことが無いです!

これからも自分が実際にやった物に関してはちょくちょく追加される予定です。


Python

ビルド時間は短くはないけど長くもない、という程度。

特別な作業は特にないっぽい。


2.7.9

wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz

tar xvf Python-2.7.9.tgz
cd Python-2.7.9
./configure && make && sudo make install


3.4.2

wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz

tar xvf Python-3.4.2.tgz
cd Python-3.4.2
./configure && make && sudo make install


Ruby

ビルド時間は結構長い。だいたい2時間半といったところ。

rbenvを利用する。rbenv を使って ruby をインストールする(CentOS編)の2,3,4,5をそのままやればOK.

新しいRubyをインストールしたい時は~/.rbenv/plugins/ruby-buildに移動してgit pull。

そうすればリストが更新されます。


2.2.0

rbenv install 2.2.0

rbenv global 2.2.0
rbenv rehash


Perl

ビルド時間、Rubyより長い。

いつもの手順、と思ってやると若干引っかかる。Configureではなくconfigure.gnuを実行するのがポイント。


5.20.x

気づいたら5.20.1になってました。

多分やり方は同じ。5.21.xが出たらアップデートしよっと。

wget http://www.cpan.org/src/5.0/perl-5.20.1.tar.gz

tar xvf perl-5.20.1.tar.gz
cd perl-5.20.1
./configure.gnu && make && sudo make install


Lua

ビルド時間は割と短く、良心的。

使いドコロは割とある気がする。


Lua 5.2.3

configureがいらない。

wget http://www.lua.org/ftp/lua-5.2.3.tar.gz

tar xvf lua-5.2.3.tar.gz
cd lua-5.2.3
make linux && sudo make install


LuaJIT 2.0.3

こっちもconfigureいらなかったと思う。

wget http://luajit.org/download/LuaJIT-2.0.3.tar.gz

tar xvf LuaJIT-2.0.3.tar.gz
cd LuaJIT-2.0.3
make && sudo make install


PHP

ビルドがPerlより長い。testもかなり長い(9423項目、自分の環境では1つ失敗)。

PHP 5.4.33 Released とかいう最新記事があって、一瞬なにいってんだこいつってなりました。旧バージョンの保守って大変ですね。


5.6.1

wget http://jp1.php.net/get/php-5.6.2.tar.gz/from/this/mirror

mv mirror php-5.6.2.tar.gz
tar xvf php-5.6.2.tar.gz
cd php-5.6.2
./configure && make && sudo make install


Racket

with built packageを選択すれば、DL時間が長い(100MB)けど実際にビルドするのは本体だけなので90分程度。

sourceだけの方はmake installで時間制限に引っかかって詰んだので実質使えない。

configure時に--disale-jitを指定しないとmake中のracketcgcの実行でillegal instructionとか言われて詰みます!

--disable-gracketはおこのみで。


v6.1.1

wget http://mirror.racket-lang.org/installers/6.1.1/racket-6.1.1-src-builtpkgs.tgz

tar xvf racket-6.1.1-src-builtpkgs.tgz
cd racket-6.1.1
./configure --disable-jit --disable-gracket && make && sudo make install


Free Pascal

フリーなPascal実装。実際には結構Delphiらしい。

言語としては全く知らないけど、まああって困るものじゃないしね。


2.6.4

公式のarm-linuxパッケージがそのまま使えます。やったぜ。

wget http://downloads.sourceforge.net/project/freepascal/Linux/2.6.4/fpc-2.6.4.arm-linux.tar

tar xvf fpc-2.6.4.arm-linux.tar
cd fpc-2.6.4.arm-linux
sudo ./instasll.sh
(インストール先を最初に聞いてくるので /usr/local/ を入力、後は全部yでいい)


Go

最近人気が急上昇中(?)のGoogle発の言語。

自分も結構気になってるので学習してみたさ。


1.3.1

こう言ってはなんですが、ソースの構成がクソです。

今回無理やり/usr/local/に配置していますが、そこを汚したくないという方は

ホームディレクトリでもいいと思います。代わりにPATHが汚れるけど。

wget https://storage.googleapis.com/golang/go1.3.1.src.tar.gz

tar xvf go1.3.1.src.tar.gz
cd go/src/
./all.bash
cd ../../
sudo mv go /usr/local/
sudo ln -s /usr/local/go/bin/* /usr/local/bin/


ImageMagick

有名な画像処理ツール。イメージキャラの魔法使いのおっさんがかっこいい。

Windowsでもどこかでお世話になった人は少なくないのでは。

ビルドは意外と時間がかかる。C++のソースが多いからだろうか。


6.8.9-8

wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/ImageMagick-6.8.9-8.tar.gz

tar xvf ImageMagick-6.8.9-8.tar.gz


GNU

GNUツールチェーン群。このリンク先、若干違う気がする。

http://ftp.gnu.org/gnu/というアドレスを覚えておいて損はない。

実際にはほとんど同じような作業なので、シェルスクリプト化すると楽しいかも。


GCC 4.9.1

哲学的なビルド時間(6時間強と推測)。bootstrapを無効にしないとその倍ぐらいかかる気がする。

あと、VFPを有効にしないと終盤でエラーが出て泣きを見る。

4.9.xはリーナス曰くseriously crazy shitらしいですがあまり気にしない。

wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.1/gcc-4.9.1.tar.gz

tar xvf gcc-4.9.1.tar.gz
mkdir gccbuild
cd gccbuild
../gcc-4.9.1/configure --disable-bootstrap --with-fpu=vfp --with-float=hard --enable-languages=c,c++
make
sudo make install


binutils 2.24

1時間はかからない。sysrootを指定し忘れると痛い目にあう。

wget http://ftp.gnu.org/gnu/binutils/binutils-2.24.tar.gz

tar xvf binutils-2.24.tar.gz
mkdir binutilsbuild
cd binutilsbuild
../binutils-2.24/configure --with-sysroot=/ --with-fpu=vfp --with-float=hard
make & sudo make install


gawk 4.1.1

数十分で終わる。

他の物のビルド時に使われることも多いので、最初はこれから始めるといいかも。awkの勉強もできる。

wget http://ftp.gnu.org/gnu/gawk/gawk-4.1.1.tar.gz

tar xvf gawk-4.1.1.tar.gz
cd gawk-4.1.1
./configure && make && sudo make install


m4 1.4.17

こちらも数十分で終わる。

gawkと並んで最初にビルドしておきたい。一部はこれがないとconfigureできなかった気がする。

wget http://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz

tar xvf m4-1.4.17.tar.gz
cd m4-1.4.17
./configure && make && sudo make install


autoconf 2.69

割とすぐ終わる。Tcl/Tkのビルド時に必要。

autoconfのconfigureにautoconfが必要、なんてことは無いのでご安心を。

wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz

tar xvf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure && make && sudo make install


grep 2.20

興味がわいたらでいい。20分もかからなかったと思う。

wget http://ftp.gnu.org/gnu/grep/grep-2.20.tar.xz

tar xvf grep-2.20.tar.xz
cd grep-2.20
./configure && make && sudo make install


gdb 7.8.1

tarballのサイズの割に結構時間かかる。

手順はいつもの。

wget http://ftp.gnu.org/gnu/gdb/gdb-7.8.1.tar.gz

tar xvf gdb-7.8.1.tar.gz
cd gdb-7.8.1
./configure && make && sudo make install


gettext 0.19.3

tarballがちょっとでかい。

ビルドはちょっと時間かかる。

wget http://ftp.gnu.org/gnu/gettext/gettext-0.19.3.tar.gz

tar xvf gettext-0.19.3.tar.gz
cd gettext-0.19.3
./configure && make && sudo make install


wget 1.16

この記事で散々使ってるwgetさん。

ビルド時にOpenSSLを必要とします。

wget http://ftp.gnu.org/gnu/wget/wget-1.16.tar.gz

tar xvf wget-1.16.tar.gz
cd wget-1.16
./configure --with-ssl=openssl && make && sudo make install


Git

みんなだいすきGit。GitHubでホストされてるの面白い。

前提として上のgettextが必要なので、先にやっておきましょう。

それから、この投稿にあるように、--with-curlを指定しないとhttpsが使えなくなってて超不便です!絶対指定しましょう!

git clone https://github.com/git/git

cd git
make configure
./configure --with-expat --with-curl=/usr/local
make && sudo make install


Midnight Commander

CUIでもGUIでも使えるらしいファイラ。

依存が滅茶苦茶多くてビルドがめんどくさかったです。


  • GLib

  • libffi

  • SLang

  • libevent

GLibがさらにlibffiだか何かに依存してて面倒なので、libevent > libffi > SLang > GLib の順でビルドしておきましょう。


4.8.13

wget http://ftp.midnight-commander.org/mc-4.8.13.tar.xz

tar xvf mc-4.8.13.tar.xz
cd mc-4.8.13
./configure && make && sudo make install


Bash

どうやらとんでもない脆弱性が見つかってしまったようですね。

aptitudeから取得できるbashもすでにパッチが適用されていますが、そもそも元のバージョンが4.2で

最新版では無いので、ソースからビルドしてみた次第。時間はtcshと同じぐらい。


4.3 + 001~025までのパッチ

パッチをいちいちwgetしてpatchするのは面倒なので、シェルスクリプトを作ってしまいました。

Gistからクローンして実行するだけで


  • tarballのダウンロード・展開

  • パッチの展開・適用

  • ビルド・インストール

を全自動で行います。

git clone https://gist.github.com/kb10uy/d514257cee32a24e8206 bash-4.3

cd bash-4.3
sudo ./bash43.sh


Zsh

シェル。ビルドはちょっと長いかも。

高機能なのでbashの代わりに使うといい感じ。


5.0.7

wget http://downloads.sourceforge.net/project/zsh/zsh/5.0.7/zsh-5.0.7.tar.gz

tar xvf zsh-5.0.7.tar.gz
cd zsh-5.0.7
./configure && make && sudo make install


tcsh

GLUTをビルドしようと思ったら要求された。

ちなみにGLUTは無理だった。Raspiでは。


6.18.01

wget ftp://ftp.astron.com/pub/tcsh/tcsh-6.18.01.tar.gz

tar xvf tcsh-6.18.01.tar.gz
cd tcsh-6.18.01
./configure && make && sudo make install


Tcl/Tk

割とよく知られたGUIフレームワークと言語。ビルドはちょっと長い。

何故かautoconfからやる必要があり、環境によってはautoconfを先にインストールorビルドしないといけない。


Tcl 8.6.2

wget http://downloads.sourceforge.net/project/tcl/Tcl/8.6.2/tcl8.6.2-src.tar.gz

tar xvf tcl8.6.2-src.tar.gz
cd tcl8.6.2/unix
autoconf
./configure && make && sudo make install


Tk 8.6.2

先にlibx11-devパッケージを入れておかないと途中でつっかえる。

sudo apt-get install libx11-dev

wget http://sourceforge.net/projects/tcl/files/Tcl/8.6.2/tk8.6.2-src.tar.gz
tar xvf tk8.6.2-src.tar.gz
cd tk8.6.2/unix
autoconf
./configure && make && sudo make install


LLVM

GCCの数倍かかる。許してほしい。

あまりの長さに筆者が諦めました。気が向いた時に書きます・・・。


llvm 3.5.0


clang 3.5.0


Vim

言わずと知れたエディタ。

現時点では最新バージョンは7.4。

Mercurialレポジトリの初期化がクソ長いので(この間に何かビルドできるぐらい)、

あとでまたやるつもりがあるならディレクトリをとっときましょう。

GoogleCodeのサービス終了に伴ってGitHubにホスティングを移したようです。


feature/packageについて

Vimはビルド時に一緒にビルドする機能などを選択できますが、

何もオプションを指定しないとあんまり美味しくないので、いくつか指定することを推奨。

今回は一番下以外は全部つけてます。


  • --with-features=huge

  • --disable-selinux

  • --disable-darwin

  • --enable-cscope


  • --enable-rubyinterp


    • 上の手順でRubyをインストールした場合。




  • --enable-perlinterp


    • 上の手順でPerlをインストールした場合。




  • --enable-luainterp


    • 上の手順でLuaをインストールした場合。

    • この場合、必ず--with-lua-prefix=/usr/localも指定します。

    • 同時に --with-luajit を指定するとLuaJITを参照するようになって若干高速化するらしいです。




  • --enable-pythoninterp


    • 上の手順でPython2.xをインストールした場合。




  • --enable-python3interp


    • 上の手順でPython3.xをインストールした場合。




  • --enable-tclinterp


    • Perlのそれと一緒にやると途中でコケて進まなくなるので指定しないほうがいいかも。

    • もし指定して上でTcl8.6をインストールしたなら--with-tclsh=tclsh8.6も指定。




手順

git clone https://github.com/vim/vim.git vim

cd vim/src
./configure --with-features=huge --disable-selinux --disable-darwin --enable-cscope \
--enable-rubyinterp --enable-perlinterp --enable-luainterp --with-luajit \
--with-lua-prefix=/usr/local --enable-pythoninterp --enable-python3interp
make && sudo make install


curl

とくになし。

まあOpenSSLが必要なので先にビルドしておきましょう。

ちなみにcurl7.40.0はOpenSSL1.0.2を認識しません。特に問題があるというわけでもないですが。


7.40.0

wget http://curl.haxx.se/download/curl-7.40.0.tar.gz

tar xvf curl-7.40.0.tar.gz
cd curl-7.40.0
./configure --with-ssl --with-zlib
make && sudo make install


Node.js

RoRを使おうとしたらlibv8がビルドできないとか怒られたしv8そんなに評判良くないので。

何もオプションを付けないとOpenSSLとzlibをまたビルドしようとしたり途中でコケるので幾つか指定します。

まあそんなに抜け道的ではないので大丈夫でしょう。


0.12.0

wget wget http://nodejs.org/dist/v0.12.0/node-v0.12.0.tar.gz

tar xvf node-v0.12.0.tar.gz
cd node-v0.12.0
./configure --shared-openssl --shared-zlib --dest-cpu=arm --dest-os=linux
make


ライブラリ

周辺ライブラリの中で使用頻度の高いやつ。


GMP 6.0.0

順番としてはこれをビルドした後にMPFR,MPCとやる。

大した時間はかからない。

wget https://ftp.gnu.org/gnu/gmp/gmp-6.0.0a.tar.xz

tar xvf gmp-6.0.0a.tar.xz
cd gmp-6.0.0
./configure && make && sudo make install


MPFR 3.1.2

wget http://www.mpfr.org/mpfr-current/mpfr-3.1.2.tar.gz

tar xvf mpfr-3.1.2.tar.gz
cd mpfr-3.1.2
./configure && make && sudo make install


MPC 1.0.2

wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.2.tar.gz

tar xvf mpc-1.0.2.tar.gz
cd mpc-1.0.2
./configure && make && sudo make install


OpenSSL 1.0.2

gitとかcurlとかwgetとかに必要。

wget https://www.openssl.org/source/openssl-1.0.2.tar.gz

tar xvf openssl-1.0.2.tar.gz
cd openssl-1.0.2
./config zlib shared no-ssl2
make && sudo make install


libevent


libffi


SLang


GLib


bdw-gc


libatomic_ops


あとがき


  • CPUパワーとSDカードを結構食う。

  • 自分が最新Verでも他環境ではそうじゃないことがかなりある。

  • 自己満足と言われれば自己満足。だがそれがいい。

  • 最新を追っかけてるときりがないので、ある程度見切りをつけるのも大事。

  • Zshおすすめ。

  • 天子かわいいです。

  • ココアちゃんもかわいいです。