update-alternatives命令
快速复习:
增加:$sudo update-alternatives --install 程序生成的快捷方式的目标完整位置 程序名 程序其中一个版本的完整路径
配置:$sudo update-alternatives --config 程序名(如java)
删除:$sudo update-alternatives --remove 程序名 其中不要版本的完整路径
如下:
$sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-openjdk-i386/bin/java 1071
$sudo update-alternatives --config java
$sudo update-alternatives --remove java /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java
1,作用:
在linux上可能有多个版本的gcc或g++,Debian 系列发行linux 用 sudo update-alternatives 命令可以设置一个版本当设置默认程序。
多个版本的应用共用一个组名,如java,这个java 并不是一个真正的程序,它是一个快捷方式文件,配置默认程序,在 /etc/alternatives/ 下。
2,命令
在终端输入 update-alternatives --help
Usage: update-alternatives [<option> ...] <command> Commands:
--install <link> <name> <path> <priority>
[--slave <link> <name> <path>] ...
add a group of alternatives to the system.
--remove <name> <path> remove <path> from the <name> group alternative.
--remove-all <name> remove <name> group from the alternatives system.
--auto <name> switch the master link <name> to automatic mode.
--display <name> display information about the <name> group.
--query <name> machine parseable version of --display <name>.
--list <name> display all targets of the <name> group.
--get-selections list master alternative names and their status.
--set-selections read alternative status from standard input.
--config <name> show alternatives for the <name> group and ask the
user to select which one to use.
--set <name> <path> set <path> as alternative for <name>.
--all call --config on all alternatives. <link> is the symlink pointing to /etc/alternatives/<name>.
(e.g. /usr/bin/pager)
<name> is the master name for this link group.
(e.g. pager)
<path> is the location of one of the alternative target files.
(e.g. /usr/bin/less)
<priority> is an integer; options with higher numbers have higher priority in
automatic mode. Options:
--altdir <directory> change the alternatives directory.
--admindir <directory> change the administrative directory.
--log <file> change the log file.
--force allow replacing files with alternative links.
--skip-auto skip prompt for alternatives correctly configured
in automatic mode (relevant for --config only)
--verbose verbose operation, more output.
--quiet quiet operation, minimal output.
--help show this help message.
--version show the version.
其中4个很重要
- $sudo update-alternatives --install 程序生成的快捷方式的完整位置 程序名 程序其中一个版本的完整路径
$sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-openjdk-i386/bin/java 1071
会在/usr/bin 和 /etc/alternatives 下生成相应文件。
- $sudo update-alternatives --remove 程序名 其中不要版本的完整路径,如:
$sudo update-alternatives --remove java /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java
- $sudo update-alternatives --config 程序名 ,如:
$sudo update-alternatives --config java
- 彻底删除
$sudo update-alternatives --remove-all java
会把/etc/alternatives/java也删掉
3,示例
以共存多个jdk为例:
注意:
这种方法并不好,这种只能改一个程序的默认版本,如java,但是javac、javah等还是前一个版本的,要同样的操作java,javah,javac等才是完整的改jdk版本,改jdk版本用环境变量切换脚本比这个方法好。 参看 这里「linux 切换多个jdk脚本」。
现在系统中已经安装了openjdk7,同时又想与jdk8共存,按下方法操作:
第1步:安装jdk8
下载 jdk安装文件,解压并复制到 /usr/lib/jvm/ 下
第2步:把jdk8安装到java alternatives中
$sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_102/bin/java 2048
其中:
- /usr/bin/java 是个快捷方式,它是java的生成的快捷方式的完整路径,这里把它生成的在/usr/bin/java
- java 是多个java版本的组名
- /usr/lib/jvm/jdk1.8.0_102/bin/java 是其中jdk8版本java的完整路径。
- 2048 是jdk8版本的优先级 ,当命令链接已存在时,需高于当前值,因为当alternative为自动模式时,系统默认启用priority高的链接
第3步:配置
$sudo update-alternatives --config java
选择其中一个就可以 了。
注意:如果添加错了,可以用--remove 删除
$sudo update-alternatives --remove java /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java
4,疑问
如果在 .profile或者.bashrc里配置了JAVA_HOME,并加入了PATH,那么
alternatives指定的和 .profile或者.bashrc 认优先?如:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_102
export PATH=$JAVA_HOME/bin:$PATH:.
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
这要看PATH路径先后,
export PATH=$JAVA_HOME/bin:$PATH:. 就是/usr/lib/jvm/jdk1.8.0_102/bin/java 先。
export PATH=$PATH:$JAVA_HOME/bin:. 就是/usr/bin/java先
update-alternatives命令的更多相关文章
- alternatives命令使用方法
alternatives命令使用方法 alternatives是Linux下的一个功能强大的命令.仅仅能在root权限下运行.如系统中有几个命令功能十分相似,却又不能任意删除,那么能够用 altern ...
- 使用Linux的alternatives命令替换选择软件的版本
上周在安装搜索引擎Elasticsearch时,要求安装比较新的java 版本,我选择了java 1.8.0,安装java 成功后使用java -version 发现使用的版本仍旧是1.6.0, 查询 ...
- alternatives 命令学习
最经在捣鼓Cloudera的cdh ,发现里面使用了alternatives命令,由于不懂这个命令,让我走了好多弯路. 现在mark一下 ubuntu 12.04 系统的命令为:update-alte ...
- alternatives命令用法
alternatives是Linux下的一个功能强大的命令.只能在根权限下执行.如系统中有几个命令功能十分类似,却又不能随意删除,那么可以用替代指定一个全局的设置.alternatives常用于同一个 ...
- 关于Linux系统下jdk版本切换问题(alternatives命令的使用)
[root@danny lib]# cd /usr/lib/jvm [root@danny jvm]# [root@danny jvm]# ls java java--openjdk-.b13.el7 ...
- linux alternatives命令详解
alternatives是Linux下的一个功能强大的命令.只能在root权限下执行.如系统中有几个命令功能十分类似,却又不能随意删除,那么可以用 alternatives 来指定一个全局的设置. a ...
- 运行npm update等命令出错后如何分析问题根源
我今天工作时,在当前前端项目工作目录下执行命令npm update 结果遇到如下错误:registry error parsing json npm ERR! Unexpected token < ...
- npm update常用命令使用
一.更新 npm-check检查更新 npm install -g npm-check npm-check 2. npm-upgrade更新 npm install -g npm-upgrade np ...
- ceph-deploy install时,远端节点在执行apt-get update命令时失败
环境 OS:Ubuntu 16.04 背景 使用ceph-deploy部署Ceph集群,调用ceph-deploy install命令在远端节点安装ceph环境,执行apt-get update命令时 ...
- (笔记)Mysql命令update set:修改表中的数据
update set命令用来修改表中的数据. update set命令格式:update 表名 set 字段=新值,… where 条件; 举例如下:mysql> update MyClass ...
随机推荐
- ACdream 1104 瑶瑶想找回文串(SplayTree + Hash + 二分)
Problem Description 刚学完后缀数组求回文串的瑶瑶(tsyao)想到了另一个问题:如果能够对字符串做一些修改,怎么在每次询问时知道以某个字符为中心的最长回文串长度呢?因为瑶瑶整天只知 ...
- 插入多行数据和类似 select union 方法
Cite:http://blog.csdn.net/downmoon/article/details/5936706 [ruby] view plaincopyprint? Create table ...
- java中从Spring、Hibernate和Struts框架的action、service和dao三层结构异常处理体系设计
Spring的事务实现采用基于AOP的拦截器来实现,如果没有在事务配置的时候注明回滚的checked exception,那么只有在发生了unchecked exception的时候,才会进行事务回滚 ...
- 02---Net基础加强
将普通日期格式:“2014年7月8日”转换成汉字日期格式:“二零一四年七月八日”.(暂时不考虑10日,13日,23日) class Program { static void Main(string[ ...
- PAT乙级 1017. A除以B (20)
1017. A除以B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求计算A/B,其中A是不超过 ...
- TVideoGrabber的使用(一)捕捉摄像头
使用TVideoGrabber捕捉摄像头,相当容易,只需几句代码即可解决问题,首先我们新建一个工程,然后从控件面板上拉取一个 TVideoGrabber控件到窗体中,然后再在窗体上放置四个Button ...
- linux内核中jiffies的回绕问题【转】
本文转载自:http://blog.csdn.net/yuanlulu/article/details/6019862 ======================================== ...
- 【python cookbook】【数据结构与算法】12.找出序列中出现次数最多的元素
问题:找出一个元素序列中出现次数最多的元素是什么 解决方案:collections模块中的Counter类正是为此类问题所设计的.它的一个非常方便的most_common()方法直接告诉你答案. # ...
- dir cmd、the DIR Command、windows
原因 :如何在windows下的cmd.exe中只列出文件名? solve : dir \a:-d \b Extend Reading : dir [drive:][path][filename] ...
- 这个Glance的界面该怎么看出问题,为什么状态是SOCKT?
这个glance的状态图有问题吗?