Debian 7.8 64ビットにRuby 2.2.1をインストールする

RSSを作成するための準備をする。

環境

Rubyをダウンロードする

ホームディレクトリに移動する。
$ cd

アーカイブをダウンロードするためのディレクトリを作成する。
$ mkdir tarball
$ cd tarball

アーカイブをダウンロードする。
$ wget http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.1.tar.gz

アーカイブを展開する。
$ tar xvf ruby-2.2.1.tar.gz
    

Rubyをビルドする

ビルドに失敗する。

ホームディレクトリに移動する。
$ cd

インストールするためのディレクトリを作成する。
$ mkdir opt

ビルドする。
$ cd tarball
$ cd ruby-2.2.1
$ echo $HOME
/home/wheezy
$ ./configure --prefix=$HOME/opt
$ make
linking shared-object fiddle.so
/usr/bin/ld: ./libffi-3.2.1/.libs/libffi.a(raw_api.o): relocation R_X86_64_32S against '.rodata' can not be used when making a shared object; recompile with -fPIC
./libffi-3.2.1/.libs/libffi.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
    

configureのオプションを追加してやりなおす。インストールに失敗する。

失敗したビルド結果を削除する。
$ make clean

ビルドする。
$ ./configure --prefix=$HOME/opt --enable-shared
$ make

インストールする。
$ make test
$ make install
./tool/rbinstall.rb:714:in 'rescue in block in <main>': uninitialized constant LoadErroe (NameError)
        from ./tool/rbinstall.rb:712:in 'block in <main>'
        from ./tool/rbinstall.rb:757:in 'call'
        from ./tool/rbinstall.rb:757:in 'block in <main>'
        from ./tool/rbinstall.rb:754:in 'each'
        from ./tool/rbinstall.rb:754:in '<main>'
    

Rubyの安定版スナップショットをダウンロードする

ホームディレクトリに移動する。
$ cd

失敗した2.2.1のアーカイブとディレクトリを削除する。
$ cd tarball
$ ls
ruby-2.2.1 ruby-2.2.1.tar.gz
$ rm -rf ruby-2.2.1
$ rm ruby-2.2.1.tar.gz

安定版スナップショットをダウンロードする。
$ wget https://ftp.ruby-lang.org/pub/ruby/stable-snapshot.tar.gz

安定版スナップショットを展開する。
$ tar xvf stable-snapshot.tar.gz
    

Rubyの安定版スナップショットをビルドする

ホームディレクトリに移動する。
$ cd

失敗した2.2.1のインストール結果を削除する。
$ cd opt
$ ls
bin include lib share
$ rm -rf bin
$ rm -rf include
$ rm -rf lib
$ rm -rf share

ホームディレクトリに移動する。
$ cd

安定版スナップショットをビルドする。
失敗する。
$ cd stable-snapshot
$ ./configure --prefix=$HOME/opt
$ make
./libffi-3.2.1/.libs/libffi.a: could not read symbols: Bad value

configureのオプションを追加してやりなおす。
失敗したビルド結果を削除する。
$ make clean

ビルドする。
$ ./configure --prefix=$HOME/opt --enable-shared
$ make

インストールする。
$ make test
$ make install

バージョンを確認する。
$ cd
$ cd opt
$ ls
bin include lib share
$ $HOME/opt/bin/ruby -v
ruby 2.2.2p88 (2015-03-25 revision 50085) [x86_64-linux]

アーカイブを削除する。
$ cd
$ cd tarball
$ ls
stable-snapshot stable-snapshot.tar.gz
$ rm -rf stable-snapshot
$ rm stable-snapshot.tar.gz
    

関連情報

2015, AfternoonTea