安装 Wine 时软件包损坏

安装 Wine 时软件包损坏

我有 Ubuntu 14.04 LTS(64 位),但无法安装 Wine。我得到的只是破坏的依赖关系。

我已经在心里尝试了一切...

sudo apt-get update  && upgrade  and even with dist-upgrade
sudo apt-get autoclean
sudo apt-get install -f
sudo dpkg --configure -a

在发现任何损坏的内容后,我检查了 dpkg 状态文件 ( /var/lib/dpkg/status/),但没有发现任何东西。

该怎么办?

Q4wine 可以工作,但是 wine 不行?

当我尝试安装 wine 时,会发生这种情况:

sudo apt-get install wine

[我的文字是瑞典语...]
基本上说;依赖于 wine1.6


当我尝试安装 wine1.6 时;sudo apt-get install wine1.6 ...依赖于 wine1.6-i386


当我尝试安装 wine1.6-386 时;sudo apt-get install wine1.6-i386


... wine1.6-i386:i386 : Beroende av: libglu1-mesa:i386 men det kommer inte att installeras eller
                                  libglu1:i386
                     Beroende av: libgphoto2-6:i386 (>= 2.5.2) men det kommer inte att installeras
                     Beroende av: libgphoto2-port10:i386 (>= 2.5.2) men det kommer inte att installeras
                     Beroende av: liblcms2-2:i386 (>= 2.2+git20110628) men det kommer inte att installeras
                     Rekommenderar: libsane:i386 men det kommer inte att installeras

我按照下面的建议添加了对 i386 架构的支持,但它并没有改变或提供任何东西。

但是当我尝试使用 aptitude 而不是 apt-get 时,时间稍微长了一点:

我有很多修复依赖项问题的选项,问题为 y/n/q。但是当回答 y 时,它不会开始安装,只会返回提示信息“未安装任何内容”。


这是我得到的输出;

cai@caiThink:~$ sudo aptitude install wine

[sudo] cai 的密码:

将安装以下新软件包:fonts-horai-umefont{a} libasn1-8-heimdal:i386{a} libasound2:i386{a} libasound2-plugins:i386{a} libasyncns0:i386{a} libavahi-client3:i386{a} libavahi-common-data:i386{a} libavahi-common3:i386{a} libcapi20-3{a} libcapi20-3:i386{a} libcgmanager0:i386{ab} libcups2:i386{a} libdrm-intel1:i386{a} libdrm-nouveau2:i386{a} libdrm-radeon1:i386{a} libelf1:i386{a} libexif12:i386{a} libexpat1:i386{a} libffi6:i386{a} libflac8:i386{a} libfontconfig1:i386{a} libfreetype6:i386{a} libgcrypt11:i386{a} libgd3:i386{a} libgif4:i386{a} libgl1-mesa-dri:i386{a} libgl1-mesa-glx:i386{a} libglapi-mesa:i386{a} libglib2.0-0:i386{a} libglu1-mesa:i386{a} libgnutls26:i386{a} libgpg-error0:i386{a} libgphoto2-6:i386{a} libgphoto2-port10:i386{a} libgssapi-krb5-2:i386{a} libgssapi3-heimdal:i386{a} libgstreamer-plugins-base0.10-0:i386{a} libgstreamer0.10-0:i386{a} libhcrypto4-heimdal:i386{a} libheimbase1-heimdal:i386{a} libheimntlm0-heimdal:i386{a} libhx509-5-heimdal:i386{a} libice6:i386{a} libieee1284-3:i386{a} libjack-jackd2-0:i386{a} libjbig0:i386{a} libjpeg-turbo8:i386{a} libjpeg8:i386{a} libk5crypto3:i386{a} libkeyutils1:i386{a} libkrb5-26-heimdal:i386{a} libkrb5-3:i386{a} libkrb5support0:i386{a} liblcms2-2:i386{ab} libldap-2.4-2:i386{a} libllvm3.4:i386{a} libltdl7:i386{a} libmpg123-0:i386{a} libogg0:i386{a} libopenal1:i386{a} liborc-0.4-0:i386{a} libosmesa6:i386{a} libp11-kit-gnome-keyring:i386{a} libp11-kit0:i386{a} libpciaccess0:i386{a} libpulse0:i386{a} libroken18-heimdal:i386{a} libsamplerate0:i386{a} libsane:i386{a} libsasl2-2:i386{a} libsasl2-modules:i386{a} libsasl2-modules-db:i386{a} libsm6:i386{a} libsndfile1:i386{a} libspeexdsp1:i386{a} libsqlite3-0:i386{a} libssl1.0.0:i386{a} libtasn1-6:i386{a} libtiff5:i386{a} libtxc-dxtn-s2tc0:i386{a} libudev1:i386{a} libusb-1.0-0:i386{a} libv4l-0:i386{a} libv4lconvert0:i386{a} libvorbis0a:i386{a} libvorbisenc2:i386{a} libvpx1:i386{a} libwind0-heimdal:i386{a} libwrap0:i386{a} libx11-6:i386{a} libx11-xcb1:i386{a} libxau6:i386{a} libxcb-dri2-0:i386{a} libxcb-dri3-0:i386{a} libxcb-glx0:i386{a} libxcb-present0:i386{a} libxcb-sync1:i386{a} libxcb1:i386{a} libxcomposite1:i386{a} libxcursor1:i386{a} libxdamage1:i386{a} libxdmcp6:i386{a} libxext6:i386{a} libxfixes3:i386{a} libxi6:i386{a} libxinerama1:i386{a} libxml2:i386{a} libxpm4:i386{a} libxrandr2:i386{a} libxrender1:i386{a} libxshmfence1:i386{a} libxslt1.1:i386{a} libxt6:i386{a} libxxf86vm1:i386{a} ocl-icd-libopencl1:i386{a} p11-kit-modules:i386{a} p7zip{a} unixodbc{a} wine wine-gecko2.21{a} wine-gecko2.21:i386{a} wine-mono0.0.8{a} wine1.6{a} wine1.6-amd64{a} wine1.6-i386:i386{a} winetricks{a}

升级了 0 个软件包,新安装了 126 个软件包,删除了 0 个软件包,未升级 0 个软件包。需要获取 155 MB 的档案。解压后将使用 546 MB。以下软件包具有未满足的依赖关系:

liblcms2-2:中断:liblcms2-2:i386(!= 2.6-3ubuntu1~trusty1)但需要安装 2.5-0ubuntu4。liblcms2-2:i386:中断:liblcms2-2(!= 2.5-0ubuntu4)但已安装 2.6-3ubuntu1~trusty1。libcgmanager0:中断:libcgmanager0:i386(!= 0.39-2ubuntu2~ubuntu14.04.1)但需要安装 0.24-0ubuntu7.5。libcgmanager0:i386:中断:libcgmanager0(!= 0.24-0ubuntu7.5)但已安装 0.39-2ubuntu2~ubuntu14.04.1。以下操作将解决这些依赖关系: 保留以下软件包的当前版本: 1) libcgmanager0:i386 [未安装]
2) libgl1-mesa-glx:i386 [未安装]
3) libglu1-mesa:i386 [未安装]
4) libgphoto2-6:i386 [未安装]
5) libgphoto2-port10:i386 [未安装]
6) liblcms2-2:i386 [未安装]
7) libsane:i386 [未安装]
8) libudev1:i386 [未安装]
9) libusb-1.0-0:i386 [未安装]
10) wine [未安装]
11) wine1.6 [未安装]
12) wine1.6-amd64 [未安装]
13) wine1.6-i386:i386 [未安装]
保留以下依赖项未解决:
14) winetricks 推荐 wine

接受这个解决方案吗?[Y/n/q/?] y

不会安装、升级或删除任何软件包。升级了 0 个软件包,新安装了 0 个软件包,要删除 0 个软件包,未升级 0 个软件包。需要获取 0 B 档案。解压后将使用 0 B。

答案1

看来您必须添加对 i386 架构的支持才能使其正常工作。

尝试运行:

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

答案2

Wine 不能像大多数其他应用程序一样直接通过 sudo apt-get install 安装。它需要外部存储库(这是一种极其复杂且适得其反的做法……但好吧……您可以避免手动安装 Wine,我将在下面描述……)

在 Debian/Ubuntu 系统存储库中安装比最新版本更旧或不同的 Wine 版本是一件非常麻烦的事。

计划 B:如果可能的话,考虑转到 Manjaro。为什么?因为 Manjaro 版本的 Wine 软件包捆绑在一个软件包中,您可以使用单个命令安装它:

sudo pacman -U /local_path/wine-staging-5.1-1-x86_64.pkg.tar.zst
or, in the case you miss dependencies..
sudo pacman -Sy /path/wine...
(I think that's the command... I'm not in Manjaro right now,
the Sy command will download the dependencies for you 
WITHOUT performing a full system upgrade, only the packages you need...
pacman -U is the equivalent of sudo dpkg -i , for manual install)

好的。如果您无法转到 Arch/Manjaro,以下是在基于 Debian/Ubuntu 的发行版上手动安装旧版本 Wine 的步骤:

  1. 假设您要安装 Wine 版本 4.1(Wineprefix 大小从 100 MB 直接增加到 600 MB 之前的最后一个 Wine 版本之一,没有任何额外的好处,也没有避免过去 10 年常见的错误...)
    转到https://dl.winehq.org/wine-builds/
    并下载所有名称中包含 4.1 的软件包(它们应该具有相同的日期)

对于 Wine 4.1(我发现的最佳版本),这些就是您需要的软件包。您总共需要五个软件包。

winehq-staging_4.1_buster_amd64.deb
wine-staging_4.1_buster_amd64.deb
wine-staging_4.1_buster_i386.deb
wine-staging-amd64_4.1_buster_amd64.deb
wine-staging-i386_4.1_buster_i386.deb
  1. 安装顺序。这是最棘手的部分,第一次安装后,下次应该会更容易。首先,始终安装最大的 i386 包。然后,安装小的 i386 包。然后,安装大的 amd64 包和小的 amd64 包。最后安装的应该是 winehq(仅以 amd64 格式提供)

下面是我的 bash 历史记录的副本,其中列出了我在最短时间内执行此操作时使用的命令顺序。

sudo dpkg --add-architecture i386
sudo apt-get update
sudo dpkg -i /path/wine-staging-i386_4.1_buster_i386.deb
sudo apt-get install -f
sudo dpkg -i /path/wine-staging_4.1_buster_i386.deb
sudo apt-get install -f
sudo dpkg -i /path/wine-staging-amd64_4.1_buster_amd64.deb
sudo apt-get install -f
sudo dpkg -i /path/wine-staging_4.1_buster_amd64.deb
sudo apt-get install -f
sudo dpkg -i /path/winehq-staging_4.1_buster_amd64.deb
sudo apt-get install -f
sudo apt-get update
...
winecfg    <used to create the initial Wine prefix>
<use these ones below to reassure that you have all libs installed correctly>
...
WINEPREFIX=~/.wine32 WINEARCH=win32 winecfg  <to test if 32-bit is working OK>
WINEPREFIX=~/.wine64 WINEARCH=win64 winecfg  <to test if 64-bit is working OK>
<you should not see errors in the terminal of the type
"but the wrong architecture is being used" >

注意你需要如何运行

sudo apt-get install -f  

每次安装每个软件包时。这将确保在安装下一个软件包之前,安装和配置每个软件包的各个依赖项。(这仅在您第一次执行此操作时才需要……之后,您可以将所有这些依赖项放在备份位置,然后使用 sudo dpkg -i /path/*.deb 一次性安装它们)

  1. 有时,我不明白为什么会发生这种情况,您将无法使用 Wine 64 位,或者您将无法使用 Wine 32 位,两者之一。如果发生这种情况,只需重新安装其中一个大型 Wine 软件包(取决于您是否需要 amd64 或 i386)

    sudo dpkg -i /path/wine-staging-amd64_4.1_buster_amd64.deb

很不幸,Wine 在 Debian/Ubuntu 系统上以这种方式分发,这是一个过于复杂的过程,浪费了大量的时间。Manjaro 的做法应该成为 Wine 从现在开始的官方分发方式。

相关内容