Debian

僅適用於一位使用者的更新替代方案

  • September 29, 2021

我正在使用共享伺服器。在該伺服器上安裝了不同版本的 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 使用者能否使此首選項僅對我有效?

在 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

我知道這是一個老問題,但我想公然宣傳我剛剛發布的工具,它可以幫助您配置每個使用者(甚至每個 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邏輯已經建立。其他功能將在稍後推出。

引用自:https://unix.stackexchange.com/questions/61331