LINUX.ORG.RU

Поясните про сборку пакетов в Debian и конфликт версий. На примере firefox-esr

 , ,


0

1

Итак, имеем Debian 10 stable. Buster. Подключены бекпорты и deb-multimedia.

# apt-get build-dep firefox-esr
Reading package lists... Done
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 builddeps:firefox-esr : Conflicts: libvpx-dev (>= 1.8.0) but 1.8.1-dmo1+deb10u1 is to be installed
E: Unable to correct problems, you have held broken packages.

Интересно

# apt-cache policy libvpx-dev
libvpx-dev:
  Installed: 1.8.1-dmo1+deb10u1
  Candidate: 1.8.1-dmo1+deb10u1
  Version table:
 *** 1.8.1-dmo1+deb10u1 500
        500 http://www.deb-multimedia.org buster/main amd64 Packages
        100 /var/lib/dpkg/status
     1.7.0-3+deb10u1 500
        500 http://ftp2.de.debian.org/debian buster/main amd64 Packages
        500 http://security.debian.org/debian-security buster/updates/main amd64 Packages

Смотрим в исходниках файл control

libvpx-dev (>= 1.5.0),
...
Build-Conflicts: graphicsmagick-imagemagick-compat,
                 liboss4-salsa-dev,
                 libhildonmime-dev,
                 libvpx-dev (>= 1.8.0),
                 libosso-dev

Смотрим версии libvpx

#apt-cache policy libvpx5
libvpx5:
  Installed: 1.7.0-3+deb10u1
  Candidate: 1.7.0-3+deb10u1
  Version table:
 *** 1.7.0-3+deb10u1 500
        500 http://ftp2.de.debian.org/debian buster/main amd64 Packages
        500 http://security.debian.org/debian-security buster/updates/main amd64 Packages
        100 /var/lib/dpkg/status

# apt-cache policy libvpx6
libvpx6:
  Installed: 1.8.1-dmo1+deb10u1
  Candidate: 1.8.1-dmo1+deb10u1
  Version table:
 *** 1.8.1-dmo1+deb10u1 500
        500 http://www.deb-multimedia.org buster/main amd64 Packages
        100 /var/lib/dpkg/status

На всякий случай приведу версию самого firefox

# apt-cache policy firefox-esr
firefox-esr:
  Installed: 68.5.0esr-1~deb10u1
  Candidate: 68.5.0esr-1~deb10u1
  Version table:
 *** 68.5.0esr-1~deb10u1 500
        500 http://security.debian.org/debian-security buster/updates/main amd64 Packages
        100 /var/lib/dpkg/status
     68.4.1esr-1~deb10u1 500
        500 http://ftp2.de.debian.org/debian buster/main amd64 Packages

То есть это получается deb-multimedia подгадил. Два вопроса:

1) Как получается, что в системе может быть два разных libvpx (5 и 6), но только один libvpx-dev?

2) Как все-таки собрать firefox-esr? Ему каким-то образом надо подсунуть -dev от версии libvpx5. Кстати, и как ее поставить, кроме как скачиванием или через временное закрытие репы deb-multimedia?

В бинарном дистрибутиве заголовочные файлы (libvpx-dev) как бы не нужный мусор. Зачем мантейнеру делать возможность установки их от разных версий? Для сборки чего-либо принято делать отдельную систему — chroot руками, chroot через pbuilder или виртуалку. В неё не подключаются лишние репы и в основную систему «мусор» (пакеты только для сборки) не тянется. А то, что подключая дополнительные репы легко получить конфликт версий, мешающий сборке, это само собой разумеется.

mky ★★★★★ ()

Как получается, что в системе может быть два разных libvpx (5 и 6), но только один libvpx-dev?

Потому что в системе могут лежать рядом liba.so.5 и linba.so.6, а с a.h такой номер не пройдёт.

Как все-таки собрать firefox-esr?

systemd-nspawn

gremlin_the_red ()
Ответ на: комментарий от mky

Чего-то я думал есть вариант проще. Но вообще, это баг от deb-multimedia получается. Если уж делаете репы для замены в основной ветви stable, так не должны такие конфликты появляться.

praseodim ★★★★ ()