Приоритеты репозиториев apt позволяют исправить проблемы, похожие на ту, что описана здесь. В общих чертах суть проблемы выглядит так: из неофициального репозитория устанавливаются пакеты, версия которых считается более высокой, чем версия пакета из официального репозитория. Один из репозиториев, с которыми возникают такие проблемы, — deb-multimedia.org. Вот как можно решить проблемы с пакетами DMO, используя приоритеты репозиториев менеджера пакетов APT.
Проверяем, что у нас установлено из репозитория deb-multimedia.org:
$ dpkg -l | grep dmo ii avidemux 1:2.6.8-dmo8 amd64 Free video editor ii avidemux-common 1:2.6.8-dmo8 all Free video editor (Internationalization files) ii avidemux-plugins 1:2.6.8-dmo8 amd64 Free video editor (plugins) ii avidemux-qt 1:2.6.8-dmo8 amd64 Free video editor (QT version) ii libaacplus2:amd64 2.0.2-dmo2 amd64 AAC+ encoding library - runtime files ii libaacplus2:i386 2.0.2-dmo2 i386 AAC+ encoding library - runtime files ii libaacs0:amd64 0.8.1-dmo1 amd64 free-and-libre implementation of AACS ii libaften0:amd64 0.0.8svn20100103-dmo1 amd64 audio AC3 encoder - runtime files ii libavcodec56:amd64 10:2.6.9-dmo1 amd64 Library to encode decode multimedia streams - runtime files ii libavresample2:amd64 10:2.6.9-dmo1 amd64 FFmpeg audio conversion library ii libavresample2:i386 10:2.6.9-dmo1 i386 FFmpeg audio conversion library ii libavutil54:amd64 10:2.6.9-dmo1 amd64 FFmpeg avutil library - runtime files ii libavutil54:i386 10:2.6.9-dmo1 i386 FFmpeg avutil library - runtime files ii libbluray1:amd64 2:0.7.0-dmo1 amd64 Blu-ray disc playback support library (shared library) ii libdca0:amd64 0.0.5-dmo2 amd64 decoding library for DTS Coherent Acoustics streams ii libdvdcss2:amd64 1.3.0-dmo1 amd64 Simple foundation for reading DVDs - runtime libraries ii libfaac0:amd64 1:1.28-dmo3 amd64 AAC audio encoder - library files. ii libfaac0:i386 1:1.28-dmo3 i386 AAC audio encoder - library files. ii libfdk-aac1:amd64 1:0.1.4-dmo1 amd64 Fraunhofer FDK AAC codec library. ii libfdk-aac1:i386 1:0.1.4-dmo1 i386 Fraunhofer FDK AAC codec library. ii libguess1:amd64 1.2-dmo2 amd64 High-speed character set detection library. ii liblavfile-2.1-0:amd64 2:2.1.0-dmo6 amd64 MJPEG capture/editing/replay and MPEG encoding toolset (library) ii liblavjpeg-2.1-0:amd64 2:2.1.0-dmo6 amd64 MJPEG capture/editing/replay and MPEG encoding toolset (library) ii liblavplay-2.1-0:amd64 2:2.1.0-dmo6 amd64 MJPEG capture/editing/replay and MPEG encoding toolset (library) ii liblsmash2 2.3.0-dmo1 amd64 Loyal to Spec of Mpeg4 and Ad-hoc Simple Hackwork ii libmjpegutils-2.1-0:amd64 2:2.1.0-dmo6 amd64 MJPEG capture/editing/replay and MPEG encoding toolset (library) ii libmp3lame-dev:amd64 1:3.99.5-dmo4 amd64 Development files for LAME ii libmp3lame0:amd64 1:3.99.5-dmo4 amd64 Shared libraries for MP3 encoding ii libmp3lame0:i386 1:3.99.5-dmo4 i386 Shared libraries for MP3 encoding ii libmpeg2encpp-2.1-0:amd64 2:2.1.0-dmo6 amd64 MJPEG capture/editing/replay and MPEG encoding toolset (library) ii libmplex2-2.1-0:amd64 2:2.1.0-dmo6 amd64 MJPEG capture/editing/replay and MPEG encoding toolset (library) ii libpostproc53:amd64 10:2.6.9-dmo1 amd64 postproc shared libraries ii libquicktime2:amd64 3:1.2.4-dmo11 amd64 Library for reading and writing Quicktime files ii libswresample1:amd64 10:2.6.9-dmo1 amd64 FFmpeg audio rescaling library ii libswresample1:i386 10:2.6.9-dmo1 i386 FFmpeg audio rescaling library ii libswscale3:amd64 10:2.6.9-dmo1 amd64 FFmpeg video scaling library ii libutvideo15:amd64 15.1.0-dmo2 amd64 Ut Video Codec Suite library ii libvidstab1.0 2:0.98b-dmo1 amd64 Video stabilization library. ii libx264-146:amd64 3:0.146.2538+git121396c-dmo1 amd64 x264 video coding library ii libx264-146:i386 3:0.146.2538+git121396c-dmo1 i386 x264 video coding library ii libx265-51:amd64 1.6-dmo1 amd64 x265 video coding library ii libxvidcore4:amd64 3:1.3.3-dmo1 amd64 High quality ISO MPEG4 codec library ii libxvidcore4:i386 3:1.3.3-dmo1 i386 High quality ISO MPEG4 codec library ii mjpegtools 2:2.1.0-dmo6 amd64 MJPEG video capture/editting/playback MPEG encoding ii vdpau-va-driver:amd64 0.7.4-dmo5 amd64 VDPAU-based backend for VA API ii w64codecs:amd64 1:20071007-dmo2 amd64 win64 binary codecs ii x11proto-xf86vidmode-dev 2.3.1-2 all X11 Video Mode extension wire protocol
Достаточно много. Некоторые пакеты не обновлялись годами, поэтому есть вероятность проблем совместимости с новыми версиями программ из официального репозитория. Создаем файл /etc/apt/preferences. В нем указываем соответствующие приоритеты. Я использую ветку stretch, поэтому указываю, что должны использоваться пакеты из stretch и пакеты из репозитория debian.org, даже если они более старой версии. Для репозитория deb-multimedia.org ставим минимальный приоритет, пакеты оттуда будут устанавливаться только в том случае, если они отсутствуют в официальном репозитории.
Приоритеты репозиториев apt имеют следующие значения:
- P >= 1000 — Устанавливать пакеты, даже если это приводит к установке более старой версии, чем текущая установленная
- 990 <= P < 1000 — Устанавливать версию пакетов, даже если она не входит в текущий релиз, за исключением случая, если установленная версия новее.
- 500 <= P < 990 — Устанавливать пакеты, если они отсутствуют в текущем релизе, и устанавливаемая версия новее.
- 100 <= P < 500 — Устанавливать пакеты, если нет доступной версии в других репозиториях или установленная версия старее.
- 0 < P < 100 — Устанавливать пакет только в том случае, если нет другой установленной версии.
- P < 0 — Предотвратить установку указанной версии
- P = 0 — Неопределенное поведение, не рекомендуется использовать
Более подробно почитать о приоритетах и параметрах приоритезации можно в man-страничке (man apt_preferences) или здесь.
Сам файл /etc/apt/preferences:
Package: * Pin: origin *.debian.org Pin-Priority: 1000 Package: * Pin: release a=stretch Pin-Priority: 1000 Package: * Pin: origin *.deb-multimedia.org Pin-Priority: 1
Обновляемся
$ sudo apt-get upgrade Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Расчёт обновлений… Готово Пакеты, которые будут оставлены в неизменном виде: shutter Пакеты, будут заменены на более СТАРЫЕ версии: base-files libart-2.0-2 libbluray1 libdca0 libfaac0 libfaac0:i386 libguess1 liblavfile-2.1-0 liblavjpeg-2.1-0 liblavplay-2.1-0 libmjpegutils-2.1-0 libmpeg2encpp-2.1-0 libmplex2-2.1-0 libquicktime2 libxvidcore4 libxvidcore4:i386 nikto vdpau-va-driver обновлено 0, установлено 0 новых пакетов, 18 пакетов заменены на старые версии, для удаления отмечено 0 пакетов, и 8 пакетов не обновлено. Необходимо скачать 1 763 kБ архивов. После данной операции, объём занятого дискового пространства уменьшится на 489 kB. Хотите продолжить? [Д/н] Пол:1 http://ftp.nz.debian.org/debian stretch/main amd64 base-files amd64 9.7 [57,6 kB] Пол:2 http://ftp.nz.debian.org/debian stretch/main amd64 libart-2.0-2 amd64 2.3.21-2 [72,7 kB] Пол:3 http://ftp.nz.debian.org/debian stretch/main amd64 libbluray1 amd64 1:0.9.3-3 [137 kB] Пол:4 http://ftp.nz.debian.org/debian stretch/main amd64 libdca0 amd64 0.0.5-10 [105 kB] Пол:5 http://ftp.nz.debian.org/debian stretch/non-free amd64 libfaac0 amd64 1.28+cvs20151130-1 [51,4 kB] Пол:6 http://ftp.nz.debian.org/debian stretch/non-free i386 libfaac0 i386 1.28+cvs20151130-1 [52,2 kB] Пол:7 http://ftp.nz.debian.org/debian stretch/main amd64 libguess1 amd64 1.2-1.1 [10,1 kB] Пол:8 http://ftp.nz.debian.org/debian stretch/main amd64 libmjpegutils-2.1-0 amd64 1:2.1.0+debian-5 [27,8 kB] Пол:9 http://ftp.nz.debian.org/debian stretch/main amd64 libquicktime2 amd64 2:1.2.4-9 [265 kB] Пол:10 http://ftp.nz.debian.org/debian stretch/main amd64 liblavfile-2.1-0 amd64 1:2.1.0+debian-5 [40,4 kB] Пол:11 http://ftp.nz.debian.org/debian stretch/main amd64 liblavjpeg-2.1-0 amd64 1:2.1.0+debian-5 [16,0 kB] Пол:12 http://ftp.nz.debian.org/debian stretch/main amd64 liblavplay-2.1-0 amd64 1:2.1.0+debian-5 [25,4 kB] Пол:13 http://ftp.nz.debian.org/debian stretch/main amd64 libmpeg2encpp-2.1-0 amd64 1:2.1.0+debian-5 [74,2 kB] Пол:14 http://ftp.nz.debian.org/debian stretch/main amd64 libmplex2-2.1-0 amd64 1:2.1.0+debian-5 [49,6 kB] Пол:15 http://ftp.nz.debian.org/debian stretch/main amd64 libxvidcore4 amd64 2:1.3.4-1 [246 kB] Пол:16 http://ftp.nz.debian.org/debian stretch/main i386 libxvidcore4 i386 2:1.3.4-1 [239 kB] Пол:17 http://ftp.nz.debian.org/debian stretch/main amd64 vdpau-va-driver amd64 0.7.4-6 [43,5 kB] Пол:18 http://ftp.nz.debian.org/debian stretch/non-free amd64 nikto all 1:2.1.5-1 [251 kB] Получено 1 763 kБ за 3с (571 kБ/c) dpkg: предупреждение: снижение версии base-files с 1:1.1.0 до 9.7 (Чтение базы данных … на данный момент установлено 344724 файла и каталога.) Подготовка к распаковке …/base-files_9.7_amd64.deb … Распаковывается base-files (9.7) на замену (1:1.1.0) … dpkg: предупреждение: не удалось удалить старый каталог «/mnt»: Каталог не пуст Настраивается пакет base-files (9.7) … Файл настройки «/etc/debian_version» ==> Изменён с момента установки (вами или сценарием). ==> Автор пакета предоставил обновлённую версию. Что нужно сделать? Есть следующие варианты: Y или I : установить версию, предлагаемую сопровождающим пакета N или O : оставить установленную на данный момент версию D : показать различия между версиями Z : запустить оболочку командной строки для проверки ситуации По умолчанию сохраняется текущая версия файла настройки. *** debian_version (Y/I/N/O/D/Z) [по умолчанию N] ? Y Устанавливается новая версия файла настройки /etc/debian_version … Файл настройки «/etc/issue» ==> Изменён с момента установки (вами или сценарием). ==> Автор пакета предоставил обновлённую версию. Что нужно сделать? Есть следующие варианты: Y или I : установить версию, предлагаемую сопровождающим пакета N или O : оставить установленную на данный момент версию D : показать различия между версиями Z : запустить оболочку командной строки для проверки ситуации По умолчанию сохраняется текущая версия файла настройки. *** issue (Y/I/N/O/D/Z) [по умолчанию N] ? Y Устанавливается новая версия файла настройки /etc/issue … Файл настройки «/etc/issue.net» ==> Изменён с момента установки (вами или сценарием). ==> Автор пакета предоставил обновлённую версию. Что нужно сделать? Есть следующие варианты: Y или I : установить версию, предлагаемую сопровождающим пакета N или O : оставить установленную на данный момент версию D : показать различия между версиями Z : запустить оболочку командной строки для проверки ситуации По умолчанию сохраняется текущая версия файла настройки. *** issue.net (Y/I/N/O/D/Z) [по умолчанию N] ? Y Устанавливается новая версия файла настройки /etc/issue.net … Updating /etc/profile to current default. Updating /root/.profile to current default. dpkg: предупреждение: снижение версии libart-2.0-2:amd64 с 4:14.0.0-r5-0debian7.0.0+pr9 до 2.3.21-2 (Чтение базы данных … на данный момент установлено 344723 файла и каталога.) Подготовка к распаковке …/00-libart-2.0-2_2.3.21-2_amd64.deb … Распаковывается libart-2.0-2:amd64 (2.3.21-2) на замену (4:14.0.0-r5-0debian7.0.0+pr9) … dpkg: предупреждение: снижение версии libbluray1:amd64 с 2:0.7.0-dmo1 до 1:0.9.3-3 Подготовка к распаковке …/01-libbluray1_1%3a0.9.3-3_amd64.deb … Распаковывается libbluray1:amd64 (1:0.9.3-3) на замену (2:0.7.0-dmo1) … dpkg: предупреждение: снижение версии libdca0:amd64 с 0.0.5-dmo2 до 0.0.5-10 Подготовка к распаковке …/02-libdca0_0.0.5-10_amd64.deb … Распаковывается libdca0:amd64 (0.0.5-10) на замену (0.0.5-dmo2) … dpkg: предупреждение: снижение версии libfaac0:amd64 с 1:1.28-dmo3 до 1.28+cvs20151130-1 Подготовка к распаковке …/03-libfaac0_1.28+cvs20151130-1_amd64.deb … Деконфигурируется libfaac0:i386 (1:1.28-dmo3) … Распаковывается libfaac0:amd64 (1.28+cvs20151130-1) на замену (1:1.28-dmo3) … dpkg: предупреждение: снижение версии libfaac0:i386 с 1:1.28-dmo3 до 1.28+cvs20151130-1 Подготовка к распаковке …/04-libfaac0_1.28+cvs20151130-1_i386.deb … Распаковывается libfaac0:i386 (1.28+cvs20151130-1) на замену (1:1.28-dmo3) … dpkg: предупреждение: снижение версии libguess1:amd64 с 1.2-dmo2 до 1.2-1.1 Подготовка к распаковке …/05-libguess1_1.2-1.1_amd64.deb … Распаковывается libguess1:amd64 (1.2-1.1) на замену (1.2-dmo2) … dpkg: предупреждение: снижение версии libmjpegutils-2.1-0:amd64 с 2:2.1.0-dmo6 до 1:2.1.0+debian-5 Подготовка к распаковке …/06-libmjpegutils-2.1-0_1%3a2.1.0+debian-5_amd64.deb … Распаковывается libmjpegutils-2.1-0 (1:2.1.0+debian-5) на замену (2:2.1.0-dmo6) … dpkg: предупреждение: снижение версии libquicktime2:amd64 с 3:1.2.4-dmo11 до 2:1.2.4-9 Подготовка к распаковке …/07-libquicktime2_2%3a1.2.4-9_amd64.deb … Распаковывается libquicktime2:amd64 (2:1.2.4-9) на замену (3:1.2.4-dmo11) … dpkg: предупреждение: снижение версии liblavfile-2.1-0:amd64 с 2:2.1.0-dmo6 до 1:2.1.0+debian-5 Подготовка к распаковке …/08-liblavfile-2.1-0_1%3a2.1.0+debian-5_amd64.deb … Распаковывается liblavfile-2.1-0 (1:2.1.0+debian-5) на замену (2:2.1.0-dmo6) … dpkg: предупреждение: снижение версии liblavjpeg-2.1-0:amd64 с 2:2.1.0-dmo6 до 1:2.1.0+debian-5 Подготовка к распаковке …/09-liblavjpeg-2.1-0_1%3a2.1.0+debian-5_amd64.deb … Распаковывается liblavjpeg-2.1-0 (1:2.1.0+debian-5) на замену (2:2.1.0-dmo6) … dpkg: предупреждение: снижение версии liblavplay-2.1-0:amd64 с 2:2.1.0-dmo6 до 1:2.1.0+debian-5 Подготовка к распаковке …/10-liblavplay-2.1-0_1%3a2.1.0+debian-5_amd64.deb … Распаковывается liblavplay-2.1-0 (1:2.1.0+debian-5) на замену (2:2.1.0-dmo6) … dpkg: предупреждение: снижение версии libmpeg2encpp-2.1-0:amd64 с 2:2.1.0-dmo6 до 1:2.1.0+debian-5 Подготовка к распаковке …/11-libmpeg2encpp-2.1-0_1%3a2.1.0+debian-5_amd64.deb … Распаковывается libmpeg2encpp-2.1-0 (1:2.1.0+debian-5) на замену (2:2.1.0-dmo6) … dpkg: предупреждение: снижение версии libmplex2-2.1-0:amd64 с 2:2.1.0-dmo6 до 1:2.1.0+debian-5 Подготовка к распаковке …/12-libmplex2-2.1-0_1%3a2.1.0+debian-5_amd64.deb … Распаковывается libmplex2-2.1-0 (1:2.1.0+debian-5) на замену (2:2.1.0-dmo6) … dpkg: предупреждение: снижение версии libxvidcore4:amd64 с 3:1.3.3-dmo1 до 2:1.3.4-1 Подготовка к распаковке …/13-libxvidcore4_2%3a1.3.4-1_amd64.deb … Деконфигурируется libxvidcore4:i386 (3:1.3.3-dmo1) … Распаковывается libxvidcore4:amd64 (2:1.3.4-1) на замену (3:1.3.3-dmo1) … dpkg: предупреждение: снижение версии libxvidcore4:i386 с 3:1.3.3-dmo1 до 2:1.3.4-1 Подготовка к распаковке …/14-libxvidcore4_2%3a1.3.4-1_i386.deb … Распаковывается libxvidcore4:i386 (2:1.3.4-1) на замену (3:1.3.3-dmo1) … dpkg: предупреждение: снижение версии vdpau-va-driver:amd64 с 0.7.4-dmo5 до 0.7.4-6 Подготовка к распаковке …/15-vdpau-va-driver_0.7.4-6_amd64.deb … Распаковывается vdpau-va-driver:amd64 (0.7.4-6) на замену (0.7.4-dmo5) … dpkg: предупреждение: снижение версии nikto с 1:2.1.6-0kali1 до 1:2.1.5-1 Подготовка к распаковке …/16-nikto_1%3a2.1.5-1_all.deb … Распаковывается nikto (1:2.1.5-1) на замену (1:2.1.6-0kali1) … Настраивается пакет libart-2.0-2:amd64 (2.3.21-2) … Настраивается пакет libfaac0:i386 (1.28+cvs20151130-1) … Настраивается пакет libfaac0:amd64 (1.28+cvs20151130-1) … Настраивается пакет nikto (1:2.1.5-1) … Обрабатываются триггеры для install-info (6.3.0.dfsg.1-1+b1) … Обрабатываются триггеры для cracklib-runtime (2.9.2-3) … Настраивается пакет libxvidcore4:amd64 (2:1.3.4-1) … Настраивается пакет libxvidcore4:i386 (2:1.3.4-1) … Настраивается пакет libguess1:amd64 (1.2-1.1) … Настраивается пакет vdpau-va-driver:amd64 (0.7.4-6) … Настраивается пакет libquicktime2:amd64 (2:1.2.4-9) … Настраивается пакет libmjpegutils-2.1-0 (1:2.1.0+debian-5) … Обрабатываются триггеры для libc-bin (2.24-8) … Настраивается пакет libbluray1:amd64 (1:0.9.3-3) … Обрабатываются триггеры для man-db (2.7.6.1-2) … Настраивается пакет libdca0:amd64 (0.0.5-10) … Настраивается пакет libmplex2-2.1-0 (1:2.1.0+debian-5) … Настраивается пакет libmpeg2encpp-2.1-0 (1:2.1.0+debian-5) … Настраивается пакет liblavfile-2.1-0 (1:2.1.0+debian-5) … Настраивается пакет liblavjpeg-2.1-0 (1:2.1.0+debian-5) … Настраивается пакет liblavplay-2.1-0 (1:2.1.0+debian-5) … Обрабатываются триггеры для libc-bin (2.24-8) … $
И таким образом пакеты из DMO и даже один из Kali (nikto), про который я давно забыл, заменены на пакеты из официального репозитория.
Вот что делаем дальше:
$ dpkg -l | grep libswscale ii libswscale3:amd64 10:2.6.9-dmo1 amd64 FFmpeg video scaling library ii libswscale4:amd64 7:3.2.2-1 amd64 FFmpeg library for image scaling and various conversions - runtime files mnorin@lenovo:/etc/apt$ mnorin@lenovo:/etc/apt$ sudo apt-get remove libswscale3:amd64 --purge Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Пакеты, которые будут УДАЛЕНЫ: libswscale3* обновлено 0, установлено 0 новых пакетов, для удаления отмечено 1 пакетов, и 5 пакетов не обновлено. После данной операции, объём занятого дискового пространства уменьшится на 547 kB. Хотите продолжить? [Д/н]
У нас уже есть более новые версии библиотек, поэтому держать старые, если, конечно, они не нужны для определенных версий программ, нет никакого смысла.
В идеале должно выглядеть так:
$ dpkg -l | grep dmo ii x11proto-xf86vidmode-dev 2.3.1-2 all X11 Video Mode extension wire protocol
НО! Если у вас есть приложения, установленные из репозитория deb-multimedia.org, например, avidemux, и вы их используете, будьте внимательнее при удалении