Речь идет о пакете samba-3.6.7. Я успешно собрал пакет, но при попытке установить он возвращается,
error: failed dependencies:
libtalloc.so.1 is needed by samba-3.6.7
Понятия не имею, почему это происходит. libtalloc.so.1
предоставляется моим текущим пакетом samba (который я заменяю), но эта новая samba предоставляет libtalloc.so
и libtalloc.so.2
. Почему это все еще зависит от libtalloc.so.1
и как это исправить?
Создайте свои RPM, используя mock
. Это строится внутри chroot, содержащего только необходимые пакеты для построения RPM, и помогает предотвратить подобные ситуации.
Отредактируйте файл спецификации и удалите запись required для libtalloc.so.1. Восстановите, и он должен работать. Ошибки в этих метаданных могут быть довольно сложно отследить.
libtalloc.so.1
был добавлен автоматическим генератором зависимостей, который не является безошибочным.
Другая возможность заключается в том, что что-то в вашей сборке действительно связано с libtalloc.so.1
вот почему так важны среды сборки.
Предполагая, что автоматический генератор зависимостей не работает, и вы хотите исправить это, вы делаете это, переопределив __perl_requires
(в зависимости от версии rpm) в вашем файле спецификации:
source1: %{name}-filter-requires.sh
%define __perl_requires %{SOURCE1}
затем %{name}-filter-requires.sh
является:
#!/bin/sh
/usr/lib/rpm/perl.req $* |\
sed -e '/libtalloc.so.1/d'