一、功能作用

update-alternatives是dpkg的实用工具,用来维护系统命令的符号链接,以决定系统默认使用什么命令。

在Debian系统中,我们可能会同时安装有很多功能类似的程序和可选配置,如Web浏览器程序(firefox,konqueror)、窗口管理器(wmaker、metacity)和鼠标的不同主题等。这样,用户在使用系统时就可进行选择,以满足自已的需求。

但对于普通用户来说,在这些程序间进行选择配置会较困难。update-alternatives工具就是为了解决这个问题,帮助用户能方便地选择自已喜欢程序和配置系统功能。

最明显的场景,比如同时安装了OpenJDK和JDK,那么在命令行上使用java时就可以通过这个命令来进行切换。

二、位置

/usr/bin/update-alternatives

三、格式用法

update-alternatives [<选项> ...] <命令>

四、主要参数

Commands:
--install <link> <name> <path> <priority>
[--slave <link> <name> <path>] ...
在系统中加入一组替换项.
--remove <name> <path> 从 <名称> 替换组中去除 <路径> 项.
--remove-all <name> 从替换系统中删除 <名称> 替换组.
--auto <name> 将 <名称> 的主链接切换到自动模式.
--display <name> 显示关于 <名称> 替换组的信息.
--query <name> machine parseable version of --display <name>.
--list <name> 列出 <名称> 替换组中所有的可用替换项.
--get-selections list master alternative names and their status.
--set-selections read alternative status from standard input.
--config <name> 列出 <名称> 替换组中的可选项,并就使用其中哪一个,征询用户的意见.
--set <name> <path> 将 <路径> 设置为 <名称> 的替换项.
--all 对所有可选项一一调用 --config 命令. <link> 是指向 /etc/alternatives/<名称> 的符号链接>. (e.g. /usr/bin/pager)
<name> 是该链接替换组的主控名. (e.g. pager)
<path> 是替换项目标文件的位置. (e.g. /usr/bin/less)
<priority> 是一个整数,在自动模式下,这个数字越高的选项,其优先级也就越高. Options:
--altdir <directory> 指定不同的可选项目录.
--admindir <directory> 指定不同的管理目录.
--log <file> 设置log文件.
--force allow replacing files with alternative links.
--skip-auto skip prompt for alternatives correctly configured
in automatic mode (relevant for --config only)
--verbose 详尽的操作进行信息,更多的输出.
--quiet 安静模式,输出尽可能少的信息.
--help 显示本帮助信息.
--version 显示版本信息.

五、应用实例

1、列出可用的候选命令

update-alternatives --list java

2、显示和修改实际指向的候选命令,

sudo update-alternatives --config java

3、配置系统上所有的候选命令

sudo update-alternatives --all

4、显示一个命令链接的所有可选命令

update-alternatives --display editor

5、将 <名称> 的主链接切换到自动模式

sudo update-alternatives --auto editor

6、在系统中加入一组替换项

sudo update-alternatives --install x-cursor-theme x-cursor-theme /etc/X11/cursors/Gold.theme 70

参考:

http://www.lampblog.net/ubuntu/update-alternatives%E5%91%BD%E4%BB%A4/(以上内容转自此篇文章)

http://jingyan.baidu.com/article/ff42efa92a64c9c19e2202d2.html(配置Java的切换)

http://coolnull.com/3339.html

http://www.jb51.net/article/112372.htm

http://www.cnblogs.com/caidi/p/6009217.html

http://www.mamicode.com/info-detail-1144825.html

http://blog.csdn.net/zm_21/article/details/9495249

Linux中dpkg工具update-alternatives实现符号链接软件版本的切换(转)的更多相关文章

  1. [转帖]Linux中awk工具的使用

    Linux中awk工具的使用 2018年10月09日 17:26:20 谢公子 阅读数 2170更多 分类专栏: linux系统安全   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...

  2. linux中awk工具的使用(转)

    add by zhj: awk很强大,它是一个简单的编程语言,国外有本专门的书介绍它的用法.<effective awk programming>,它支持整型,字符串型,数组,变量在使用前 ...

  3. Linux 笔记 - 第十三章 Linux 系统日常管理之(四)Linux 中 rsync 工具和网络配置

    博客地址:http://www.moonxy.com 一.前言 rsync 命令是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件,可以理解为 remote sync(远程同步) ...

  4. linux中的工具

    远程连接linux的工具: 命令行: SecureCRT   putty  XShell(商业环境付费) 图形界面:WinSCP SecureFX 远程连接window服务器工具: FileZilla ...

  5. linux中grep工具

    正则表达式 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义.其实grep还可以找出符合某个模式(Pattern)的一类字符串.例如找出所有符合xxxxx@xxxx. ...

  6. Kali Linux中下载工具Axel的安装和使用

    前言: Axel是一个多线程的HTTP/FTP下载工具,支持断点续传. Axel的安装 apt-get install axel Axel的卸载 apt remove axel 安装完成之后输入 ax ...

  7. linux中awk工具的使用(转载)

    awk是一个非常好用的数据处理工具.相较于sed常常一整行处理,awk则比较倾向于一行当中分成数个“字段”处理,awk处理方式如下: $ awk '条件类型1{动作1} 条件类型2{动作2} ...' ...

  8. linux中awk工具的使用

    awk是一个非常好用的数据处理工具.相较于sed常常一整行处理,awk则比较倾向于一行当中分成数个“字段”处理,awk处理方式如下: $ awk '条件类型1{动作1} 条件类型2{动作2} ...' ...

  9. linux中find工具

    find 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只要你具有相应的权限. ...

随机推荐

  1. Python - for 循环

    Python 3  - for 循环 这次将为大家介绍 Python 3 中的 for 循环语句的使用 for 循环的一般格式如下: for <variable> in <seque ...

  2. Docker 修改已有镜像(转)

    1.当结束后,我们使用 exit 来退出,现在我们的容器已经被我们改变了,使用 docker commit 命令来提交更新后的副本. 其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样:- ...

  3. Controller中添加一个异步的Action

    给一段示例代码: public Task<ActionResult> TbReport(string code) { return Task.Factory.StartNew(() =&g ...

  4. golang 文件服务器

    在go语言中可以用一句代码做一个文件服务器.如果有很多文件需要通过网页来供其他人下载,可以使用这个方法. package main import ( "log" "net ...

  5. 大数据入门第二十天——scala入门(一)入门与配置

    一.概述 1.什么是scala  Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性.Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序. ...

  6. 20155211 Exp5 MSF基础应用

    20155211 Exp5 MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode? exploit:漏洞攻击.一个exploit程序肯定会触发系统的一个或多个 ...

  7. 20155227《网络对抗》Exp7 网络欺诈防范

    20155227<网络对抗>Exp7 网络欺诈防范 实践内容(3.5分) 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 (1)简单应用SET工具建 ...

  8. CS229笔记:线性回归

    线性回归问题 首先做一些符号上的说明: \(x^{(i)}\):特征(feature) \(y^{(i)}\):目标变量(target variables) \(\mathcal{X}\):特征空间 ...

  9. 一个可以代替冗长switch-case的消息分发小框架

    在项目中,我需要维护一个应用层的字节流协议.这个协议的每条报文都是一个字节数组,数组的头两个字节表示消息的传送方向,第三.四个字节表示消息ID,也就是消息种类,再往后是消息内容.时间戳.校验码等……整 ...

  10. 详解C#7.0新特性

    1. out 变量(out variables) 以前我们使用out变量必须在使用前进行声明,C# 7.0 给我们提供了一种更简洁的语法 “使用时进行内联声明” .如下所示: 1 var input ...