Google Chrome(グーグル・クローム)は,Google が開発しているウェブブラウザである。
Linux における Firefox と Chrome のライブラリ依存性の違いが以前から気になっていたので軽く調べてみた。LFS のような素に近い Linux 環境で公式パッケージ(Chrome は .deb)を展開して使おうとすると,Firefox はすんなり起動するが Chrome はライブラリ不足で起動しない可能性が高い。
ldd でバイナリを調べてみると,明らかに Firefox の方が輪結されているライブラリが少ない。多くのライブラリは動的ロードしていると思われるが,それも Firefox パッケージ(.tar.bz2)に含まれている。一方,Chrome はほとんどのライブラリを最初からパッケージ管理前提で動的輪結にしている。当然ながらパッケージに必要以上のライブラリは含まれていない。
$ ldd firefox-bin
linux-vdso.so.1 (0x00007ffeeaffd000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f0f9520a000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f0f95006000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f0f94c86000)
libm.so.6 => /lib/libm.so.6 (0x00007f0f94973000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f0f9475c000)
libc.so.6 => /lib/libc.so.6 (0x00007f0f943b8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0f95428000)
$ ldd chrome
linux-vdso.so.1 (0x00007fff54718000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007ff3decfc000)
libdl.so.2 => /lib/libdl.so.2 (0x00007ff3deaf8000)
librt.so.1 => /lib/librt.so.1 (0x00007ff3de8f0000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00007ff3de6e3000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00007ff3de498000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007ff3de18d000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007ff3ddf3b000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007ff3ddc2a000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007ff3dd8ef000)
libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0x00007ff3dd6ed000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007ff3dd4c8000)
libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x00007ff3dd2c5000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00007ff3dd0ba000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00007ff3dceb7000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007ff3dcca5000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007ff3dca9f000)
libXi.so.6 => /usr/lib/libXi.so.6 (0x00007ff3dc88f000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007ff3dc685000)
libXtst.so.6 => /usr/lib/libXtst.so.6 (0x00007ff3dc47f000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007ff3dc27b000)
libnss3.so => /usr/lib/libnss3.so (0x00007ff3dbf57000)
libnssutil3.so => /usr/lib/libnssutil3.so (0x00007ff3dbd27000)
#...以下略。全体でこの3倍はある。