dh_link不会覆盖另一个软件包的符号链接

时间:2018-07-04 19:49:49

标签: debian deb debhelper

我有两个包裹:

  • libsai-A
  • libsai-B

这两个软件包都“提供”了一个名为“ libsai”的虚拟软件包,但是libsai-B可以“替换”(复制)libsai-A。由于某些原因,安装libsai-B时,并不是所有libsai-A中的符号链接都被覆盖。

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
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 :(得分:1)

覆盖另一个软件包的符号链接违反了Debian策略。如果要替换某些内容,则必须显式覆盖它,或使用类似替代项的功能。