我从事两个不同的项目,使用两个不同的版本,我想在它们之间随意切换。
当我尝试安装包“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'