Ubuntu 中可以安装多个版本的 libcurl 吗?
例如,假设我安装了版本 1.0,然后下载并安装了版本 1.1。有什么办法可以保留版本 1,并让多个应用程序使用版本 1?
答案1
这取决于上游的工作方式、您如何安装新版本以及您尝试用它做什么,但看看 libcurl 如何安装某些文件,基本答案是否定的。
答案2
如果 ABI 变化足够大,则可能会有多个版本。即,如果 so 版本足够高。
一个很好的例子是 libjpeg8 与 libjpeg62
libjpeg8 实际上是由 libjpeg-turbo8 提供的。
dpkg --listfiles libjpeg-turbo8 | grep so
/usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2
/usr/lib/x86_64-linux-gnu/libjpeg.so.8
libjpeg62 由 libjpeg62 提供
dpkg --listfiles libjpeg62 | grep so
/usr/lib/x86_64-linux-gnu/libjpeg.so.62.0.0
/usr/lib/x86_64-linux-gnu/libjpeg.so.62
这不是最好的例子,因为这是我当时唯一能想到的例子。由于 8 使用了涡轮增压,所以现在试着忽略这一点。
无论如何,62 与 8 不兼容,因此名称有所不同。
因此可能会有不同的版本,但通常只有在发生重大 ABI 变化时才需要。
在您的示例中,1.1 与 1 的差异并不大,而且很可能是二进制兼容的。不过,这有一个固定的规则,也许其他人可以添加更多细节来更好地理解它。