Библиотека Блендера отсутствует: libavcodec.so.54 - 16.04
Я пытаюсь запустить блендер на Ubuntu 16.04. Это терпит неудачу со следующей ошибкой.
$ 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
согласно ответу ниже. Также я удалил блендер sudo apt-get purge --auto-remove 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 их найти?
2 ответа
libavcodec-extra-56 можно заменить либо libavcodec-ffmpeg-extra56, либо libavcodec-ffmpeg56 в Ubuntu 16.04. У меня установлен Blender в Ubuntu 16.04, и он установил 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 вместо пакета apt с помощью следующей команды:
sudo snap install blender-tpaw
На чистой 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 LTS или 12.04 LTS).
Это может иметь старые устаревшие пакеты.
Вы можете перечислить и удалить их из Aptitude (категория "Устаревшие и локально созданные пакеты ") или Synaptic (Состояние -> Установлено (локально или устарело)).