同样是编辑器,就有 nvi、vim、emacs、nano,而且我说的这些还只是一部分。大多数情况下,这样的功能相似的软件都是同时安装在系统里的,可以用它们的名称来执行。例如,要执行 vim,只要在终端下输入 vim 并按回车就可以了。不过,有些情况下我们需要用一个相对固定的命令调用这些程序中的一个。例如,当我们写一个脚本程序时,只要写下 editor,而不希望要为“编辑器是哪个”而操心。Debian 提供了一种机制来解决这个问题,而 update-alternatives 就是用来实现这种机制的。
1)首先要介绍的参数是 --display。它使我们可以看到一个命令的所有可选命令。执行:
update-alternatives --display editor
可以看到我的机器上的所有可以用来被 editor 链接的命令。
2)--config。这个选项使我们可以选择其中一个命令程序来作为editor,执行:
update-alternatives --config editor
首先,update-alternatives 在一般情况下是由postinst 和 prerm 这样的安装脚本自动调用的,所以一个 alternative 的状态有两种:自动和手动。每个 alternative 的初始状态都是自动。如果系统发现管理员手动修改了一个 alternative,它的状态就从自动变成了手动,这样安装脚本就不会更新它了。如果你希望将一个 alternative 变回自动,只要执行代码:
update-alternatives --auto editor
general name -- 这是指一系列功能相似的程序的“公用”名字(包括绝对路径),比如 /usr/bin/editor。
link -- 这是指一个 alternative 在 /etc/alternative 中的名字,比如 editor。
alternative -- 顾名思义,这是指一个可选的程序所在的路径(包括绝对路径),比如 /usr/bin/vim。
-auto,--display 和 --config 跟的都是 link。我们要说的第三个概念是优先级。这个比较简单,当然优先级越高的程序越好啦。最后一个概念是主和从的 alternative。想想看,你将 /usr/bin/editor 链接到了 vim,可是当你执行 man editor 时看到的却是 emacs 的 manpage,你会做何感想呢?这就引出了主和从 alternative 的概念了:当更新主的 alternative 时,从的 alternative 也会被更新。
另外两个选项:
第一个是 --install。它的格式是: 代码:
update-alternatives --install gen link alt pri [--slave sgen slink salt] ...
gen,link,alt,pri 分别是我们上面说过的。如果需要从的 alternative,你可以用--slave 加在后面。如果你在向一个已经存在的 alternative 组中添加新的 alternatives,该命令会把这些 alternatives 加入到这个已经存在的 alternative 组的列表中,并用新的可选命令作为新的命令;否则,将会建立一个新的自动的 alternative组。
呜呼!我加入了一个错误的 alternative。我不想要这个 alternative 了。在这种情况
下,可以执行下面的命令:代码:
update-alternatives --remove name path
分享到:
相关推荐
主要介绍了linux使用update-alternatives切换java版本的相关资料,需要的朋友可以参考下
主要介绍了linux软件版本管理命令update-alternatives使用详解的相关资料,需要的朋友可以参考下
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/jdk1.7.0_10/bin/javac 300 $ sudo update-alternatives --config java $ sudo update-alternatives --config javac 4.检测,输入...
部署python flask项目到云服务器 这是我第一次写博客,写的不好请多多见谅。 操作环境是ubuntu16.04,使用xshell和xftp工具,记得进入root用户,如果没有需要设置,怎么设置...sudo update-alternatives –install /
包中包含jdk-7u80-linux-x64.tar.gz和oracle-java7-jdk_7u80_amd64.deb,其中deb包是使用命令把tar.gz转换生成...sudo update-alternatives --list java sudo update-alternatives --config java 选择需要的编号即可。
#update-alternatives --install /usr/bin/java java /opt/java/jre1.7.0_05/bin/java 1 #update-alternatives --set java /opt/java/jre1.7.0_05/bin/java #mkdir -p /root/.mozilla/plugins #ln -sf /opt/java/jre...
1.sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/jdk1.6.0_30/bin/java 300 2. sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/jdk1.6.0_30/bin/javac 300 3. sudo ...
1.sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk/jdk1.6.0_30/bin/java 300 2. sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/jdk1.6.0_30/bin/javac 300 3. sudo ...
burpsuite_pro_v2.0.11beta版,可以在Windows和Kali 2.0中使用。 在windows下无需单独安装JDK或JRE环境,包中集成了。...使用英文版的同学,请使用update-alternatives --display java查看过滤选项,修改即可。
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_06/bin/javac 1 sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_06/bin/java 1 sudo update-alternatives --config...
node_arm(Raspbian Wheezy)需要GCC v4.8或更高版本选项1(安装较新的版本): sudo apt-get updatesudo apt-get install gcc-4.8 g++-4.8sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 ...
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/...
sudo apt-get install g ++-4.7 sudo update-alternatives --install / usr / bin / gcc gcc /usr/bin/gcc-4.6 60 --slave / usr / bin / g ++ g ++ /usr/bin/g++-4.6 sudo update-alternatives --install / usr / ...
update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-sun/bin/java 300 update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-sun/bin/javac 300 update-alternatives --...
要获取一个并将其设置为默认编译器: $ sudo apt-get install g++-4.7$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6$ sudo update-...
使用以下脚本更新您的Java语言sudo update-alternatives --install“ / usr / bin / java”“ java”“ /usr/lib/java/jdk1.7.0_65/bin/java” 1 sudo update-alternatives- -install“ / usr / bin / javac”“ ...
2) 查询JRE目录:update-alternatives --config java 如图,获得目录:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java 3) 获取字体gbsn00lp.ttf: 部分系统默认提供此字体,...
update-alternatives 应该整理多个版本以使其正常工作。 无论如何,您实际上并不需要同时安装多个版本! update-alternatives --config java update-alternatives --config javac 对于上述每个命令,您将得到如下...
通俗的来说,你可以通过 update-alternatives 命令从系统范围设置程序的版本。如果你希望可以在不同目录动态设置不同的程序版本,该如何完成呢?在这种情况下, alt 工具可以大显身手。 alt 是一个命令行工具,可以...