Blender 缺少库:libavcodec.so.54 - 16.04

Blender 缺少库:libavcodec.so.54 - 16.04

我正在尝试在 Ubuntu 16.04 上启动 blender。失败并出现以下错误。

$ blender
blender: error while loading shared libraries: libavcodec.so.54: cannot open shared object file: No such file or directory

我已经检查过答案这里。按照那里的答案,当我尝试安装包 libavcodec-extra-56 时

$ sudo apt-get install libavcodec-extra-56
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libavcodec-extra-56 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libavcodec-extra-56' has no installation candidate

关于第二个问题的一个相关问题是这里。但那个答案与搅拌机无关。

我怎样才能使我的搅拌机安装正常运转?

可能有用的其他信息

$ apt-cache policy blender
blender:
  Installed: 2.76.b+dfsg0-3build1
  Candidate: 2.76.b+dfsg0-3build1
  Version table:
 *** 2.76.b+dfsg0-3build1 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        100 /var/lib/dpkg/status

$ lsb_release  -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:    16.04
Codename:   xenial

感谢您的时间。

更新 我的系统很久以前就从 14.04 升级到了 16.04。我libavcodec-ffmpeg-extra56按照以下答案进行了安装。我还通过 删除了 blender sudo apt-get purge --auto-remove blender。现在我再次安装了 blender,希望依赖项能够正确映射。但是,启动 blender 时,它仍然在寻找libavcodec.so.54。如何正确映射它?

更新2 根据注释输出以下命令。

:~$ which blender
/usr/bin/blender

:~$ ldd /usr/bin/blender |grep libavcodec
    libavcodec-ffmpeg.so.56 => /usr/lib/x86_64-linux-gnu/libavcodec-ffmpeg.so.56 (0x00007fc9c45e8000)
    libavcodec.so.54 => not found

更新 3 在执行@karel 以下步骤后,由于其他一些库的原因,启动现在失败。

我执行了

sudo apt install libavcodec-ffmpeg-extra56  
cd /usr/lib/x86_64-linux-gnu/
sudo cp libavcodec-ffmpeg.so.56 libavcodec-ffmpeg.so.56.bak  
sudo mv libavcodec-ffmpeg.so.56.bak libavcodec.so.54 

现在推出,

$ blender
blender: error while loading shared libraries: libavformat.so.54: cannot open shared object file: No such file or directory

更新 4

~$ ldd /usr/bin/blender | grep -E 'libav|libsw|libpo'
/usr/bin/blender: /usr/lib/x86_64-linux-gnu/libavcodec-ffmpeg.so.56: version `LIBAVCODEC_54' not found (required by /usr/local/lib/libopencv_highgui.so.2.4)
    libavformat-ffmpeg.so.56 => /usr/lib/x86_64-linux-gnu/libavformat-ffmpeg.so.56 (0x00007fb7e0107000)
    libavcodec-ffmpeg.so.56 => /usr/lib/x86_64-linux-gnu/libavcodec-ffmpeg.so.56 (0x00007fb7decd8000)
    libavutil-ffmpeg.so.54 => /usr/lib/x86_64-linux-gnu/libavutil-ffmpeg.so.54 (0x00007fb7dea69000)
    libavdevice-ffmpeg.so.56 => /usr/lib/x86_64-linux-gnu/libavdevice-ffmpeg.so.56 (0x00007fb7de83b000)
    libswscale-ffmpeg.so.3 => /usr/lib/x86_64-linux-gnu/libswscale-ffmpeg.so.3 (0x00007fb7de5ac000)
    libswresample-ffmpeg.so.1 => /usr/lib/x86_64-linux-gnu/libswresample-ffmpeg.so.1 (0x00007fb7d8608000)
    libavfilter-ffmpeg.so.5 => /usr/lib/x86_64-linux-gnu/libavfilter-ffmpeg.so.5 (0x00007fb7d4191000)
    libavc1394.so.0 => /usr/lib/x86_64-linux-gnu/libavc1394.so.0 (0x00007fb7d1ffc000)
    libavformat.so.54 => not found
    libavutil.so.52 => not found
    libswscale.so.2 => not found
    libpostproc-ffmpeg.so.53 => /usr/lib/x86_64-linux-gnu/libpostproc-ffmpeg.so.53 (0x00007fb7c9ce4000)
    libavresample-ffmpeg.so.2 => /usr/lib/x86_64-linux-gnu/libavresample-ffmpeg.so.2 (0x00007fb7c9ac2000)

因此列出了 13 个库,其中 3 个缺失。现在的问题是如何在 16.04 上安装这些库或它们的替代品并让 blender 找到它们?

答案1

在 Ubuntu 16.04 中,libavcodec-extra-56 可以替换为 libavcodec-ffmpeg-extra56 或 libavcodec-ffmpeg56。我在 Ubuntu 16.04 中安装了 Blender,它将 libavcodec-ffmpeg-extra56 安装为依赖项,而不是 libavcodec-ffmpeg56。打开终端并输入:

sudo apt install libavcodec-ffmpeg-extra56 libavdevice-ffmpeg56 libavformat-ffmpeg56   
cd /usr/lib/x86_64-linux-gnu/
sudo cp libavcodec-ffmpeg.so.56 libavcodec-ffmpeg.so.56.bak  
sudo mv libavcodec-ffmpeg.so.56.bak libavcodec.so.54  
sudo cp libavformat-ffmpeg.so.56 libavformat-ffmpeg.so.56.bak  
sudo mv libavformat-ffmpeg.so.56.bak libavformat.so.54    
sudo cp libavdevice-ffmpeg56 libavdevice-ffmpeg56.bak  
sudo mv libavdevice-ffmpeg56 libavdevice.so.54  

根据您问题中的更新 4,您的系统处于混乱状态。您应该放弃手动将 Blender 粘贴回去的无望任务,并使用以下命令安装 Blender snap 包而不是 apt 包:

sudo snap install blender --classic

答案2

在干净的 Ubuntu 16.04 LTS 上,以下软件包与 blender 一起安装:

 sudo apt-get install --reinstall blender blender-data \
  fonts-dejavu libavdevice-ffmpeg56 libboost-locale1.58.0 \
  libboost-regex1.58.0 libboost-thread1.58.0 libjemalloc1 libopenal-data \
  libopenal1 libopencolorio1v5 libopenimageio1.6 libspnav0 libtinyxml2.6.2v5 \
  libyaml-cpp0.3v5

该搅拌机启动并正常工作后。

如果您的系统从以前的版本升级,则可能会失败(14.04 长期支持或 12.04 LTS)。
它可能包含旧的过时软件包。
您可以从 Aptitude 中列出并删除它们(过时的和本地创建的软件包类别)或 Synaptic(地位->已安装(本地或过时))。

相关内容