我最近需要将 debian squeeze 从 boost 1.42 更新到 1.48。这涉及删除当前的 boost 1.42 包并从 subversion 安装 1.48 包。
不幸的是,这破坏了一些 Debian 依赖关系 - 有没有办法在包管理器数据库中输入一个条目来说明已安装 boost 1.48,这样系统就不会尝试安装 boost 1.42 库,或者这只是非常反 Debian?
有一些包可以帮助解决这个问题,例如equivs包。
但是,如果您有链接到依赖项,我不确定您是否可以解决这个问题。某些依赖于特定版本的应用程序会崩溃。
您通常可以并排安装几个打包的 Boost 版本,请参阅下面的 1.40 和 1.42 版本的序列化库,以及表明当前开发将使用 1.42 的包:
edd@max:~$ dpkg -l | grep libboost-serialization | cut -c-70
ii libboost-serialization-dev 1.42.0.1ubuntu1
ii libboost-serialization1.40.0 1.40.0-6ubuntu1
ii libboost-serialization1.42-dev 1.42.0-4ubuntu2
ii libboost-serialization1.42.0 1.42.0-4ubuntu2
edd@max:~$
当我需要更新的软件包时,我有时会从较新的 Debian 版本中“借用”软件包并在本地构建它们。
当然/usr/local/lib
,在包管理系统赶上之前,您总是可以安装本地副本。