我有一个C ++项目,它有15个外部库,并附带了一个包管理器。问题是包更改,一些库的最新版本破坏了东西(比如libblob)。我想知道是否存在一种不在某个软件包管理器上转发以安装我们的库并确保我们始终拥有所需版本的方法。
感谢您的建议。
答案 0 :(得分:4)
解决该问题的一种方法是静态链接您的库,但这会增加您的应用程序大小。
答案 1 :(得分:-2)
如果您不想使用包管理器,请不要使用包管理器。 apt是一个很好的工具,可以提供帮助,但您不需要使用它。 在Ubuntu上,您可能只想使用dpkg而不是apt,因此没有 依赖关系将自动更新,避免升级 导致问题的库。或者,直接安装所有内容 来源。如果你走那条路,请安装到/ usr / local或其他 非标准的位置。 (即,不要配置--prefix = / usr&& 制造&& make install。使用默认的/ usr / local或$ HOME作为前缀。)
请注意,这样做是一个令人发指的问题,你有更大的问题。如果你 依赖于不稳定的库,那么你可能应该考虑 删除对这些库的依赖。另外,混合使用dpkg apt会导致维护头痛。如果你这样做,只能在你的身上做到 发展框(例如,不在生产服务器上。)您的主要关注点 应该是让您的包正常运行包管理 系统,其中一部分可能涉及固定所有的包装 你依赖的图书馆。