dh_link не перезаписывает символическую ссылку другого пакета - PullRequest
0 голосов
/ 04 июля 2018

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

  • libsai-A
  • libsai-B

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

Символические ссылки в пакете libsai-A .deb: ./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

Символические ссылки в пакете libsai-B .deb: ./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<br> 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 для создания моего пакета. Есть идеи, что я делаю не так?

Спасибо!

1 Ответ

0 голосов
/ 06 июля 2018

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

...