ラズパイでRubyのWebクローリング/スクレイピング環境構築メモ(前半)
先日、ラズパイ上で、Ruby,SeleniumWebDriverのWebクローラー/スクレイピング環境を構築しました。Windows上では環境構築したことがありましたが、Linux系OS上では初めて環境構築しました。手間取ったことも多く、いくつか試行錯誤しながら作業したので、備忘録として手順をまとめたいと思います。
記事が長くなるので、2部構成にします。前半は、OSアップデートから、Rubyのインストール手順です。後半は、Webクローリング/スクレイピングするためのRubyジェムをインストールする手順です。
では、前半です。
動作確認環境
環境構築前は、次のような環境でした。
- Raspberry Pi Model B Rev.2
- Raspbian GNU/Linux 7 (wheezy)
- Linux raspberrypi 3.10.25+ #622 PREEMPT Fri Jan 3 18:41:00 GMT 2014 armv6l GNU/Linux
- Ruby 1.9.3p194 (2012-04-20 revision 35410) [arm-linux-eabihf]
- RubyでWebクローラー/スクレイピングするためのソフトウェアやライブラリなし
今回の作業後は、次の環境になりました。変更点のみ記述します。
作業の流れ
- OSアップデート
- Ruby管理ツールインストール
- Rubyインストール
- Rubyジェムインストール(Selenium-WebDriver,Nokogiri)
- Rubyジェムインストール(Headless)
Rubyをインストールするまでの手順は、次のサイトに従って行いました。
OSアップデート
以降の作業を安定して進めるため、次のコマンドでOSをアップデートしました。
$ sudo apt-get update
補足
今回作業の中で、試行錯誤した際に、次のコマンドも実行しました。必要な作業であったかどうかは不明です。
$ sudo apt-get upgrade
Ruby管理ツールインストール
今回初めて、rbenvの存在を知りました。バージョン違いのRubyをインストール、管理するツールのようです。Rubyには、下位互換性が低いバージョンがいくつかあるようなので、複数バージョンを管理できるツールがあるのは便利ですね。
次のコマンドでインストールしました。
$ sudo apt-get install rbenv $ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
次のコマンドで、インストールしたコマンドが使用可能な状態になったことを確認しました。
$ rbenv -h
トラブル体験
ruby-buildは、apt-getでもインストールできました。その場合、インストール可能なRubyのバージョンが「2.0.0-dev」までしか表示されませんでした。
apt-getとgitの両方のruby-buildをインストールしてしまったことがありました。その場合、`rbenv install --list`ではインストール可能なRubyバージョンが色々表示されましたが、`ruby-build --definitions`では「2.0.0-dev」までしか表示されず、`rbenv install 2.2.4`を実行すると、なぜかコマンドの使用方法が表示され、インストールできませんでした。
apt-getでruby-buildをインストールしたときは、次のコマンドでアンインストールしました。
$ sudo apt-get remove ruby-build $ sudo apt-get autoremove
Rubyインストール
まずは、次のようにして、Rubyで必要となるライブラリ類をインストールし、その設定を行いました。
$ sudo apt-get install autoconf $ sudo apt-get install libreadline-dev $ sudo apt-get install libssl-dev $ sudo apt-get install ruby-dev $ dpkg -l autoconf libreadline-dev libssl-dev ruby-dev $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ . .bashrc
次に、インストール可能なRubyバージョンを確認し、インストールしました。インストールしたRubyバージョンは、普段使っているWindows環境に合わせ2.2.4にしました。インストールには数時間かかり、動作しているかどうか不安になるため、オプション「-v」を付けて、詳細メッセージを表示するようにしました。
$ rbenv install --list $ rbenv install -v 2.2.4 $ rbenv versions 2.2.4 (set by /home/xxx/.rbenv/version)
次のようにして、バージョン2.2.4が適用されていることを確認しました。
$ rbenv global 2.2.4 $ rbenv rehash $ ruby -v ruby 2.2.4p230 (2015-12-16 revision 53155) [armv6l-linux-eabihf] $ gem -v 2.4.5.1
トラブル体験
autoconfのインストールをせずに作業を進めたときは、`rbenv install`のときに、次のようなエラーが発生してしまいました。
/usr/bin/ruby-build: 行 161: autoconf: コマンドが見つかりません
libreadline-devのインストールをせずに作業を進めたときは、`rbenv install`のときに、次のようなエラーが発生してしまいました。
Try running `apt-get install -y libreadline-dev` to fetch missing dependencies.
後半へ
前半は、ここまでです。後半は、こちらです。