为什么我的 32 位 OpenGL 库指向 mesa 而不是 nvidia,我该如何修复它?

Hub*_*bro 5 nvidia steam drivers 13.04

我已经在我的 Ubuntu 13 系统上安装了 Nvidia 的驱动程序,但是根据这个命令(ldconfig -p | grep GL):

$ ldconfig -p | grep GL
    libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
    libGLU.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLU.so.1
    libGLEWmx.so.1.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.8
    libGLEW.so.1.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLEW.so.1.8
    libGLESv2.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so
    libEGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1
Run Code Online (Sandbox Code Playgroud)

OpenGL 的 32 位版本指向 mesa 的库而不是 nvidia。这会导致我的 Steam 游戏拒绝启动并出现错误:

找不到所需的 OpenGL 入口点“glGetError”!您的显卡不受支持,或者您的 OpenGL 驱动程序需要更新。

为什么会这样呢?当 nvidia 安装程序询问我是否要安装“32 位兼容性库”(或类似的东西)时,我选择了“是”。我该如何解决?


编辑:

我刚刚重新安装了相同的 Nvidia 驱动程序,这显然完全删除了 32 位 OpenGL 驱动程序:

$ ldconfig -p | grep libGL.so
    libGL.so.1 (libc6,x86-64) => /usr/lib/libGL.so.1
    libGL.so (libc6,x86-64) => /usr/lib/libGL.so
Run Code Online (Sandbox Code Playgroud)

现在 Steam 无法启动:

您缺少以下 32 位库,Steam 可能无法运行:libGL.so.1

当安装程序询问我是否要安装 32 位库时,我再次选择了“是” 。为什么他们没有安装!?

Big*_*gJJ 2

选项 1:尝试sudo ldconfig在终端中运行。重新启动并尝试。

选项 2:如果这不能解决问题,您必须手动将 NVidia 库的目录 (/usr/lib32) 添加到 ldconfig 配置文件 (/etc/ld.so.conf.d/libc.conf)然后重新运行 ldconfig (当然是作为 root 运行)

编辑:我会在更改之前制作 libc.conf 的副本。