![仅针对一位用户的更新替代方案](https://linux22.com/image/28018/%E4%BB%85%E9%92%88%E5%AF%B9%E4%B8%80%E4%BD%8D%E7%94%A8%E6%88%B7%E7%9A%84%E6%9B%B4%E6%96%B0%E6%9B%BF%E4%BB%A3%E6%96%B9%E6%A1%88.png)
我正在使用共享服务器。该服务器上安装了不同版本的 Java:
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode
* 1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode
我想选择第二个选项,但如果我尝试这样做,它会抱怨我没有权限(我不是 root)。
有没有办法在“用户空间”中做到这一点?
Root 用户可以让此首选项仅对我有效吗?
答案1
在 Debian 及其衍生版本上,您可能应该使用update-java-alternatives
.无论如何,所有这些工具都与系统相关,而不是与用户相关。如果您想使用不同的 java,只需将这些行放入您的~/.profile
:
JAVA_HOME=/usr/lib/jvm/java-6-sun
JRE_HOME=/usr/lib/jvm/java-6-sun/jre
PATH=$JAVA_HOME/bin:"$PATH"
export JAVA_HOME JRE_HOME
答案2
我知道这是一个老问题,但我想对我刚刚发布的工具进行公然推广,该工具可以帮助您配置每个用户(甚至每个 shell!)的替代方案:
您可以初始化特定于 shell 的设置:
$ eval "$( my-alternatives init)"
或者您可以初始化长期用户级设置:
# run this once
$ eval "$( my-alternatives init ~/my-alts )"
# place this in your startup scripts
$ eval "$( my-alternatives shellenv ~/my-alts )"
配置完成后,设置用户本地替代方案非常简单:
# equivalent to 'update-alternatives --config <name>'
$ my-alternatives config <name>
笔记:在发布这篇文章时,我的选择刚刚被释放。这样,仅init
和config
逻辑就已经建立了。其他功能将在稍后推出。