電柱日報

日々の由無し事

一般ユーザで拡張ライブラリ

Rubyの拡張ライブラリを導入する作業は、

  1. 前提条件となるライブラリの導入
  2. 拡張ライブラリのソースを展開
  3. extconf.rbでMakefileの作成
  4. コンパイル
  5. インストール

という流れになります。
この中で一番面倒なのが、一番最初の必要なライブラリの依存関係を解決する作業です。ある拡張ライブラリを使用するためには別のライブラリが必要な事が多く、またそれらのライブラリが更に別のライブラリを必要とする事も珍しくありません。
芋蔓式に必要なライブラリを洗い出し、順番に導入して初めて拡張ライブラリ自体の導入が行えるようになります。
この一連の作業を一般ユーザ権限で行うことも不可能ではありませんが、ライブラリ付属のドキュメントはroot(サーバの管理者)権限を利用できる前提で書かれていることが多く、一般ユーザ権限でこれを行うのはroot権限が利用できる場合に比べて格段に面倒な作業になります。
また、最後のインストール作業もroot権限が必要ですが、このインストール作業は実際には出来上がったライブラリをデフォルトの(すべてのユーザが利用可能な)ディレクトリにコピーしているだけで、コンパイル作業が完了した段階で拡張ライブラリは完成している場合がほとんどです。
つまり、前提となるライブラリが既に用意されており、自分だけが拡張ライブラリを使うのであれば、root権限がない一般ユーザでも2〜3個のコマンドを実行するだけで可能だったりするわけです。
で、さくらのレンタルサーバはまさにそんな感じ。