別のユーザーとして実行する必要がある Qt アプリケーションをコンパイルしました。ただし、そのユーザーとして実行すると、Qt 共有ライブラリをロードできません。
~/MyApp/src $ sudo -u otherUser ./MyApp
./MyApp: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory
ldd
asを実行するとotherUser
、次のことが期待されます。
~/MyApp/src $ sudo -u otherUser ldd ./MyApp
libQtGui.so.4 => not found
ただし、自分で実行すると、共有ライブラリは問題なくldd
見つかります。libQtGui.so.4
~/MyApp/src $ ldd ./MyApp
libQtGui.so.4 => /usr/local/Trolltech/Qt-4.8.5/lib/libQtGui.so.4 (0x00002b97a4e1a000)
libQtNetwork.so.4 => /usr/local/Trolltech/Qt-4.8.5/lib/libQtNetwork.so.4 (0x00002b97a5bf1000)
otherUser
共有ライブラリが見つからないのはなぜですか? MyApp
で実行可能にするにはどうすればよいotherUser
ですか?
私の LD_LIBRARY_PATH は両方のユーザーで空に見えます:
~/MyApp/src $ echo $LD_LIBRARY_PATH
~/MyApp/src $ sudo -u otherUser echo $LD_LIBRARY_PATH
~/MyApp/src $