无法在 14.04.03 中安装 Steam(依赖性问题?)[已更新](这也应该有助于解决 15.04 中的问题)

无法在 14.04.03 中安装 Steam(依赖性问题?)[已更新](这也应该有助于解决 15.04 中的问题)

刚买了新电脑并安装了 14.04.03。

安装期间没有错误。

配有专用驱动程序的 Nvidia 显卡(geforce gts 970 - 已尝试驱动程序版本 346 和 352)

安装steam-launcher并点击安装 Steam 后,会弹出一个终端窗口,显示以下内容

Steam needs to install these additional packages: 
libgl1-mesa-dri:i386, libgl1-mesa-glx:i386, libc6:i386

输入密码后我得到以下信息”

    Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libgl1-mesa-glx:i386 : Depends: libglapi-mesa:i386 (= 10.1.3-0ubuntu0.4)
 unity-control-center : Depends: libcheese-gtk23 (>= 3.4.0) but it is not going to be installed
                        Depends: libcheese7 (>= 3.0.1) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Press return to continue: 

我发现的唯一一个与此问题相关的问题是安装 steam 的依赖问题 可接受的答案是, sudo apt-get -s install libgl1-mesa-glx-lts-utopic:i386如果测试成功,则运行它。我的测试给了我

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 gnome-session-bin : Depends: libgl1-mesa-glx or
                              libgl1
 libcheese-gtk23 : Depends: libcheese7 (>= 3.4.0) but it is not going to be installed
                   Depends: libclutter-1.0-0 (>= 1.13.2) but it is not going to be installed
                   Depends: libclutter-gtk-1.0-0 (>= 0.91.8) but it is not going to be installed
                   Depends: libcogl15 (>= 1.15.8) but it is not going to be installed
 libgl1-mesa-glx-lts-utopic:i386 : Depends: libglapi-mesa-lts-utopic:i386 (= 10.3.2-0ubuntu1~trusty2) but it is not going to be installed
                                   Depends: libgl1-mesa-dri-lts-utopic:i386 (= 10.3.2-0ubuntu1~trusty2) but it is not going to be installed
 libgnome-desktop-3-7 : Depends: libgl1-mesa-glx or
                                 libgl1
 libqt5gui5 : Depends: libgl1-mesa-glx or
                       libgl1
 libqt5multimedia5-plugins : Depends: libqgsttools-p1 (>= 5.2.1-0ubuntu5) but it is not going to be installed
 libqt5quick5 : Depends: libgl1-mesa-glx or
                         libgl1
 libwebkitgtk-3.0-0 : Depends: libgl1-mesa-glx or
                               libgl1
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

我正在使用新的图形驱动程序 ppahttps://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa那么那里的自由主义者会造成这种情况吗?

如果没有人知道如何解决这个问题,我升级电脑的原因就是为了在游戏中获得更好的性能,所以这真是一记耳光......


编辑:删除 ppa 无效。问题似乎出在libgl1-mesa-dri:i386 如果您尝试使用 安装它,apt-get您会收到上述错误unity-control-center。Synaptic 甚至找不到它们,如果您尝试使用软件中心,您会收到警告:

在此处输入图片描述


更新 #2 Steam 现在将启动,但仍会弹出终端窗口,要求安装上述三个库。如果您关闭窗口,Steam 将启动并似乎正常工作。到目前为止,我能够恢复我的游戏并启动一个。

请不要认为这个问题已经解决了。我不想每次启动时都被窗口打扰,我想知道它突然工作了,我不记得安装过任何库,只尝试手动安装上面的库。如果我不得不重新安装,我需要知道如何修复它,而不是反复尝试安装,拔掉我的头发,把头撞到桌子上,然后重复......

答案1

原始答案

我使用 Synaptic 并安装steam:i386未 steam-launcher(Synaptic 找不到)解决了该问题


按问题 OP 编辑​​以添加解释和更多信息

使用上面答案中的命令,Steam 安装顺利,但也有一些怪癖:

首先介绍一些背景知识:我最初使用软件中心的“重新安装以前购买的功能”安装了 Steam。steam-launcher 正如上面的答案所述,安装的程序无法被 Synaptic 找到。这是因为 Synaptic 只找到已经在存储库中的程序,但 Steam 启动器位于其自己的 ppa 中。软件中心可以看到“待购买”应用程序,这是 Steam 最初发布时的样子。这里的“待购买”并不一定意味着您必须花钱,此功能的作用是允许您安装仅在其自己的 ppa 中可用的应用程序。安装此功能是添加 ppa 以及程序。


由于某种原因,以上述方式安装不会从堆栈中提取库,vivid只会提取原始trusty存储库和trusty-updates存储库。这会导致我在问题中发布的冲突和依赖性错误。按照此答案进行安装可解决此问题并从中提取vivid

似乎有几种方法可以获取该软件,steam:i386一种是使用 Synaptic。另一种图形方式是软件中心点击窗口左下方的“显示[多个]技术项目“在我的测试中这也带来了这个steam:i386选项。

最后一种方法是使用终端并输入sudo apt-get install steam:i386 (请注意,由于某种原因,使用Tab按钮自动完成不起作用,您必须输入全部steam:i386内容。

使用终端进行模拟,我发现它会从vivid存储库安装库,并且没有出现任何错误。我继续安装。

如果您通过 Synaptic 检查,您会发现它引入的 Steam 版本比steam-launcher安装的版本要新,安装方式也略有不同。这些差异导致了我上面提到的怪癖。


怪癖

Steam 现在安装.steam.steam 用过的只是指向实际 Steam 安装位置的链接。也就是说:.local/share/steam 这就是我将在下面列出的怪癖的原因。

Steam 找不到位于旧位置的应用程序,因此需要重新下载所有应用程序。如果您正在拖放您之前保存的 Steam 应用程序的旧文件夹,则需要将其放入其中.steam/steam/steamapps/common(请注意,steamapps 不再大写)。appmanifest 文件仍将进入该steamapps文件夹,但不要复制, libraryfolders.vdf因为该信息将更改为新位置。如果您没有保存 appminifest 文件,这没什么大不了的;Steam 只会认为游戏未安装,但如果您将文件放在steamapps正确的位置,您只需单击 Steam 中的“安装”按钮,Steam 将开始安装,然后发现现有文件并验证它们。这仍然可以正常工作,但需要一些额外的时间,因为您必须为每个游戏执行此操作。


最后的想法:

如果您像我一样,在安装 Steam 之前尝试通过“重新安装以前的购买”功能安装 Steam(如上所述),则应删除旧的 Steam 存储库以避免冲突。只需从仪表板打开“软件和更新”,然后转到“其他软件”选项卡,单击“由软件中心安装...steam 存储库”选项,然后点击“删除”按钮。关闭窗口时,允许提示中的“刷新”,然后就可以进行安装了。

看起来,这种方式的安装只会在本地安装 Steam,而 是steam-launcher系统范围内安装的。这实际上只是一个语义问题,因为steam-launcher实际上并没有安装任何东西,而是一个可以激活所有用户安装 Steam 选项的链接。该.desktop文件是系统范围内安装的,因此其他用户只需单击图标即可安装。

不管哪种情况,Steam 本身都只安装到本地用户文件中,必须为每个用户重新安装。有一种方法可以链接到每个用户的游戏文件,这样他们就可以共享实际的游戏,而不必多次重新安装同一款游戏,但由于我从来不需要这样做,这超出了我的经验。

看起来您只需通过安装即可获得正确版本的 steam steampt-get至少在我使用后steam:i386 sudo apt-get install steam会告诉您“steam:i386 已经是最新版本”只需使用steam即可允许自动完成工作,但由于我在测试期间不确定它是否是正确的包,所以我没有冒险。

最后,这对我来说完美无缺,然而,为了解决这个问题,我添加了 1386 架构,sudo dpkg --add-architecture i386 所以如果你得到steam:i386无法找到的错误,你可能需要这样做,但我认为你不会这样做。的依赖项之一steam:i386multiarch-support,它似乎是默认预安装的,因此应该使得添加 i386 架构变得多余。


稍后编辑以包含更多信息

后来我能够直接从 Steam 安装最新的软件包,它安装得很完美,目录文件夹也安装在.local了原来的位置。这还将 Steam ppa 添加到源中,所以我应该也能更快地获得更新(只差一天左右,但是……)

我把steamapps文件夹移出了 Steam 安装,这样它就不会被覆盖,然后把文件sudo apt-get remove steam:i386 夹移到了 答案steamapps.local/share/steam是的允许覆盖文件夹,当启动 Steam 时,我登录并且游戏顺利启动。

我几乎可以肯定,我之前尝试安装时曾直接从 Steam 网站尝试过该软件包,并遇到了同样的错误。安装steam:i386正确地引入了依赖项,并且工作正常,我本可以保持原样,但它让我感到烦恼,因为它似乎“不合时宜”。因此,您可以安装steam:i386并让它轻松运行,也可以steam:i386在之后删除并直接从 Steam 安装软件包,并使目录恢复到以前的状态(大多数用户都希望如此,这样将来更容易从社区获得帮助)。

无论你选择哪一个都应该可以安装一个可用的 Steam

答案2

此答案仅供参考,以防万一接受的答案对您不起作用。请尝试接受的答案!

经过多方努力,我终于找到了几篇推荐(大部分)相同解决方案的帖子。 请注意,这有点不合时宜,但它确实有效,但以后可能会引起问题,也可能不会,我不知道

我在 2013 年的一份旧的 Steam 错误报告中找到了最可靠的答案。阅读该帖子后发现,Steam 在处理 HWE 版本方面做得并不好,并试图从非 HWE 存储库中提取库,这导致了冲突。

我实际上处理的是几个不同的问题,但它们是相关的


首先,如果你安装了 Steam,这个“漏洞”会导致Lib.so找不到文件无需专有驱动程序
如果您使用专有驱动程序(至少是 Nvidia,不确定 Radeon),他们会安装 Steam 可以找到的自己的库。如果没有封闭的驱动程序,您会收到致命错误“您缺少以下 32 位库 Steam 可能无法启动 Lib.so*”然后会出现 Steam 崩溃通知。这导致了上述混乱,一次 Steam 失败,下一次启动时

如果我理解正确的话,以下修复将解决非专有的这个问题,但我并不完全确定。__

第二个问题:

仍然与 Steam 尝试拉取旧库有关。(或者也许 Ubuntu repo 尚未更新较新的库,这对我来说不清楚)

使用封闭式驱动程序启动时,会弹出窗口,提示 Steam“需要安装以下内容……”,这是我上面发布的代码。(使用开放式驱动程序时,Steam 在“lib.so”阶段崩溃)

如果您尝试安装,您会收到我上面发布的错误,但如果您关闭窗口,Steam 将正常启动。

现在修复

我之前提到的错误报告包含一些最近的评论,这些评论引导我找到了答案相关评论从这里开始

解决方法是添加 i386 架构然后更新

sudo dpkg --add-architecture i386
sudo apt-get update

然后安装 i386 库(这些是来自可靠存储库的旧库,您可以通过命令看到)

sudo apt-get install libgl1-mesa-dri-lts-trusty:i386 libgl1-mesa-glx-lts-trusty:i386 libc6:i386

正如我上面所说,这可能是获取所需库的一种不正规的方法,但我尝试过的所有其他方法要么直接失败,要么弹出一个非常烦人的窗口,要求我安装所需的库每次我启动了 Steam。这些库可能会在以后引起问题,但似乎可以通过以下方法删除这些命令安装的所有文件:

 sudo apt-get purge  libgl1-mesa-dri-lts-trusty:i386 libgl1-mesa-glx-lts-trusty:i386 libc6:i386

然后删除最后一个文件

sudo apt-get autoremove

根据我的测试,它会将系统恢复到安装命令之前的状态。由于 14.04.03 上的大部分系统仍然是 Trusty,并且 Trusty 还会在一段时间内得到支持;我认为这些库会没问题,但是使用此修复程序需要您自担风险
值得注意的是,此修复并未删除单身的来自我的系统的文件,程序或库(您可能需要用sudo apt-get install -s-s这里的开关表示模拟)进行测试,然后检查您终端上的输出以确保它不会出现在您的终端上)。


如果有更有经验的用户知道安装这些库可能出现的任何问题,或者知道修复此问题的更快捷、更简单的方法,在评论中添加信息

相关内容