今天因为特殊需求, 安装了一个较低版本的 gcc , 这样多个 gcc 版本之间的切换就成了问题
默认情况下, gcc 这种经常被各种版本弄来弄去的软件, 在系统中直接使用的通常都是个文件链接, 如下
$ ll /usr/bin/gcc lrwxrwxrwx 1 root root 21 11月 15 11:23 /usr/bin/gcc -> /usr/bin/gcc-4.6
所以按照常规的做法来说, 只要直接替换这个链接文件到你确实需要的文件就可以了, 但是话说回来偶尔切换一次两次还好, 如果频繁的切换, 终究还是有点 egg pain 的.XD 因此本篇的主角 update-alternatives
就要登场了. update-alternatives的使用也很简单, 以本篇的gcc为例, 首先我们来添加 gcc 的配置管理
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 50 $ sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/gcc-4.1.2 40
由上可见, –install 对应了4个参数, 分别代表着: 实际执行软链, 配置名称, 实际执行文件, 权重, 这样我们针对 gcc 的配置就算完成了, 接下来就是看看如何使用了, 使用如下:
$ sudo update-alternatives --config gcc 有 2 个候选项可用于替换 gcc (提供 /usr/bin/gcc)。 选择 路径 优先级 状态 ------------------------------------------------------------ * 0 /usr/bin/gcc-4.6 50 自动模式 1 /usr/bin/gcc-4.6 50 手动模式 2 /usr/local/bin/gcc-4.1.2 40 手动模式 要维持当前值[*]请按回车键,或者键入选择的编号:_
只要填入对应的编号, 配置就算完成了.
至此多版本管理软件 update-alternatives 我们就算会用了, 更多帮助请参见 update-alternatives –help
另:我们现在来观察一下, gcc 当前的状态:
$ ll /usr/bin/gcc lrwxrwxrwx 1 root root 21 11月 15 11:23 /usr/bin/gcc -> /etc/alternatives/gcc*
实际上是转为 gcc 生成了一个链接
参考资料: http://fhqdddddd.blog.163.com/blog/static/186991542010211102151596/