仅针对一位用户的更新替代方案

仅针对一位用户的更新替代方案

我正在使用共享服务器。该服务器上安装了不同版本的 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>

笔记:在发布这篇文章时,我的选择刚刚被释放。这样,仅initconfig逻辑就已经建立了。其他功能将在稍后推出。

相关内容