我可以安装 xerces 2.8 和 3.1 lib 和 dev,并轻松地在它们之间切换吗 - 也许使用 update-alternatives?

我可以安装 xerces 2.8 和 3.1 lib 和 dev,并轻松地在它们之间切换吗 - 也许使用 update-alternatives?

我从事两个不同的项目,使用两个不同的版本,我想在它们之间随意切换。

当我尝试安装包“libxerces-c-dev”时,它想要卸载“libxerces-c2-dev”。

我该如何使用更新替代方案并排设置这两个方案?

答案1

这就是我所做的;

  • 使用 synaptic 安装xerces-2
  • cd /usr/include
  • sudo cp -rp xercesc xercesc-28
  • 使用 synaptic 安装xerces-3
  • cd /usr/include
  • sudo mv xercesc xercesc-31
  • sudo ln -s xercesc-31 xercesc

以上创建了两个关键的符号链接;/usr/lib/libxerces-c.so/usr/include/xercesc。现在配置update-alternatives来为我管理这两个链接;

sudo update-alternatives --install /usr/lib/libxerces-c.so libxerces /usr/lib/libxerces-c.so.28 1 --slave /usr/include/xercesc xerces-dev /usr/include/xercesc-28

sudo update-alternatives --install /usr/lib/libxerces-c.so libxerces /usr/lib/libxercesc-3.1.so 2 --slave /usr/include/xercesc xerces-dev /usr/include/xercesc-31

这样我就可以在两个 libxerces 备选方案之间进行选择,并且 xerces-dev 选择也从属于该选择。所以,现在我可以使用以下命令在两者之间切换;

  • sudo update-alternatives --config libxerces

update-alternatives 提供了一个文本菜单,但我其实并不需要它,因为我知道“--install”命令中的选项编号。为了快速绕过它,我将这些添加到我的 ~/.bashrc 中

  • alias x28='echo "1" | sudo update-alternatives --config libxerces > /dev/null'
  • alias x31='echo "2" | sudo update-alternatives --config libxerces > /dev/null'

相关内容