ページ

2016年10月1日土曜日

Ruby/SDLをUbuntuにインストールする

(2016-10-03大幅更新)
RubyでGUI(ウィンドウ)のあるアプリケーションを作成できるRuby/SDLというものがあります。

これをUbuntuにインストールしようとした時、調べてもなかなかインストール方法がわからなかったので、ここにインストール方法を示しておきます。




このあとに行うインストールの下準備をします。(必須ではありません)
sudo apt-get update
sudo apt-get upgrade


Ruby/SDL関連のパッケージをインストールします。
sudo apt-get install ruby-sdl

Ruby/SDLで使われるSDLをインストールします。
sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev

これで、ひと通り使えるのでしょうか。何か問題がありましたら、コメント欄にてお伝えください。いつお返事を差し上げられるかわかりませんが...


以下、旧記事を載せます。

結論としては、apt-getでruby-sdlパッケージをインストールすれば良いです。
最初にgemでRuby/SDLをインストールしようとした時のエラーです。

user@oldwindows7:~$ sudo gem install rubysdl
[sudo] user のパスワード:
Fetching: rubysdl-2.2.0.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing rubysdl:
    ERROR: Failed to build gem native extension.

    current directory: /var/lib/gems/2.3.0/gems/rubysdl-2.2.0
/usr/bin/ruby2.3 -r ./siteconf20161001-4792-1uyoor2.rb extconf.rb
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/bin/$(RUBY_BASE_NAME)2.3
    --with-sdl-config
    --without-sdl-config
extconf.rb:8:in ``': No such file or directory - sdl-config (Errno::ENOENT)
    from extconf.rb:8:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /var/lib/gems/2.3.0/gems/rubysdl-2.2.0 for inspection.
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rubysdl-2.2.0/gem_make.out


https://www.kmc.gr.jp/~ohai/rubysdl/README.jaを見ると、DebianにはRuby/SDLのパッケージがあると書いてあります。UbuntuはDebianの派生ディストリビューションであるため、使えるだろうと思い、検索してみると、ruby-sdlパッケージというものがあります。

では、このパッケージをインストールしてみます。


user@oldwindows7:~$ sudo apt-get install ruby-sdl
[sudo] user のパスワード:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています             
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  libmikmod3 libsdl-image1.2 libsdl-mixer1.2 libsdl-sge libsdl-ttf2.0-0
  libsmpeg0
提案パッケージ:
  ruby-opengl
以下のパッケージが新たにインストールされます:
  libmikmod3 libsdl-image1.2 libsdl-mixer1.2 libsdl-sge libsdl-ttf2.0-0
  libsmpeg0 ruby-sdl
アップグレード: 0 個、新規インストール: 7 個、削除: 0 個、保留: 0 個。
535 kB のアーカイブを取得する必要があります。
この操作後に追加で 2,190 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 libsdl-image1.2 amd64 1.2.12-5build2 [28.2 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 libmikmod3 amd64 3.3.8-2 [114 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 libsdl-mixer1.2 amd64 1.2.12-11build1 [71.9 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 libsdl-ttf2.0-0 amd64 2.0.11-3 [15.0 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 libsmpeg0 amd64 0.4.5+cvs20030824-7.1 [80.0 kB]
取得:6 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 libsdl-sge amd64 030809dfsg-6 [70.4 kB]
取得:7 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 ruby-sdl amd64 2.1.3-1build5 [155 kB]
535 kB を 0秒 で取得しました (1,817 kB/s)
以前に未選択のパッケージ libsdl-image1.2:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 405659 個のファイルとディレクトリがインストールされています。)
.../libsdl-image1.2_1.2.12-5build2_amd64.deb を展開する準備をしています ...
libsdl-image1.2:amd64 (1.2.12-5build2) を展開しています...
以前に未選択のパッケージ libmikmod3:amd64 を選択しています。
.../libmikmod3_3.3.8-2_amd64.deb を展開する準備をしています ...
libmikmod3:amd64 (3.3.8-2) を展開しています...
以前に未選択のパッケージ libsdl-mixer1.2:amd64 を選択しています。
.../libsdl-mixer1.2_1.2.12-11build1_amd64.deb を展開する準備をしています ...
libsdl-mixer1.2:amd64 (1.2.12-11build1) を展開しています...
以前に未選択のパッケージ libsdl-ttf2.0-0:amd64 を選択しています。
.../libsdl-ttf2.0-0_2.0.11-3_amd64.deb を展開する準備をしています ...
libsdl-ttf2.0-0:amd64 (2.0.11-3) を展開しています...
以前に未選択のパッケージ libsmpeg0:amd64 を選択しています。
.../libsmpeg0_0.4.5+cvs20030824-7.1_amd64.deb を展開する準備をしています ...
libsmpeg0:amd64 (0.4.5+cvs20030824-7.1) を展開しています...
以前に未選択のパッケージ libsdl-sge:amd64 を選択しています。
.../libsdl-sge_030809dfsg-6_amd64.deb を展開する準備をしています ...
libsdl-sge:amd64 (030809dfsg-6) を展開しています...
以前に未選択のパッケージ ruby-sdl を選択しています。
.../ruby-sdl_2.1.3-1build5_amd64.deb を展開する準備をしています ...
ruby-sdl (2.1.3-1build5) を展開しています...
libc-bin (2.23-0ubuntu3) のトリガを処理しています ...
doc-base (0.10.7) のトリガを処理しています ...
doc-base ファイルを 2 個追加 を処理中...
libsdl-image1.2:amd64 (1.2.12-5build2) を設定しています ...
libmikmod3:amd64 (3.3.8-2) を設定しています ...
libsdl-mixer1.2:amd64 (1.2.12-11build1) を設定しています ...
libsdl-ttf2.0-0:amd64 (2.0.11-3) を設定しています ...
libsmpeg0:amd64 (0.4.5+cvs20030824-7.1) を設定しています ...
libsdl-sge:amd64 (030809dfsg-6) を設定しています ...
ruby-sdl (2.1.3-1build5) を設定しています ...
libc-bin (2.23-0ubuntu3) のトリガを処理しています ...


念の為、再びgemでインストールしてみます。またエラーが表示されました。


user@oldwindows7:~$ sudo gem install rubysdl
Building native extensions.  This could take a while...
ERROR:  Error installing rubysdl:
    ERROR: Failed to build gem native extension.

    current directory: /var/lib/gems/2.3.0/gems/rubysdl-2.2.0
/usr/bin/ruby2.3 -r ./siteconf20161001-5560-93il9z.rb extconf.rb
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/bin/$(RUBY_BASE_NAME)2.3
    --with-sdl-config
    --without-sdl-config
extconf.rb:8:in ``': No such file or directory - sdl-config (Errno::ENOENT)
    from extconf.rb:8:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /var/lib/gems/2.3.0/gems/rubysdl-2.2.0 for inspection.
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rubysdl-2.2.0/gem_make.out



ここで、Ruby/SDLを使ったアプリが動くのかを確認してみます。
以下のサイトから、どれかのコードをコピペして実行してみましょう。
https://www.kmc.gr.jp/~ohai/rubysdl_intro.html


私は実行できました。



結論


apt-getを使える方は、ruby-sdlパッケージをインストールするだけで使えるようです。

apt-getを使えない方は、お使いのディストリビューションで使えるパッケージ管理システムにRuby/SDLをインストールできるパッケージがあるか調べてみてください。
または、http://packages.ubuntu.com/ja/trusty/ruby-sdlを見ると、インストールされるパッケージがわかるので、 これを参考に自分で入れてみるのも良いかもしれません。

自分でソースコードからコンパイルする方法もありますが、その方法まで扱いきれないので、調べてみてください。



※追記(2016-10-02)
このままでは、画像ファイルを扱うことができないことがわかりました。(おそらく他にもいろいろと使えない機能があると思います。)おそらくライブラリがないことが原因だと思います。
今後分かり次第更新いたします。
すみませんでした。

0 件のコメント:

コメントを投稿