web-dev-qa-db-ja.com

Ubuntu 18.04で-lGLを提供するパッケージはどれですか?

pip3 pythonパッケージwxpythonをインストールしようとしていますが、

g++ -shared -fPIC -o /tmp/pip-build-c0hbjq4b/wxpython/build/wxbld/gtk3/lib/libwx_gtk3u_gl-3.0.so.0.4.0  gldll_glcmn.o gldll_glx11.o gldll_gtk_glcanvas.o    -L/tmp/pip-build-c0hbjq4b/wxpython/build/wxbld/gtk3/lib   -Wl,-soname,libwx_gtk3u_gl-3.0.so.0  -pthread         -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lgthread-2.0 -pthread -lglib-2.0 -lX11 -lXxf86vm -lSM -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lnotify -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lpng -lz -ljpeg -ltiff  -lwxregexu-3.0  -pthread   -Wl,--version-script,/tmp/pip-build-c0hbjq4b/wxpython/build/wxbld/gtk3/version-script -lz -ldl -lm  -lwx_gtk3u_core-3.0 -lwx_baseu-3.0  -lGL -lGLU -lz -ldl -lm
(cd /tmp/pip-build-c0hbjq4b/wxpython/build/wxbld/gtk3/lib/; rm -f libwx_gtk3u_html-3.0.so libwx_gtk3u_html-3.0.so.0; ln -s libwx_gtk3u_html-3.0.so.0.4.0 libwx_gtk3u_html-3.0.so.0; ln -s libwx_gtk3u_html-3.0.so.0 libwx_gtk3u_html-3.0.so)
(cd /tmp/pip-build-c0hbjq4b/wxpython/build/wxbld/gtk3/lib/; rm -f libwx_gtk3u_stc-3.0.so libwx_gtk3u_stc-3.0.so.0; ln -s libwx_gtk3u_stc-3.0.so.0.4.0 libwx_gtk3u_stc-3.0.so.0; ln -s libwx_gtk3u_stc-3.0.so.0 libwx_gtk3u_stc-3.0.so)
(cd /tmp/pip-build-c0hbjq4b/wxpython/build/wxbld/gtk3/lib/; rm -f libwx_gtk3u_webview-3.0.so libwx_gtk3u_webview-3.0.so.0; ln -s libwx_gtk3u_webview-3.0.so.0.4.0 libwx_gtk3u_webview-3.0.so.0; ln -s libwx_gtk3u_webview-3.0.so.0 libwx_gtk3u_webview-3.0.so)
/usr/bin/x86_64-linux-gnu-ld: -lGL kann nicht gefunden werden
collect2: error: ld returned 1 exit status
Makefile:16113: recipe for target '/tmp/pip-build-c0hbjq4b/wxpython/build/wxbld/gtk3/lib/libwx_gtk3u_gl-3.0.so.0.4.0' failed
make: *** [/tmp/pip-build-c0hbjq4b/wxpython/build/wxbld/gtk3/lib/libwx_gtk3u_gl-3.0.so.0.4.0] Error 1
make: *** Auf noch nicht beendete Prozesse wird gewartet …
(cd /tmp/pip-build-c0hbjq4b/wxpython/build/wxbld/gtk3/lib/; rm -f libwx_gtk3u_adv-3.0.so libwx_gtk3u_adv-3.0.so.0; ln -s libwx_gtk3u_adv-3.0.so.0.4.0 libwx_gtk3u_adv-3.0.so.0; ln -s libwx_gtk3u_adv-3.0.so.0 libwx_gtk3u_adv-3.0.so)
g++ -o wxrc wxrc_wxrc.o    -L/tmp/pip-build-c0hbjq4b/wxpython/build/wxbld/gtk3/lib  -pthread     -lwx_baseu_xml-3.0 -lexpat -lwx_baseu-3.0     -lwxregexu-3.0  -pthread   -Wl,--version-script,/tmp/pip-build-c0hbjq4b/wxpython/build/wxbld/gtk3/version-script -lz -ldl -lm  -lz -ldl -lm
make[1]: Verzeichnis „/tmp/pip-build-c0hbjq4b/wxpython/build/wxbld/gtk3/utils/wxrc“ wird verlassen
Error building
ERROR: failed building wxWidgets
Traceback (most recent call last):
  File "build.py", line 1295, in cmd_build_wx
    wxbuild.main(wxDir(), build_options)
  File "/tmp/pip-build-c0hbjq4b/wxpython/buildtools/build_wxwidgets.py", line 498, in main
    exitIfError(wxBuilder.build(dir=buildDir, options=args), "Error building")
  File "/tmp/pip-build-c0hbjq4b/wxpython/buildtools/build_wxwidgets.py", line 85, in exitIfError
    raise builder.BuildError(msg)
buildtools.builder.BuildError: Error building
Finished command: build_wx (3m27.477s)
Finished command: build (3m27.478s)
Command '"/usr/bin/python3" -u build.py build' failed with exit code 1.

----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-c0hbjq4b/wxpython/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-dt7af70p-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-c0hbjq4b/wxpython/

libgl-devは、既にインストールされているlibgl1-mesa-devと、libglw1-mesa-devのオートコンプリートに基づいて、他の唯一の候補と思われるSudo apt-get install libglを指します。

Python 2.xのpipを使用したインストールは成功します。

1
Karl Richter

これはかなり2つの質問です。私が文字通りあなたの質問に答えるなら、アプローチはあなたが探しているファイルを含むパッケージを検索するためにapt-fileを使用するでしょう:

$ apt-file search libGL.so
libgl1: /usr/lib/x86_64-linux-gnu/libGL.so.1
libgl1: /usr/lib/x86_64-linux-gnu/libGL.so.1.0.0
libglvnd-dev: /usr/lib/x86_64-linux-gnu/libGL.so
nvidia-340: /usr/lib/i386-linux-gnu/libGL.so
nvidia-340: /usr/lib/i386-linux-gnu/libGL.so.1
nvidia-340: /usr/lib/i386-linux-gnu/libGL.so.340.106
nvidia-340: /usr/lib/x86_64-linux-gnu/libGL.so
nvidia-340: /usr/lib/x86_64-linux-gnu/libGL.so.1
nvidia-340: /usr/lib/x86_64-linux-gnu/libGL.so.340.106
primus-libs: /usr/lib/x86_64-linux-gnu/primus/libGL.so.1
virtualbox-guest-x11: /usr/lib/virtualbox/additions/libGL.so
virtualbox-guest-x11: /usr/lib/virtualbox/additions/libGL.so.1
virtualbox-guest-x11-hwe: /usr/lib/virtualbox/additions/libGL.so
virtualbox-guest-x11-hwe: /usr/lib/virtualbox/additions/libGL.so.1

Apt-fileをインストールしていない場合は、まずapt-fileをインストールして、データベースを初期化します:

$ Sudo apt install apt-file
$ Sudo apt-file update

リンカがインストールされたライブラリを実際に見つけることができるかどうかを確認するには、これを実行します:

$ ldconfig -p | grep libGL.so
libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so.1
libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/libGL.so.1
libGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so

なぜpip3を使用したwxPythonビルドがそれらのいずれも拾わないのかについては、答えられない質問です。

1
Sebastian Stark

同じ問題がありました。 aptはlibgl1-mesa-devがすでにインストールされていると言いましたが、/var/cache/aptにパッケージが見つかりませんでした。

これは助けました:

Sudo apt-get remove --purge libgl1-mesa-dev

(この後、Sudo apt autoremoveを作成しないでください。)

Sudo apt-get install libgl1-mesa-dev

このコンパイルが機能した後。

0
Martin