如何在 20.04 中安装 musikcube 而不会出现 libavcodec-extra58 依赖问题?

如何在 20.04 中安装 musikcube 而不会出现 libavcodec-extra58 依赖问题?

我正在尝试安装音乐立方体在 focal 上。它抱怨无法安装 libavcodec-extra,而 libavcodec-extra58 又抱怨无法安装 libavcodec-extra。

当我尝试手动安装时libavcodec-extra58,我得到了一大堆需要删除的东西的列表,这是不对的:

The following packages were automatically installed and are no longer required:
  glib-networking:i386 gstreamer1.0-plugins-base:i386 gstreamer1.0-plugins-good:i386 gstreamer1.0-x:i386 libaa1:i386 libaom0:i386 libasn1-8-heimdal:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libavc1394-0:i386 libavutil56:i386 libbrotli1:i386 libcaca0:i386 libcairo-gobject2:i386 libcairo2:i386 libcap2:i386
  libcapi20-3:i386 libcdparanoia0:i386 libcodec2-0.9:i386 libcups2:i386 libcurl3-gnutls:i386 libdatrie1:i386 libdv4:i386 libexif12:i386 libfontconfig1:i386 libfreetype6:i386
  libfribidi0:i386 libgd3:i386 libgdbm-compat4:i386 libgdbm6:i386 libgdk-pixbuf2.0-0:i386 libglib2.0-0:i386 libglu1-mesa:i386 libgmp10:i386 libgnutls30:i386 libgomp1:i386
  libgphoto2-6:i386 libgphoto2-port12:i386 libgraphite2-3:i386 libgsm1:i386 libgssapi-krb5-2:i386 libgssapi3-heimdal:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer-plugins-good1.0-0:i386 libgstreamer1.0-0:i386 libgudev-1.0-0:i386 libharfbuzz0b:i386 libhcrypto4-heimdal:i386 libheimbase1-heimdal:i386
  libheimntlm0-heimdal:i386 libhogweed5:i386 libhx509-5-heimdal:i386 libicu66:i386 libiec61883-0:i386 libieee1284-3:i386 libjbig0:i386 libjpeg-turbo8:i386 libjpeg8:i386
  libk5crypto3:i386 libkeyutils1:i386 libkrb5-26-heimdal:i386 libkrb5-3:i386 libkrb5support0:i386 liblcms2-2:i386 libldap-2.4-2:i386 libltdl7:i386 libmp3lame0:i386
  libmpg123-0:i386 libmysqlclient21:i386 libnettle7:i386 libnghttp2-14:i386 libnuma1:i386 libodbc1:i386 libopenal1:i386 libopenjp2-7:i386 libopus0:i386 liborc-0.4-0:i386
  libosmesa6:i386 libp11-kit0:i386 libpango-1.0-0:i386 libpangocairo-1.0-0:i386 libpangoft2-1.0-0:i386 libpcap0.8:i386 libpci3:i386 libperl5.30:i386 libpixman-1-0:i386
  libpng16-16:i386 libproxy1v5:i386 libpsl5:i386 libraw1394-11:i386 libroken18-heimdal:i386 librsvg2-2:i386 librsvg2-common:i386 librtmp1:i386 libsane:i386 libsasl2-2:i386
  libsasl2-modules:i386 libsasl2-modules-db:i386 libsdl2-2.0-0:i386 libshine3:i386 libshout3:i386 libslang2:i386 libsnappy1v5:i386 libsndio7.0:i386 libsnmp35:i386
  libsoup2.4-1:i386 libsoxr0:i386 libspeex1:i386 libsqlite3-0:i386 libssh-4:i386 libssl1.1:i386 libstb0:i386 libswresample3:i386 libtag1v5:i386 libtag1v5-vanilla:i386
  libtasn1-6:i386 libthai0:i386 libtheora0:i386 libtiff5:i386 libtwolame0:i386 libusb-1.0-0:i386 libv4l-0:i386 libv4lconvert0:i386 libva-drm2:i386 libva-x11-2:i386
  libvdpau1:i386 libvisual-0.4-0:i386 libvkd3d1:i386 libvpx6:i386 libwavpack1:i386 libwayland-cursor0:i386 libwayland-egl1:i386 libwebp6:i386 libwebpmux3:i386
  libwind0-heimdal:i386 libx264-155:i386 libx265-179:i386 libxcb-render0:i386 libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386 libxi6:i386 libxkbcommon0:i386
  libxml2:i386 libxpm4:i386 libxrandr2:i386 libxrender1:i386 libxslt1.1:i386 libxv1:i386 libxvidcore4:i386 libzvbi0:i386 mesa-vdpau-drivers:i386 ocl-icd-libopencl1:i386
  vdpau-driver-all:i386
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libvo-amrwbenc0
The following packages will be REMOVED
  libavcodec58 libavcodec58:i386 libfaudio0:i386 libwine:i386 wine32:i386
The following NEW packages will be installed
  libavcodec-extra58 libvo-amrwbenc0
0 to upgrade, 2 to newly install, 5 to remove and 25 not to upgrade.

请注意,如果我apt autoremove正常运行,则无需删除任何内容 - 大量可自动删除的软件包列表是运行此命令的直接结果。此输出更令人惊讶的是,它想要消除 libavcodec58,尽管明确libavcodec-extra58规定了libavcodec58

apt show libavcodec-extra58给出:

Package: libavcodec-extra58
Version: 7:4.2.4-1ubuntu0.1
Priority: optional
Section: universe/libs
Source: ffmpeg
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian Multimedia Maintainers <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 14.6 MB
Provides: libavcodec58 (= 7:4.2.4-1ubuntu0.1)
Depends: libaom0 (>= 1.0.0), libaribb24-0 (>= 1.0.3), libavutil56 (= 7:4.2.4-1ubuntu0.1), libc6 (>= 2.29), libcairo2 (>= 1.2.4), libcodec2-0.9, libglib2.0-0 (>= 2.12.0), libgsm1 (>= 1.0.18), liblzma5 (>= 5.1.1alpha+20120614), libmp3lame0 (>= 3.100), libopencore-amrnb0 (>= 0.1.5), libopencore-amrwb0 (>= 0.1.5), libopenjp2-7 (>= 2.0.0), libopus0 (>= 1.1), librsvg2-2 (>= 2.14.4), libshine3 (>= 3.1.0), libsnappy1v5 (>= 1.1.8), libspeex1 (>= 1.2~beta3-1), libswresample3 (= 7:4.2.4-1ubuntu0.1), libtheora0 (>= 1.0), libtwolame0 (>= 0.3.10), libva2 (>= 2.2.0), libvo-amrwbenc0 (>= 0.1.3), libvorbis0a (>= 1.1.2), libvorbisenc2 (>= 1.1.2), libvpx6 (>= 1.6.0), libwavpack1 (>= 4.40.0), libwebp6 (>= 0.5.1), libwebpmux3 (>= 0.6.1-2), libx264-155, libx265-179 (>= 3.2), libxvidcore4 (>= 1.2.2), libzvbi0 (>= 0.2.35), zlib1g (>= 1:1.2.0)
Conflicts: libavcodec58
Homepage: https://ffmpeg.org/
Download-Size: 4,880 kB
APT-Sources: http://gb.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages
Description: FFmpeg library with additional de/encoders for audio/video codecs
 FFmpeg is the leading multimedia framework, able to decode, encode, transcode,
 mux, demux, stream, filter and play pretty much anything that humans and
 machines have created. It supports the most obscure ancient formats up to the
 cutting edge.
 .
 This library provides a generic encoding/decoding framework and
 contains multiple decoders and encoders for audio, video and subtitle streams,
 and several bitstream filters.
 .
 The shared architecture provides various services ranging from bit stream I/O
 to DSP optimizations, and makes it suitable for implementing robust and fast
 codecs as well as for experimentation.
 .
 This package replaces the libavcodec58 package and contains the
 following additional codecs:
 .
  * ARIB STD-B24 Captions (Subtitle Decoder)
  * OpenCORE Adaptive Multi-Rate (AMR) Narrow-Band (Encoder/Decoder)
  * OpenCORE Adaptive Multi-Rate (AMR) Wide-Band (Decoder)
  * Android VisualOn Adaptive Multi-Rate (AMR) Wide-Band (Encoder)
 .
 Because this package links against libraries that are licensed under
 Apache License 2.0, the resulting binaries are distributed under the
 GPL version 3 or later.

这里有些问题。问题是,什么坏了吗?这是由我造成的(因此可以修复),还是软件包维护人员的错误?

答案1

所有这些都是因为依赖关系而发生的。Musikcube 开发人员是第三方,可能不尊重/不了解 Ubuntu 桌面软件包的依赖关系树。

因此,为了避免 Wine 卸载,你必须使用Snap 软件包版本为 0.96.3安装非常简单

snap install musikcube

或者使用以下方式从源代码进行编译其他答案

注意:Snap 版本将不会更新,因为开发商的决定

答案2

如果您在安装时遇到问题apt,请尝试编译它手动。

  1. 安装依赖项:

    sudo apt-get install build-essential git clang cmake libboost-thread1.67-dev libboost-system1.67-dev libboost-filesystem1.67-dev libboost-date-time1.67-dev libboost-atomic1.67-dev libboost-chrono1.67-dev libogg-dev libvorbis-dev libavutil-dev libavformat-dev libswresample-dev libncursesw5-dev libasound2-dev libpulse-dev pulseaudio libmicrohttpd-dev libmp3lame-dev libcurl4-openssl-dev libev-dev libssl-dev libtag1-dev libopenmpt-dev
    
  2. 克隆存储库:

    cd $HOME/Downloads
    git clone https://github.com/clangen/musikcube.git -b 0.96.10 --recursive
    
  3. 构建包:

    cd musikcube
    cmake -G "Unix Makefiles" . && make -j$(nproc) && sudo make install
    musikcube
    
  4. 运行强制安装:

    sudo apt -f install
    

可以通过以下方式卸载:

cd $HOME/Downloads/musikcube && sudo make uninstall

您可以随时使用以下方法更新它:

cd $HOME/Downloads/musikcube 
make clean 
git pull 
make 
sudo make install

相关内容