我的自动构建服务器运行依赖于Apache Ant的作业。脚本调用apt-get install ant
. Ant 取决于openjdk-6-jre-headless
哪个运行update-alternatives
使自己成为默认 JDK(在此过程中重写我的符号链接)。我已经安装了 Oracle JDK(手动)并且不想update-alternatives
运行。update-alternatives
每次发生这种情况时,我都无法手动恢复。
去年有人试图纠正这个问题,但被拒绝了:http : //bugs.debian.org/cgi-bin/bugreport.cgi?bug=678195
我如何防止openjdk-6-jre-headless
调用,update-alternatives
或者更糟糕的情况,我如何在安装过程之前查找值并在事后恢复它?
更新:我在这里提交了一个新的错误报告。我将不胜感激您的支持。
因为 ubuntu 捆绑了不同的版本,所以为什么update-alternatives
不能使用有什么特别的原因Python
吗?
我刚刚在数字海洋服务器上安装了 ubuntu 16.04.2 32 位。
Digital Ocean 对 ubuntu 安装进行了一些调整,例如他们安装了完整的 vim 作为他们在 VPS 中使用的块映像的一部分。我现在想使用这个 - 预安装 - vim 作为我的默认编辑器。所以我跑
sudo update-alternatives --config editor
Run Code Online (Sandbox Code Playgroud)
这给了这个菜单
$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press <enter> to keep the current choice[*], or type selection …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从 Bionic 中的 Java 开发工具包 (JDK) 8 切换到 JDK 11。安装很顺利:
$ sudo apt-get install openjdk-11-jdk
$ sudo update-java-alternatives -l
java-1.11.0-openjdk-amd64 1101 /usr/lib/jvm/java-1.11.0- openjdk-amd64
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
Run Code Online (Sandbox Code Playgroud)
所以我想我可以通过以下方式切换:
$ sudo update-java-alternatives -s java-1.11.0-openjdk-amd64
Run Code Online (Sandbox Code Playgroud)
然而,这会返回:
update-alternatives: error: no alternatives for mozilla-javaplugin.so
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-11-openjdk-amd64/lib/IcedTeaPlugin.so
Run Code Online (Sandbox Code Playgroud)
该文件确实不存在,但 /usr/lib/jvm/java-1.8.0-openjdk-amd64 中也不存在。mozilla-javaplugin.so 也是如此。那么为什么 update-alternatives 会抱怨它不可用,我怎样才能让它停止关心呢?
我正在研究 Ubuntu 如何选择默认编辑器,我注意到为了设置默认编辑器进行编辑crontabs
,我使用while 来设置我使用的select-editor
默认编辑器。有谁知道这两者之间的具体区别吗?有很多文档单独解释了每一项,但我无法弄清楚两者之间的区别或为什么我必须同时设置两者。visudo
update-alternatives --config editor
为了完整起见,我想指出我知道如何通过设置 EDITOR 和 VISUAL 环境变量来设置默认编辑器。
我安装了java 7。使用 PPA 存储库,我添加了 java 8。
sudo apt-get install oracle-java8-installer
Run Code Online (Sandbox Code Playgroud)
这使 java 8 成为默认值。因此,我尝试使用 update-alternatives 将 java 7 设为默认值。
sudo update-alternatives --set java /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Run Code Online (Sandbox Code Playgroud)
那导致
java -version
Run Code Online (Sandbox Code Playgroud)
失败。
看起来问题可能在于 Java 的替代品列表很长,我需要将它们一起移动。有办法吗?
我刚刚安装了 Ubuntu GNOME 16.04,在尝试添加terminix
为默认终端模拟器时,我搞砸了非常糟糕的x-terminal-emulator
替代方案,完全是我的错!
我输入了update-alternatives --install
错误的命令,现在我没有其他选择了,这就是我现在得到的:
$ sudo update-alternatives --config x-terminal-emulator
There is only one alternative in link group x-terminal-emulator (providing /usr/bin/x-terminal-emulator): /usr/bin/gnome-terminal.wrapper
Nothing to configure.
update-alternatives: warning: forcing reinstallation of alternative /usr/bin/gnome-terminal.wrapper because link group x-terminal-emulator is broken
update-alternatives: warning: not replacing /usr/bin/x-terminal-emulator with a link
Run Code Online (Sandbox Code Playgroud)
幸运的是,唯一的问题是我无法使用Ctrl+ Alt+T快捷方式打开终端(或任何与此相关的终端模拟器)。Super使用应用程序名称调用它们并进行搜索是没有任何问题的。就像我说的,这不是一个大问题,但它让我很困扰。
我尝试过重新安装模拟器,但没有成功。如果您知道任何可能解决我的困境的方法,我将非常感激!
Ubuntu 14.04
mvn
通过 `update-alternatives安装和更改版本后,配置保持不变。
脚步
安装新版本 mvn
sudo update-alternatives --install /usr/bin/mvn mvn /opt/maven/apache-maven-3.5.0/bin/mvn 100
Run Code Online (Sandbox Code Playgroud)检查替代品
$ sudo update-alternatives --config mvn
There are 2 choices for the alternative mvn (providing /usr/bin/mvn).
Selection Path Priority Status
------------------------------------------------------------
* 0 /opt/maven/apache-maven-3.3.9/bin/mvn 100 auto mode
1 /opt/maven/apache-maven-3.3.9/bin/mvn 100 manual mode
2 /opt/maven/apache-maven-3.5.0/bin/mvn 10 manual mode
Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /opt/maven/apache-maven-3.5.0/bin/mvn to provide /usr/bin/mvn (mvn) in manual mode
Run Code Online (Sandbox Code Playgroud)更换新的替代品
$ sudo update-alternatives --config mvn …
Run Code Online (Sandbox Code Playgroud)我已经使用https://askubuntu.com/a/581497/333103 上的答案安装了 gcc-7 和 g++-7 。
然后我意识到,虽然这将 g++ 版本从属于 gcc 版本,但我忘记为 gcov 版本添加一个从属。如何将 gcov 作为从属添加到此链接组?
我检查了这个人的更新替代方案,但我没有看到一种方法,而不仅仅是从头开始。如果这种情况是这样做的,那么我是否需要删除当前的更新替代组才能重新开始?
(我在 Windows 上的 Ubuntu 上使用 Bash,所以是 16.04)
我正在尝试学习如何快速更改我的系统使用的 Java 版本,如本文所述:https : //aboullaite.me/switching-between-java-versions-on-ubuntu-linux/ 我使用过 apt-安装 openjdk-8-jdk,当我运行 sudo update-alternatives --config java 时,它看起来像这样:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode
* 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个可以在版本之间切换的脚本,如文章中所述。(这是文章中的脚本:
sudo update-java-alternatives -s java-8-oracle
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
export PATH=$PATH:$JAVA_HOME
Run Code Online (Sandbox Code Playgroud)
但是当我尝试时,会发生这种情况:
sudo update-java-alternatives -s java-8-openjdk-amd64
update-java-alternatives: file does not exist: /usr/lib/jvm/.java-8-openjdk-amd64.jinfo
Run Code Online (Sandbox Code Playgroud)
如何在没有错误的情况下更新 java-alternatives?我应该跳过那条线吗?
java ×3
openjdk ×3
14.04 ×2
apt ×2
command-line ×2
alternative ×1
apt-cache ×1
cron ×1
gcc ×1
installation ×1
python ×1
visudo ×1