ubuntuでnative extentionがあるgemをインストール

ubuntuに変えて、一つ不満だったのはパッケージがありすぎることである。
いや、ありすぎることは悪いことではない。
だけど、問題はどのパッケージをインストールするべきかわかりづらいということだ。

たとえば、rubyのコードでbundle installすると

Using do_mysql (0.10.6) from git://github.com/datamapper/do.git (at d7cb262) with native extensions Unfortunately, a fatal error has occurred. Please report this error to the Bundler issue tracker at https://github.com/carlhuda/bundler/issues so that we can fix it. Thanks!
/usr/lib/ruby/1.9.1/rubygems/installer.rb:552:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

        /usr/bin/ruby1.9.1 extconf.rb 
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***

とエラーが出る場合。
この場合、mysqlclientのライブラリがないといっているようだ。
CentOSだと、なんとなくsqlite-devっぽいものをインストールすれば解決した。

最近、apt-fileというコマンドを覚えた。apt-getでインストールし、apt-file updateで最新の情報が手に入る。そこで、

$ apt-file search mysqlclient
libmysqlclient-dev: /usr/lib/x86_64-linux-gnu/libmysqlclient.a
libmysqlclient-dev: /usr/lib/x86_64-linux-gnu/libmysqlclient.so
libmysqlclient-dev: /usr/lib/x86_64-linux-gnu/libmysqlclient_r.a
libmysqlclient-dev: /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so
libmysqlclient-dev: /usr/share/doc/libmysqlclient-dev/changelog.Debian.gz
libmysqlclient-dev: /usr/share/doc/libmysqlclient-dev/copyright
libmysqlclient-dev: /usr/share/doc/libmysqlclient-dev/examples/udf_example.c.gz
libmysqlclient16: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.16
libmysqlclient16: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.16.0.0
libmysqlclient16: /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so.16
libmysqlclient16: /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so.16.0.0
libmysqlclient16: /usr/share/doc/libmysqlclient16/changelog.Debian.gz
libmysqlclient16: /usr/share/doc/libmysqlclient16/copyright
libmysqlclient16-dev: /usr/share/doc/libmysqlclient16-dev/changelog.Debian.gz
libmysqlclient16-dev: /usr/share/doc/libmysqlclient16-dev/copyright
libmysqlclient18: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18
libmysqlclient18: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0
libmysqlclient18: /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so.18
libmysqlclient18: /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so.18.0.0
libmysqlclient18: /usr/share/doc/libmysqlclient18/changelog.Debian.gz
libmysqlclient18: /usr/share/doc/libmysqlclient18/copyright
pandora-build: /usr/share/aclocal/pandora_have_libmysqlclient.m4

となるいっぱい出てくるけど、libmysqlclient-devが怪しさ満点。そこで、apt-get installする。
問題は解決しました。

次、Postgresqlについても同様のエラー。こちらは、

>|bash|
checking for main() in -lpq... no
checking for main() in -llibpq... no
|

【まとめ】rst2pdfの設定

環境

rst2pdfはrstからpdfを作るツール。マニュアルは下記を参照。

http://lateral.netmanagers.com.ar/static/manual.pdf

使用したバージョンは0.91。

OSはubuntu 12.04

フォント

migmix-1pとmigu1mを利用する。次のサイトからダウンロードして解凍する。

http://sourceforge.jp/projects/mix-mplus-ipa/downloads/53388/migmix-1p-20111002.zip/
http://sourceforge.jp/projects/mix-mplus-ipa/downloads/53388/migmix-2m-20111002.zip/

~/.fontsを作成し、解凍した次のファイルをコピーする。

  • migmix-1p-regular.ttf
  • migmix-1p-bold.ttf
  • migu-1m-regular.ttf
  • migu-1m-bold.ttf

設定ファイル

rst2pdfの設定ファイル

次の内容を~/.rst2pdf/configに保存。

[general]
stylesheets="ja"
font_path="~/.fonts"
日本語用のスタイルファイル

次の内容を~/.rst2pdf/styles/ja.jsonに保存

{
  "embeddedFonts" :
  [["migmix-1p-regular.ttf",
    "migmix-1p-bold.ttf",
    "migu-1m-regular.ttf",
    "migu-1m-bold.ttf"]],
  "fontsAlias" : {
    "stdFont": "MigMix 1P Regular",
    "stdBold": "MigMix 1P Bold",
    "stdItalic": "MigMix 1P Bold",
    "stdBoldItalic": "MigMix 1P Bold",
    "stdMono": "Migu 1M Regular"
  },
  "styles" : [
    ["base" , {
      "wordWrap": "CJK"
    }]
  ]
}