我有两个包:
- 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 东西来创建我的包。知道我做错了什么吗?
谢谢!