我有两个软件包:
- libsai-A
- libsai-B
的虚拟包,但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
我正在使用自动工具触发所有dh_helper的东西来创建我的包。知道我做错了什么吗?
谢谢!
覆盖另一个软件包的符号链接是违反 Debian 政策的。如果你想替换某些东西,你必须明确地覆盖它,或者使用像替代品这样的工具。