我为Red Hat Linux构建了一个名称服务交换模块。为什么NSS模块不得不在Linux上以.so.2结尾?
使用strace的,我已经确定OS会在不同的目录库中,但仅适用于具有扩展.so.2
(如libnss_xxx.so.2
,其中xxx
是服务的名称)的文件
为什么没有寻找.so
或.so.1
库?有没有保证它不会停止寻找.so.2
图书馆,并在未来开始寻找.so.3
图书馆?
编辑:http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html,说2
是“一个版本号,只要界面改变就增加”。 所以我猜测:
- NSS的版本需要版本2的库。
- 带更新的NSS的OS更新可能需要不同的版本号。
有人可以确认是否属实?