![如何将从属添加到现有的更新替代方案链接组?](https://linux22.com/image/1150656/%E5%A6%82%E4%BD%95%E5%B0%86%E4%BB%8E%E5%B1%9E%E6%B7%BB%E5%8A%A0%E5%88%B0%E7%8E%B0%E6%9C%89%E7%9A%84%E6%9B%B4%E6%96%B0%E6%9B%BF%E4%BB%A3%E6%96%B9%E6%A1%88%E9%93%BE%E6%8E%A5%E7%BB%84%EF%BC%9F.png)
我已经安装了 gcc-7 和 g++-7,使用以下答案 https://askubuntu.com/a/581497/333103。
然后我意识到虽然这将 g++ 版本从属于 gcc 版本,但我忘记为 gcov 版本添加从属。我如何将 gcov 添加为此链接组的从属?
我查阅了 update-alternatives 手册,但没有找到除了从头开始之外的方法。如果这种情况是可行的方法,那么我是否需要删除当前的 update-alternative 组才能重新开始?
(我在 Windows 上的 Ubuntu 上使用 Bash,所以是 16.04)
答案1
我在 Google 上搜索了这个问题,前三页只有两个相关结果。一个是这个没有答案的问题;另一个是 CentOS 错误跟踪器上的错误报告,update-alternatives
替换新的从属链接,而不是添加一个。
在--install
Debianupdate-alternatives
手册页部分,据说
如果指定的替代名称已经存在于替代系统的记录中,则所提供的信息将作为一组新的替代方案添加给该组。
但目前,恐怕我们只能通过一次性将所有从属服务器添加到现有链接组来实现这一点,包括原有的从属服务器和新添加的从属服务器。
对我来说,配置java
替代方案
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk-10/bin/java" 10 \
--slave "/usr/bin/jar" "jar" "/opt/jdk-10/bin/jar" \
--slave "/usr/bin/jarsigner" "jarsigner" "/opt/jdk-10/bin/jarsigner" \
--slave "/usr/bin/javac" "javac" "/opt/jdk-10/bin/javac" \
--slave "/usr/bin/javadoc" "javadoc" "/opt/jdk-10/bin/javadoc" \
--slave "/usr/bin/javap" "javap" "/opt/jdk-10/bin/javap" \
--slave "/usr/bin/javaws" "javaws" "/opt/jdk-10/bin/javaws"
您不需要先删除链接组,因为当前的行为是新添加的从属服务器完全替换原始从属服务器。请注意,您始终可以update-alternatives --display "$your_command"
安全地使用它来查看替代状态。