6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rubyをソースからコンパイルするときの依存ライブラリ

Last updated at Posted at 2019-01-01

rbenv install等でソースからコンパイルする場合、依存ライブラリおよびそのヘッダーをOSにインストールしておかないと標準ライブラリの一部がコンパイル出来ません。コンパイル出来なかった標準ライブラリはそのまま無視されて、Ruby本体のインストールまで終わってしまいます。インストールが終わって、いざ使おうとしたときに入ってなかったと言うことがないように各ライブラリについて依存ライブラリを調べました。

2.6.0で調査しています。古いバージョンでは標準ライブラリやバンドルされているソースが異なるため、必要な依存ライブラリも異なりますので注意してください。

Rubyライブラリ 依存ライブラリ 備考
bigdecimal
cgi/escape cgiの一部
continuation 非推奨
coverage 実験的
data_core dateの一部
dbm ndbm 互換ライブラリ可※
digest
etc Windowsでは制限あり
fcntl
fiber
fiddle ffi
gdbm gdbm
io/console
io/nonblock
io/wait
json/ext/* jsonの一部
nkf nkfのソースがバンドル
objspace
openssl openssl
pathname
psych yamlのソースがバンドル
pty UNIX/Linuxのみ
racc/cparse racc/parserの一部
rbconfig/sizeof rbconfigの一部
readline readline
ripper bison コマンドとして必要
sdbm
socket
stringio
strscan
syslog UNIX/Linuxのみ
win32/resolv Windowsのみ
win32ole Windowsのみ
zlib zlib

※dbmが使用するndbm互換ライブラリは下記の通りです。

ライブラリ 検索ヘッダー 説明
libc "ndbm.h" ndbm compatible library in libc.
db "db.h" Berkeley DB (libdb)
db1 "db1/ndbm.h", "db1.h", "ndbm.h" Berkeley DB (libdb1)
db2 "db2/db.h", "db2.h", "db.h" Berkeley DB (libdb2)
db6 "db2/db.h", "db2.h", "db.h" Berkeley DB (libdb6)
db3 "db2/db.h", "db2.h", "db.h" Berkeley DB (libdb3)
db4 "db2/db.h", "db2.h", "db.h" Berkeley DB (libdb4)
db5 "db2/db.h", "db2.h", "db.h" Berkeley DB (libdb5)
gdbm_compat "gdbm-ndbm.h", "gdbm/ndbm.h", "ndbm.h" GDBM since 1.8.1 (libgdbm_compat)
gdbm "gdbm-ndbm.h", "gdbm/ndbm.h", "ndbm.h" GDBM until 1.8.0 (libgdbm)
qdbm "qdbm/relic.h", "relic.h" QDBM (libqdbm)
ndbm "ndbm.h" Some legacy OS may have libndbm.

bisonを除き、ライブラリ自体だけでは無くヘッダーが必要です。ライブラリのパッケージだけでは無く、ライブラリ開発のパッケージが必要になります。Ubuntu 18.04LTSであれば、次のようにインストールすれば良いでしょう。

$ sudo apt install build-essential bison libffi-dev libgdbm-dev libgdbm-compat-dev libreadline-dev libssl-dev zlib1g-dev

なお、Ruby本体にはコンパイル可能な環境であること以外に依存ライブラリは無かったはずです。


以下はメモです。

  • 古いバージョンに含まれるcursesやtcl/tkはそれぞれライブラリが必要です。
  • 古いバージョンではyamlのソースがバンドルされておらず、libyamlが必要かも知れません。
  • Ubuntu 18.04LTSで2.3系以下をインストールする場合は、libssl1.0-devパッケージが必要です。このパッケージはlibssl-devと排他です。
6
4
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?