LoginSignup
27
33

More than 5 years have passed since last update.

CentOS7で実行ファイルの不足している依存関係を解消する(CentOS7でElectronが試せない話に関連して)

Posted at

前回、CentOS7でElectronを試そうとしたら起動すらできませんでした。前回のエラーの解消はできたのですが、今度は別のエラーが発生してElectronの起動自体はまだできていません。しかし、今回はCentOS7上での実行ファイルの依存関係を解決する方法の一つがわかったのではないかと思ったので、前回に引き続きまとめておきます。

エラーのおさらい

electron1というディレクトリの中で、electron-quick-startを丸パクリしたファイルが置いてあります。

$ pwd
/vagrant/electron1
$ ls -la
index.html  main.js  node_modules  package-lock.json  package.json  renderer.js

ここで実行すると

$ npm run start

> electron1@1.0.0 start /vagrant/electron1
> electron .

/vagrant/electron1/node_modules/electron/dist/electron: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! electron1@1.0.0 start: `electron .`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the electron1@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vagrant/.npm/_logs/2017-11-24T02_01_25_328Z-debug.log

こういうエラーが出ていました。

共有ライブラリの依存関係を調べる。

「error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory」で検索しました。このエラーメッセージはElectronに限らずいろんな状況で出ているようですね。
検索結果のうちのこちらのページを参考にやってみます。

エラー内容をもう一度読んでみると、node_modules/electron/dist/electronとありますがこれはバイナリファイルです。名前的におそらくElectronの実行ファイルでしょう。この実行ファイルを動かすときに不足しているものがあるようです。実行ファイルの依存関係をlddコマンドで調べます。lddコマンドについて

$ ldd /vagrant/electron1/node_modules/electron/dist/electron
    linux-vdso.so.1 =>  (0x00007fffa34a7000)
    libnode.so => /vagrant/electron1/node_modules/electron/dist/libnode.so (0x00007f7904917000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f79046ef000)
    libgtk-x11-2.0.so.0 => not found
    libgdk-x11-2.0.so.0 => not found
    libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x00007f79044e1000)
    libatk-1.0.so.0 => /lib64/libatk-1.0.so.0 (0x00007f79042bb000)
    libcairo.so.2 => /lib64/libcairo.so.2 (0x00007f7903f93000)
    libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x00007f7903d6a000)
    libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007f79039d6000)
    libpango-1.0.so.0 => /lib64/libpango-1.0.so.0 (0x00007f790378b000)
    libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007f790353a000)
    libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f7903294000)
    libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007f7903057000)
    libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f7902e0e000)
    libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007f7902c0c000)
    libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f79029e4000)
    libXi.so.6 => not found
    libXcursor.so.1 => not found
    libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007f79027e0000)
    libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007f79025d4000)
    libXcomposite.so.1 => not found
    libXext.so.6 => /lib64/libXext.so.6 (0x00007f79023c2000)
    libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007f79021bb000)
    libXrender.so.1 => /lib64/libXrender.so.1 (0x00007f7901fb0000)
    libX11.so.6 => /lib64/libX11.so.6 (0x00007f7901c72000)
    libXtst.so.6 => not found
    libXss.so.1 => not found
    libgconf-2.so.4 => not found
    libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007f7901a6c000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f7901864000)
    libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f7901552000)
    libnss3.so => /lib64/libnss3.so (0x00007f7901227000)
    libnssutil3.so => /lib64/libnssutil3.so (0x00007f7900ffa000)
    libsmime3.so => /lib64/libsmime3.so (0x00007f7900dd3000)
    libnspr4.so => /lib64/libnspr4.so (0x00007f7900b94000)
    libffmpeg.so => /vagrant/electron1/node_modules/electron/dist/libffmpeg.so (0x00007f79004f5000)
    libasound.so.2 => not found
    libcups.so.2 => not found
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f79002f0000)
    libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f79000c6000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f78ffdbd000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f78ffabb000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f78ff8a5000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f78ff4e1000)
    /lib64/ld-linux-x86-64.so.2 (0x00005643583ce000)
    libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x00007f78ff2cb000)
    libthai.so.0 => /lib64/libthai.so.0 (0x00007f78ff0bf000)
    libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007f78feebc000)
    libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007f78fec59000)
    libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007f78fe9b0000)
    libEGL.so.1 => /lib64/libEGL.so.1 (0x00007f78fe782000)
    libpng15.so.15 => /lib64/libpng15.so.15 (0x00007f78fe557000)
    libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007f78fe353000)
    libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007f78fe144000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f78fdf2e000)
    libGL.so.1 => /lib64/libGL.so.1 (0x00007f78fdcbc000)
    libffi.so.6 => /lib64/libffi.so.6 (0x00007f78fdab3000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f78fd851000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f78fd62a000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f78fd40f000)
    libmount.so.1 => /lib64/libmount.so.1 (0x00007f78fd1ce000)
    libXau.so.6 => /lib64/libXau.so.6 (0x00007f78fcfc9000)
    libplc4.so => /lib64/libplc4.so (0x00007f78fcdc4000)
    libplds4.so => /lib64/libplds4.so (0x00007f78fcbbf000)
    libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f78fc991000)
    libxcb-dri2.so.0 => /lib64/libxcb-dri2.so.0 (0x00007f78fc78b000)
    libxcb-xfixes.so.0 => /lib64/libxcb-xfixes.so.0 (0x00007f78fc583000)
    libxcb-dri3.so.0 => /lib64/libxcb-dri3.so.0 (0x00007f78fc380000)
    libxcb-present.so.0 => /lib64/libxcb-present.so.0 (0x00007f78fc17c000)
    libxcb-sync.so.1 => /lib64/libxcb-sync.so.1 (0x00007f78fbf75000)
    libxshmfence.so.1 => /lib64/libxshmfence.so.1 (0x00007f78fbd72000)
    libgbm.so.1 => /lib64/libgbm.so.1 (0x00007f78fbb65000)
    libdrm.so.2 => /lib64/libdrm.so.2 (0x00007f78fb956000)
    libglapi.so.0 => /lib64/libglapi.so.0 (0x00007f78fb726000)
    libxcb-glx.so.0 => /lib64/libxcb-glx.so.0 (0x00007f78fb50b000)
    libXxf86vm.so.1 => /lib64/libXxf86vm.so.1 (0x00007f78fb305000)
    libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f78fb0c5000)
    libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f78faec0000)

not foundになっているものがlibgtk-x11-2.0.so.0以外にも9個あります。libgtk-x11-2.0.so.0インストールしたはず、、、とか思いましたができていなかったようです。この不足分をインストールします。

不足しているライブラリのインストール

無いなら入れましょうということでyumからインストールします。先に言っておくとyum installではうまくいきません。

$ sudo yum install -y libgtk-x11-2.0.so.0 libgdk-x11-2.0.so.0 libXi.so.6 libXcursor.so.1 libXcomposite.so.1 libXtst.so.6 libXss.so.1 libgconf-2.so.4 libasound.so.2 libcups.so.2

...
完了しました!

再度依存関係を調べましょう

$ ldd /vagrant/electron1/node_modules/electron/dist/electron
    linux-vdso.so.1 =>  (0x00007ffe6a5a7000)
    libnode.so => /vagrant/electron1/node_modules/electron/dist/libnode.so (0x00007fad3b667000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fad3b43f000)
    libgtk-x11-2.0.so.0 => not found
    libgdk-x11-2.0.so.0 => not found
    libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x00007fad3b231000)
    libatk-1.0.so.0 => /lib64/libatk-1.0.so.0 (0x00007fad3b00b000)
    libcairo.so.2 => /lib64/libcairo.so.2 (0x00007fad3ace3000)
    libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x00007fad3aaba000)
    libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007fad3a726000)
    libpango-1.0.so.0 => /lib64/libpango-1.0.so.0 (0x00007fad3a4db000)
    libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007fad3a28a000)
    libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007fad39fe4000)
    libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007fad39da7000)
    libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007fad39b5e000)
    libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007fad3995c000)
    libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fad39734000)
    libXi.so.6 => not found
    libXcursor.so.1 => not found
    libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007fad39530000)
    libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007fad39324000)
    libXcomposite.so.1 => not found
    libXext.so.6 => /lib64/libXext.so.6 (0x00007fad39112000)
    libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007fad38f0b000)
    libXrender.so.1 => /lib64/libXrender.so.1 (0x00007fad38d00000)
    libX11.so.6 => /lib64/libX11.so.6 (0x00007fad389c2000)
    libXtst.so.6 => not found
    libXss.so.1 => not found
    libgconf-2.so.4 => not found
    libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007fad387bc000)
    librt.so.1 => /lib64/librt.so.1 (0x00007fad385b4000)
    libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fad382a2000)
    libnss3.so => /lib64/libnss3.so (0x00007fad37f77000)
    libnssutil3.so => /lib64/libnssutil3.so (0x00007fad37d4a000)
    libsmime3.so => /lib64/libsmime3.so (0x00007fad37b23000)
    libnspr4.so => /lib64/libnspr4.so (0x00007fad378e4000)
    libffmpeg.so => /vagrant/electron1/node_modules/electron/dist/libffmpeg.so (0x00007fad37245000)
    libasound.so.2 => not found
    libcups.so.2 => not found
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fad37040000)
    libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fad36e16000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fad36b0d000)
    libm.so.6 => /lib64/libm.so.6 (0x00007fad3680b000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fad365f5000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fad36231000)
    /lib64/ld-linux-x86-64.so.2 (0x000055e996581000)
    libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x00007fad3601b000)
    libthai.so.0 => /lib64/libthai.so.0 (0x00007fad35e0f000)
    libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007fad35c0c000)
    libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007fad359a9000)
    libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007fad35700000)
    libEGL.so.1 => /lib64/libEGL.so.1 (0x00007fad354d2000)
    libpng15.so.15 => /lib64/libpng15.so.15 (0x00007fad352a7000)
    libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007fad350a3000)
    libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007fad34e94000)
    libz.so.1 => /lib64/libz.so.1 (0x00007fad34c7e000)
    libGL.so.1 => /lib64/libGL.so.1 (0x00007fad34a0c000)
    libffi.so.6 => /lib64/libffi.so.6 (0x00007fad34803000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fad345a1000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fad3437a000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fad3415f000)
    libmount.so.1 => /lib64/libmount.so.1 (0x00007fad33f1e000)
    libXau.so.6 => /lib64/libXau.so.6 (0x00007fad33d19000)
    libplc4.so => /lib64/libplc4.so (0x00007fad33b14000)
    libplds4.so => /lib64/libplds4.so (0x00007fad3390f000)
    libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007fad336e1000)
    libxcb-dri2.so.0 => /lib64/libxcb-dri2.so.0 (0x00007fad334db000)
    libxcb-xfixes.so.0 => /lib64/libxcb-xfixes.so.0 (0x00007fad332d3000)
    libxcb-dri3.so.0 => /lib64/libxcb-dri3.so.0 (0x00007fad330d0000)
    libxcb-present.so.0 => /lib64/libxcb-present.so.0 (0x00007fad32ecc000)
    libxcb-sync.so.1 => /lib64/libxcb-sync.so.1 (0x00007fad32cc5000)
    libxshmfence.so.1 => /lib64/libxshmfence.so.1 (0x00007fad32ac2000)
    libgbm.so.1 => /lib64/libgbm.so.1 (0x00007fad328b5000)
    libdrm.so.2 => /lib64/libdrm.so.2 (0x00007fad326a6000)
    libglapi.so.0 => /lib64/libglapi.so.0 (0x00007fad32476000)
    libxcb-glx.so.0 => /lib64/libxcb-glx.so.0 (0x00007fad3225b000)
    libXxf86vm.so.1 => /lib64/libXxf86vm.so.1 (0x00007fad32055000)
    libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fad31e15000)
    libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fad31c10000)

依存関係を解消するためには、不足しているファイルをyumからインストールしてもだめで、ファイルが含まれるパッケージをインストールしてあげる必要があります。

不足しているライブラリがどのパッケージに入っているか調べる

not foundになっているライブラリはパッケージの添付ファイルとして提供されるようです。yum whatprovidesコマンドで不足しているライブラリがどのパッケージに入っているかを調べます。

$ yum whatprovides */libgtk-x11-2.0.so.0
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
extras/7/x86_64/filelists_db                             | 494 kB     00:00     
mongodb-org-3.4/7/filelists_db                           | 6.4 kB     00:00     
updates/7/x86_64/filelists_db                            | 2.1 MB     00:01     
gtk2-2.24.31-1.el7.i686 : The GIMP ToolKit (GTK+), a library for creating GUIs
                        : for X
リポジトリー        : base
一致          :
ファイル名    : /usr/lib/libgtk-x11-2.0.so.0



gtk2-2.24.31-1.el7.x86_64 : The GIMP ToolKit (GTK+), a library for creating GUIs
                          : for X
リポジトリー        : base
一致          :
ファイル名    : /usr/lib64/libgtk-x11-2.0.so.0



gtk2-2.24.31-1.el7.i686 : The GIMP ToolKit (GTK+), a library for creating GUIs
                        : for X
リポジトリー        : @base
一致          :
ファイル名    : /usr/lib/libgtk-x11-2.0.so.0

libgtk-x11-2.0.so.0ファイルはgtk2というパッケージに含まれるようです。インストールして再度依存関係を調べます。

$ sudo yum install -y gtk2

...
完了しました!
[vagrant@localhost electron1]$ ldd /vagrant/electron1/node_modules/electron/dist/electron
    linux-vdso.so.1 =>  (0x00007ffd15b88000)
    libnode.so => /vagrant/electron1/node_modules/electron/dist/libnode.so (0x00007f87aaf2b000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87aad03000)
    libgtk-x11-2.0.so.0 => /lib64/libgtk-x11-2.0.so.0 (0x00007f87aa681000)
    libgdk-x11-2.0.so.0 => /lib64/libgdk-x11-2.0.so.0 (0x00007f87aa3c0000)
    libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x00007f87aa1b2000)
    libatk-1.0.so.0 => /lib64/libatk-1.0.so.0 (0x00007f87a9f8c000)
    libcairo.so.2 => /lib64/libcairo.so.2 (0x00007f87a9c64000)
    libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x00007f87a9a3b000)
    libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007f87a96a7000)
    libpango-1.0.so.0 => /lib64/libpango-1.0.so.0 (0x00007f87a945c000)
    libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007f87a920b000)
    libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f87a8f65000)
    libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007f87a8d28000)
    libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f87a8adf000)
    libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007f87a88dd000)
    libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f87a86b5000)
    libXi.so.6 => /lib64/libXi.so.6 (0x00007f87a84a4000)
    libXcursor.so.1 => /lib64/libXcursor.so.1 (0x00007f87a8299000)
    libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007f87a8096000)
    libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007f87a7e8a000)
    libXcomposite.so.1 => /lib64/libXcomposite.so.1 (0x00007f87a7c87000)
    libXext.so.6 => /lib64/libXext.so.6 (0x00007f87a7a75000)
    libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007f87a786e000)
    libXrender.so.1 => /lib64/libXrender.so.1 (0x00007f87a7663000)
    libX11.so.6 => /lib64/libX11.so.6 (0x00007f87a7325000)
    libXtst.so.6 => not found
    libXss.so.1 => not found
    libgconf-2.so.4 => not found
    libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007f87a711f000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f87a6f17000)
    libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f87a6c05000)
    libnss3.so => /lib64/libnss3.so (0x00007f87a68da000)
    libnssutil3.so => /lib64/libnssutil3.so (0x00007f87a66ad000)
    libsmime3.so => /lib64/libsmime3.so (0x00007f87a6486000)
    libnspr4.so => /lib64/libnspr4.so (0x00007f87a6247000)
    libffmpeg.so => /vagrant/electron1/node_modules/electron/dist/libffmpeg.so (0x00007f87a5ba8000)
    libasound.so.2 => not found
    libcups.so.2 => /lib64/libcups.so.2 (0x00007f87a593e000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f87a573a000)
    libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f87a5510000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f87a5207000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f87a4f05000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f87a4cef000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f87a492b000)
    /lib64/ld-linux-x86-64.so.2 (0x0000560f98cd3000)
    libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x00007f87a4715000)
    libXinerama.so.1 => /lib64/libXinerama.so.1 (0x00007f87a4511000)
    libthai.so.0 => /lib64/libthai.so.0 (0x00007f87a4305000)
    libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007f87a4103000)
    libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007f87a3e9f000)
    libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007f87a3bf6000)
    libEGL.so.1 => /lib64/libEGL.so.1 (0x00007f87a39c9000)
    libpng15.so.15 => /lib64/libpng15.so.15 (0x00007f87a379d000)
    libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007f87a3599000)
    libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007f87a338b000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f87a3174000)
    libGL.so.1 => /lib64/libGL.so.1 (0x00007f87a2f02000)
    libffi.so.6 => /lib64/libffi.so.6 (0x00007f87a2cf9000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87a2a97000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87a2870000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f87a2656000)
    libmount.so.1 => /lib64/libmount.so.1 (0x00007f87a2414000)
    libXau.so.6 => /lib64/libXau.so.6 (0x00007f87a2210000)
    libplc4.so => /lib64/libplc4.so (0x00007f87a200a000)
    libplds4.so => /lib64/libplds4.so (0x00007f87a1e06000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f87a1bb8000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f87a18d0000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f87a169d000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f87a1498000)
    libssl.so.10 => /lib64/libssl.so.10 (0x00007f87a1226000)
    libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f87a0dc5000)
    libavahi-common.so.3 => /lib64/libavahi-common.so.3 (0x00007f87a0bb7000)
    libavahi-client.so.3 => /lib64/libavahi-client.so.3 (0x00007f87a09a6000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f87a076f000)
    libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f87a0540000)
    libxcb-dri2.so.0 => /lib64/libxcb-dri2.so.0 (0x00007f87a033b000)
    libxcb-xfixes.so.0 => /lib64/libxcb-xfixes.so.0 (0x00007f87a0132000)
    libxcb-dri3.so.0 => /lib64/libxcb-dri3.so.0 (0x00007f879ff2f000)
    libxcb-present.so.0 => /lib64/libxcb-present.so.0 (0x00007f879fd2c000)
    libxcb-sync.so.1 => /lib64/libxcb-sync.so.1 (0x00007f879fb24000)
    libxshmfence.so.1 => /lib64/libxshmfence.so.1 (0x00007f879f921000)
    libgbm.so.1 => /lib64/libgbm.so.1 (0x00007f879f715000)
    libdrm.so.2 => /lib64/libdrm.so.2 (0x00007f879f505000)
    libglapi.so.0 => /lib64/libglapi.so.0 (0x00007f879f2d6000)
    libxcb-glx.so.0 => /lib64/libxcb-glx.so.0 (0x00007f879f0ba000)
    libXxf86vm.so.1 => /lib64/libXxf86vm.so.1 (0x00007f879eeb4000)
    libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f879ec74000)
    libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f879ea6f000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f879e861000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f879e65c000)
    libfreebl3.so => /lib64/libfreebl3.so (0x00007f879e459000)

6個分のnot foundが解消されました。1個のパッケージを入れることで、複数ファイルが入ることもあるようです。同じようにして残りもやってみます。

$ yum whatprovides */libXtst.so.6
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
libXtst-1.2.3-1.el7.i686 : X.Org X11 libXtst runtime library
リポジトリー        : base
一致          :
ファイル名    : /usr/lib/libXtst.so.6



libXtst-1.2.3-1.el7.x86_64 : X.Org X11 libXtst runtime library
リポジトリー        : base
一致          :
ファイル名    : /usr/lib64/libXtst.so.6



libXtst-1.2.3-1.el7.i686 : X.Org X11 libXtst runtime library
リポジトリー        : @base
一致          :
ファイル名    : /usr/lib/libXtst.so.6

libXtst.so.6ファイルはlibXtstパッケージに含まれるようです。

$ sudo yum install -y libXtst

...
完了しました!
$ ldd /vagrant/electron1/node_modules/electron/dist/electron
    linux-vdso.so.1 =>  (0x00007ffebcb4b000)
    libnode.so => /vagrant/electron1/node_modules/electron/dist/libnode.so (0x00007efeb127c000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007efeb1054000)
    libgtk-x11-2.0.so.0 => /lib64/libgtk-x11-2.0.so.0 (0x00007efeb09d2000)
    libgdk-x11-2.0.so.0 => /lib64/libgdk-x11-2.0.so.0 (0x00007efeb0711000)
    libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x00007efeb0503000)
    libatk-1.0.so.0 => /lib64/libatk-1.0.so.0 (0x00007efeb02dd000)
    libcairo.so.2 => /lib64/libcairo.so.2 (0x00007efeaffb5000)
    libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x00007efeafd8c000)
    libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007efeaf9f8000)
    libpango-1.0.so.0 => /lib64/libpango-1.0.so.0 (0x00007efeaf7ad000)
    libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007efeaf55c000)
    libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007efeaf2b6000)
    libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007efeaf079000)
    libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007efeaee30000)
    libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007efeaec2e000)
    libxcb.so.1 => /lib64/libxcb.so.1 (0x00007efeaea06000)
    libXi.so.6 => /lib64/libXi.so.6 (0x00007efeae7f5000)
    libXcursor.so.1 => /lib64/libXcursor.so.1 (0x00007efeae5ea000)
    libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007efeae3e7000)
    libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007efeae1db000)
    libXcomposite.so.1 => /lib64/libXcomposite.so.1 (0x00007efeadfd8000)
    libXext.so.6 => /lib64/libXext.so.6 (0x00007efeaddc6000)
    libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007efeadbbf000)
    libXrender.so.1 => /lib64/libXrender.so.1 (0x00007efead9b4000)
    libX11.so.6 => /lib64/libX11.so.6 (0x00007efead676000)
    libXtst.so.6 => /lib64/libXtst.so.6 (0x00007efead46f000)
    libXss.so.1 => not found
    libgconf-2.so.4 => not found
    libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007efead26a000)
    librt.so.1 => /lib64/librt.so.1 (0x00007efead062000)
    libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007efeacd50000)
    libnss3.so => /lib64/libnss3.so (0x00007efeaca25000)
    libnssutil3.so => /lib64/libnssutil3.so (0x00007efeac7f8000)
    libsmime3.so => /lib64/libsmime3.so (0x00007efeac5d1000)
    libnspr4.so => /lib64/libnspr4.so (0x00007efeac392000)
    libffmpeg.so => /vagrant/electron1/node_modules/electron/dist/libffmpeg.so (0x00007efeabcf3000)
    libasound.so.2 => not found
    libcups.so.2 => /lib64/libcups.so.2 (0x00007efeaba89000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007efeab885000)
    libexpat.so.1 => /lib64/libexpat.so.1 (0x00007efeab65b000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007efeab352000)
    libm.so.6 => /lib64/libm.so.6 (0x00007efeab050000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007efeaae3a000)
    libc.so.6 => /lib64/libc.so.6 (0x00007efeaaa76000)
    /lib64/ld-linux-x86-64.so.2 (0x000055b0dcb25000)
    libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x00007efeaa860000)
    libXinerama.so.1 => /lib64/libXinerama.so.1 (0x00007efeaa65c000)
    libthai.so.0 => /lib64/libthai.so.0 (0x00007efeaa450000)
    libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007efeaa24e000)
    libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007efea9fea000)
    libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007efea9d41000)
    libEGL.so.1 => /lib64/libEGL.so.1 (0x00007efea9b14000)
    libpng15.so.15 => /lib64/libpng15.so.15 (0x00007efea98e8000)
    libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007efea96e4000)
    libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007efea94d6000)
    libz.so.1 => /lib64/libz.so.1 (0x00007efea92bf000)
    libGL.so.1 => /lib64/libGL.so.1 (0x00007efea904d000)
    libffi.so.6 => /lib64/libffi.so.6 (0x00007efea8e44000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007efea8be2000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007efea89bb000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007efea87a1000)
    libmount.so.1 => /lib64/libmount.so.1 (0x00007efea855f000)
    libXau.so.6 => /lib64/libXau.so.6 (0x00007efea835b000)
    libplc4.so => /lib64/libplc4.so (0x00007efea8155000)
    libplds4.so => /lib64/libplds4.so (0x00007efea7f51000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007efea7d03000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007efea7a1b000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007efea77e8000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007efea75e3000)
    libssl.so.10 => /lib64/libssl.so.10 (0x00007efea7371000)
    libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007efea6f10000)
    libavahi-common.so.3 => /lib64/libavahi-common.so.3 (0x00007efea6d02000)
    libavahi-client.so.3 => /lib64/libavahi-client.so.3 (0x00007efea6af1000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007efea68ba000)
    libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007efea668b000)
    libxcb-dri2.so.0 => /lib64/libxcb-dri2.so.0 (0x00007efea6486000)
    libxcb-xfixes.so.0 => /lib64/libxcb-xfixes.so.0 (0x00007efea627d000)
    libxcb-dri3.so.0 => /lib64/libxcb-dri3.so.0 (0x00007efea607a000)
    libxcb-present.so.0 => /lib64/libxcb-present.so.0 (0x00007efea5e77000)
    libxcb-sync.so.1 => /lib64/libxcb-sync.so.1 (0x00007efea5c6f000)
    libxshmfence.so.1 => /lib64/libxshmfence.so.1 (0x00007efea5a6c000)
    libgbm.so.1 => /lib64/libgbm.so.1 (0x00007efea5860000)
    libdrm.so.2 => /lib64/libdrm.so.2 (0x00007efea5650000)
    libglapi.so.0 => /lib64/libglapi.so.0 (0x00007efea5421000)
    libxcb-glx.so.0 => /lib64/libxcb-glx.so.0 (0x00007efea5205000)
    libXxf86vm.so.1 => /lib64/libXxf86vm.so.1 (0x00007efea4fff000)
    libblkid.so.1 => /lib64/libblkid.so.1 (0x00007efea4dbf000)
    libuuid.so.1 => /lib64/libuuid.so.1 (0x00007efea4bba000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007efea49ac000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007efea47a7000)
    libfreebl3.so => /lib64/libfreebl3.so (0x00007efea45a4000)

1個分解消されました。残り3つが含まれるパッケージを調べると、libXScrnSaverGConf2alsa-libと分かったので、これらをインストールして依存関係の不足が解消されたか調べます。

$ sudo yum install -y libXScrnSaver GConf2 alsa-lib

...
完了しました!
$ ldd /vagrant/electron1/node_modules/electron/dist/electron
    linux-vdso.so.1 =>  (0x00007ffec5571000)
    libnode.so => /vagrant/electron1/node_modules/electron/dist/libnode.so (0x00007f5cbb08e000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5cbae66000)
    libgtk-x11-2.0.so.0 => /lib64/libgtk-x11-2.0.so.0 (0x00007f5cba7e4000)
    libgdk-x11-2.0.so.0 => /lib64/libgdk-x11-2.0.so.0 (0x00007f5cba523000)
    libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x00007f5cba315000)
    libatk-1.0.so.0 => /lib64/libatk-1.0.so.0 (0x00007f5cba0ef000)
    libcairo.so.2 => /lib64/libcairo.so.2 (0x00007f5cb9dc7000)
    libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x00007f5cb9b9e000)
    libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007f5cb980a000)
    libpango-1.0.so.0 => /lib64/libpango-1.0.so.0 (0x00007f5cb95bf000)
    libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007f5cb936e000)
    libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f5cb90c8000)
    libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007f5cb8e8b000)
    libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f5cb8c42000)
    libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007f5cb8a40000)
    libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f5cb8818000)
    libXi.so.6 => /lib64/libXi.so.6 (0x00007f5cb8607000)
    libXcursor.so.1 => /lib64/libXcursor.so.1 (0x00007f5cb83fc000)
    libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007f5cb81f9000)
    libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007f5cb7fed000)
    libXcomposite.so.1 => /lib64/libXcomposite.so.1 (0x00007f5cb7dea000)
    libXext.so.6 => /lib64/libXext.so.6 (0x00007f5cb7bd8000)
    libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007f5cb79d1000)
    libXrender.so.1 => /lib64/libXrender.so.1 (0x00007f5cb77c6000)
    libX11.so.6 => /lib64/libX11.so.6 (0x00007f5cb7488000)
    libXtst.so.6 => /lib64/libXtst.so.6 (0x00007f5cb7281000)
    libXss.so.1 => /lib64/libXss.so.1 (0x00007f5cb707d000)
    libgconf-2.so.4 => /lib64/libgconf-2.so.4 (0x00007f5cb6e4c000)
    libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007f5cb6c47000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f5cb6a3f000)
    libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f5cb672d000)
    libnss3.so => /lib64/libnss3.so (0x00007f5cb6402000)
    libnssutil3.so => /lib64/libnssutil3.so (0x00007f5cb61d5000)
    libsmime3.so => /lib64/libsmime3.so (0x00007f5cb5fae000)
    libnspr4.so => /lib64/libnspr4.so (0x00007f5cb5d6f000)
    libffmpeg.so => /vagrant/electron1/node_modules/electron/dist/libffmpeg.so (0x00007f5cb56d0000)
    libasound.so.2 => /lib64/libasound.so.2 (0x00007f5cb53d2000)
    libcups.so.2 => /lib64/libcups.so.2 (0x00007f5cb5168000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f5cb4f64000)
    libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f5cb4d3a000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f5cb4a31000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f5cb472f000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f5cb4519000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f5cb4155000)
    /lib64/ld-linux-x86-64.so.2 (0x000055efdb1b2000)
    libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x00007f5cb3f3f000)
    libXinerama.so.1 => /lib64/libXinerama.so.1 (0x00007f5cb3d3b000)
    libthai.so.0 => /lib64/libthai.so.0 (0x00007f5cb3b2f000)
    libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00007f5cb392d000)
    libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007f5cb36c9000)
    libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007f5cb3420000)
    libEGL.so.1 => /lib64/libEGL.so.1 (0x00007f5cb31f3000)
    libpng15.so.15 => /lib64/libpng15.so.15 (0x00007f5cb2fc7000)
    libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007f5cb2dc3000)
    libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007f5cb2bb5000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f5cb299e000)
    libGL.so.1 => /lib64/libGL.so.1 (0x00007f5cb272c000)
    libffi.so.6 => /lib64/libffi.so.6 (0x00007f5cb2523000)
    libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f5cb22c1000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f5cb209a000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f5cb1e80000)
    libmount.so.1 => /lib64/libmount.so.1 (0x00007f5cb1c3e000)
    libXau.so.6 => /lib64/libXau.so.6 (0x00007f5cb1a3a000)
    libdbus-glib-1.so.2 => /lib64/libdbus-glib-1.so.2 (0x00007f5cb1811000)
    libplc4.so => /lib64/libplc4.so (0x00007f5cb160c000)
    libplds4.so => /lib64/libplds4.so (0x00007f5cb1408000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f5cb11ba000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f5cb0ed2000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f5cb0c9e000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f5cb0a9a000)
    libssl.so.10 => /lib64/libssl.so.10 (0x00007f5cb0828000)
    libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f5cb03c6000)
    libavahi-common.so.3 => /lib64/libavahi-common.so.3 (0x00007f5cb01b9000)
    libavahi-client.so.3 => /lib64/libavahi-client.so.3 (0x00007f5caffa8000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f5cafd70000)
    libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f5cafb42000)
    libxcb-dri2.so.0 => /lib64/libxcb-dri2.so.0 (0x00007f5caf93c000)
    libxcb-xfixes.so.0 => /lib64/libxcb-xfixes.so.0 (0x00007f5caf734000)
    libxcb-dri3.so.0 => /lib64/libxcb-dri3.so.0 (0x00007f5caf531000)
    libxcb-present.so.0 => /lib64/libxcb-present.so.0 (0x00007f5caf32d000)
    libxcb-sync.so.1 => /lib64/libxcb-sync.so.1 (0x00007f5caf126000)
    libxshmfence.so.1 => /lib64/libxshmfence.so.1 (0x00007f5caef23000)
    libgbm.so.1 => /lib64/libgbm.so.1 (0x00007f5caed16000)
    libdrm.so.2 => /lib64/libdrm.so.2 (0x00007f5caeb07000)
    libglapi.so.0 => /lib64/libglapi.so.0 (0x00007f5cae8d7000)
    libxcb-glx.so.0 => /lib64/libxcb-glx.so.0 (0x00007f5cae6bc000)
    libXxf86vm.so.1 => /lib64/libXxf86vm.so.1 (0x00007f5cae4b6000)
    libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f5cae276000)
    libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f5cae071000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f5cade62000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f5cadc5e000)
    libfreebl3.so => /lib64/libfreebl3.so (0x00007f5cada5a000)

not foundがなくなりました。不足しているライブラリは無いようなので、electronを実行してみます。

$ npm run start

> electron1@1.0.0 start /vagrant/electron1
> electron .

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! electron1@1.0.0 start: `electron .`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the electron1@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vagrant/.npm/_logs/2017-11-24T03_00_57_794Z-debug.log

今まで出ていたエラーは解消されたようですが、別のエラーが起きています。Electronはまだ実行できていません。

まとめ

実行ファイルの依存関係が不足しているというエラーが発生したときは

  • ldd 実行ファイル名not foundになっているファイルを探す
  • yum whatprovides */not foundになったファイル名not foundになっているコマンドが含まれるパッケージを探す(見つかったファイルを直接yum installしてもだめ)
  • sudo yum install -y 見つけたパッケージ名コマンドで不足している依存関係を解消する
  • ldd 実行ファイル名で解消されたかを確かめる

これの繰り返しで依存関係の不足が解消されるはず。という内容でした。

27
33
0

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
27
33