dh_link не перезаписывает символическую ссылку другого пакета

У меня есть два пакета:

  • libsai-A
  • libsai-B

Оба этих пакета «предоставляют» виртуальный пакет с именем «libsai», но libsai-B может «заменять» (копировать) libsai-A. По какой-то причине не все символические ссылки в libsai-A перезаписываются при установке libsai-B.

Симлинки в пакете .deb libsai-A: ./usr/lib/x86_64-linux-gnu/libsai-0.9.6.so -> libsai-0.9.6.so.1.0.0 ./usr/lib/x86_64-linux-gnu/libsai-0.9.6.so.1 -> libsai-0.9.6.so.1.0.0

Симлинки в пакете .deb libsai-B: ./usr/lib/x86_64-linux-gnu/libsai-0.9.6.so -> ../test/dist/libsai-B-test.so ./usr/lib/x86_64-linux-gnu/libsai-0.9.6.so.1 -> ../test/dist/libsai-B-test.so

Первая символическая ссылка (libsai-0.9.6.so) перезаписывается корректно. А вот второй нет (libsai-0.9.6.so.1): root@TB:~# ls -alt /usr/lib/x86_64-linux-gnu/libsai* /usr/lib/x86_64-linux-gnu/libsai-0.9.6.so.1 -> libsai-0.9.6.so.1.0.0 <<<== WRONG LOCATION /usr/lib/x86_64-linux-gnu/libsai-0.9.6.so.1.0.0 /usr/lib/x86_64-linux-gnu/libsai-0.9.6.la /usr/lib/x86_64-linux-gnu/libsai-0.9.6.so -> ../test/dist/libsai-B-test.so
root@TB:~# dpkg -S /usr/lib/x86_64-linux-gnu/libsai-0.9.6.so.1 libsai-B: /usr/lib/x86_64-linux-gnu/libsai-0.9.6.so.1 root@TB:~# dpkg -S /usr/lib/x86_64-linux-gnu/libsai-0.9.6.so.1.0.0 libsai-A: /usr/lib/x86_64-linux-gnu/libsai-0.9.6.so.1.0.0

Похоже, что символическая ссылка (libsai-0.9.6.so.1) была обновлена, чтобы принадлежать libsai-B, но место назначения этой символической ссылки по-прежнему указывает на старое местоположение (файл, принадлежащий libsai-A).

Вот как выглядит мой файл libsai-B.link: usr/lib/test/dist/libsai-B-test.so usr/lib/x86_64-linux-gnu/libsai-0.9.6.so.1 usr/lib/test/dist/libsai-B-test.so usr/lib/x86_64-linux-gnu/libsai-0.9.6.so

Я использую Autotools для запуска всего материала dh_helper для создания моего пакета. Любая идея, что я делаю неправильно?

Спасибо!


person GHe    schedule 04.07.2018    source источник
comment
Если в вашем пакете есть строка Replaces:, это должно инициировать удаление пакета, который он заменяет. Правильно ли A удаляет свои символические ссылки при удалении пакета? (Извините, я как-то упустил из виду эту деталь, когда вы изначально разместили свой вопрос.)   -  person tripleee    schedule 27.07.2018


Ответы (1)


Перезапись символической ссылки другого пакета является нарушением политики Debian. Если вы хотите что-то заменить, вы должны явно переопределить это или использовать такие средства, как альтернативы.

person tripleee    schedule 06.07.2018
comment
Извините за задержку с ответом. Спасибо Вам за информацию. Можно ли где-нибудь узнать об этих правилах? Я использовал этот: debian.org/doc/manuals/maint-guide спасибо, г - person GHe; 27.07.2018
comment
Это и есть сама политика. Вероятно, что-то есть и в вики Debian. Возможно также проверить архивы debian-administration.org; сайт больше не обновляется, но раньше были простые уроки на разные темы. - person tripleee; 27.07.2018