葡萄酒依赖问题

葡萄酒依赖问题

我正在尝试在 Ubuntu 16.04 64 位上安装 Wine 5.0。

我已经添加了 i386 arch,将其 PPA 添加到 apt,apt-get update然后尝试apt-get install --install-recommends winehq-stable wine-stable wine-stable-amd64,但我遇到了

以下软件包具有未满足的依赖关系。
 wine-stable-i386:i386:依赖:libasound2:i386(>= 1.0.16)
                         依赖: libc6:i386 (>= 2.23) 但是它将不会被安装
                         依赖: libglib2.0-0:i386 (>= 2.12.0) 但是它将不会被安装
                         依赖: libgphoto2-6:i386 (>= 2.5.9) 但是它将不会被安装
                         依赖: libgphoto2-port12:i386 (>= 2.5.9) 但是它将不会被安装
                         依赖: libgstreamer-plugins-base1.0-0:i386 (>= 1.0.0) 但是它将不会被安装
                         依赖: libgstreamer1.0-0:i386 (>= 1.4.0) 但是它将不会被安装
                         依赖:liblcms2-2:i386 (>= 2.2+git20110628) 但是它将不会被安装
                         依赖: libldap-2.4-2:i386 (>= 2.4.7) 但是它将不会被安装
                         依赖:libmpg123-0:i386 (>= 1.13.7) 但是它将不会被安装
                         依赖: libopenal1:i386 (>= 1.14) 但是它将不会被安装
                         依赖: libpcap0.8:i386 (>= 0.9.8) 但是它将不会被安装
                         依赖: libpulse0:i386 (>= 0.99.1) 但是它将不会被安装
                         依赖: libudev1:i386 (>= 183) 但是它将不会被安装
                         依赖: libx11-6:i386 但是它将不会被安装
                         依赖: libxext6:i386 但是它将不会被安装
                         依赖: libxml2:i386 (>= 2.9.0) 但是它将不会被安装
                         依赖: ocl-icd-libopencl1:i386 但是它将不会被安装或
                                  libopencl1:i386
                         依赖: ocl-icd-libopencl1:i386 (>= 1.0) 但是它将不会被安装或
                                  libopencl-1.1-1:i386
                         依赖:zlib1g:i386 (>= 1:1.1.4) 但是它将不会被安装
                         依赖: libasound2-plugins:i386 但是它将不会被安装
                         依赖: libncurses6:i386 但无法安装或
                                  libncurses5:i386 但无法安装,或者
                                  libncurses:i386 但无法安装
                         推荐:libcapi20-3:i386 但不会安装
                         推荐:libcups2:i386 但不会安装
                         推荐:libdbus-1-3:i386 但不会安装
                         推荐:libfontconfig1:i386 但不会安装
                         推荐:libfreetype6:i386 但不会安装
                         推荐:libglu1-mesa:i386 但不会安装或
                                     libglu1:i386
                         推荐:libgnutls30:i386 但不会安装或
                                     libgnutls28:i386 但无法安装或
                                     libgnutls26:i386 但无法安装
                         推荐:libgsm1:i386 但不会安装
                         推荐:libgssapi-krb5-2:i386 但不会安装
                         推荐:libjpeg62-turbo:i386 但无法安装或
                                     libjpeg8:i386 但不会被安装
                         推荐:libkrb5-3:i386 但不会安装
                         推荐:libodbc1:i386 但不会安装
                         推荐:libosmesa6:i386 但不会安装
                         推荐:libpng16-16:i386 但不会安装或
                                     libpng12-0:i386 但不会安装
                         推荐:libsane:i386 但不会安装或
                                     libsane1:i386 但无法安装
                         推荐:libsdl2-2.0-0:i386 但不会安装
                         推荐:libtiff5:i386 但不会安装
                         推荐:libv4l-0:i386 但不会安装
                         推荐:libxcomposite1:i386 但不会安装
                         推荐:libxcursor1:i386 但不会安装
                         推荐:libxfixes3:i386 但不会安装
                         推荐:libxi6:i386 但不会安装
                         推荐:libxinerama1:i386 但不会安装
                         推荐:libxrandr2:i386 但不会安装
                         推荐:libxrender1:i386 但不会安装
                         推荐:libxslt1.1:i386 但不会安装
                         推荐:libxxf86vm1:i386 但不会安装
E:无法纠正问题,您持有破损的包裹。

只是为了好玩,我尝试安装libglib2.0-0:i386,但正如预料的那样,需要交换整个系统。

因此,问题是:为什么它依赖于i386arch 包,即使在 amd64 主机上也是如此?我如何在没有此依赖项的情况下安装 Wine,因为我显然不想切换到该 arch?

我还感到好奇:winehq-stable仅提供 的符号链接/opt/wine-stable/bin/*,而 又由 提供wine-stable,但没有/opt/wine-stable/bin/wine。 软件包wine-stable-amd64仅提供/opt/wine-stable/bin/wine64。 我在这里遗漏了什么?

谢谢。


编辑1:

# apt-cache 策略 winehq-stable
winehq-稳定版:
  已安装:(无)
  候选:5.0.0~xenial
  版本表:
     5.0.0~xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     4.0.4~Xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     4.0.3~Xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     4.0.2~xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     4.0.1~xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     4.0~赛尼尔500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     3.0.5~赛尼尔 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     3.0.4~xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     3.0.3~Xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     3.0.2~xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     3.0.1~xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     3.0.0~xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     2.0.4~Xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     2.0.3~Xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     2.0.2~xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     2.0.1~xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包
     2.0.0~xenial 500
        500 https://dl.winehq.org/wine-builds/ubuntu xenial/main amd64 软件包

答案1

根据您的来源列表,我的假设是正确的——你的存储库有误。

首先打开软件和更新(software-properties-gtk)并使其看起来像:

Ubuntu 软件

更新

或者/etc/apt/sources.list使用以 root 身份打开的文本编辑器将文件更改为

deb http://archive.canonical.com/ubuntu xenial partner
deb http://archive.ubuntu.com/ubuntu xenial main universe multiverse restricted
deb http://archive.ubuntu.com/ubuntu xenial-security main universe multiverse restricted
deb http://archive.ubuntu.com/ubuntu xenial-updates main universe multiverse restricted

deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main

然后更新软件包列表,安装新的依赖项并最终安装 Wine:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install --install-recommends winehq-stable wine-stable wine-stable-amd64

答案2

下面是手动安装 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 从现在开始的官方分发方式。

相关内容