如何使用每个用户的更新替代方案

如何使用每个用户的更新替代方案

有没有办法使用 update-alternative“用户范围”?我的意思是,为每个用户设置首选项会很棒。

Debian 是否提供了一些相关工具?

答案1

bin例如,每个用户都可以创建自己的目录,~/bin并将其放在自己的目录中PATH。在该目录中,他们可以拥有指向自己首选替代方案的符号链接。

我不知道他们是否可以使用该update-alternative命令来更新他们自己的符号链接目录,或者他们是否必须手动执行此操作。

答案2

是的,你绝对可以update-alternatives自己使用。例如,我在 下安装了不同的 LLVM 版本。我可以像这样~/.local/llvm-VERSION将二进制链接安装到~/.local/bin(在我的 中):$PATH

alias update-my-alternatives='update-alternatives --altdir ~/.local/etc/alternatives --admindir ~/.local/var/lib/alternatives'
mkdir -p ~/.local/var/lib/alternatives ~/.local/etc/alternatives
version=3.9.0
slaves=""
for b in llvm-${version}/bin/*; do \
    slaves+=" --slave $HOME/.local/bin/$(basename $b) $(basename $b) $(readlink -f $b)" \
done
update-my-alternatives --install $HOME/.local/bin/llvm-config llvm $(readlink -f $(dirname $b)/llvm-config) ${version//./0} ${slaves}

我可以重复上一个命令来获得新版本并update-my-alternatives --config llvm在版本之间进行选择。

如果您想使用预先存在的系统替代方案,您可以将所有文件复制到/var/lib/alternatives并将~/.local/var/lib/alternatives第一部分中的所有系统路径更改为用户路径(例如更改/usr/home/username/.local)。

答案3

对于使用替代方案的应用程序(并且确实安装了替代方案),不想使用系统默认值的用户始终可以简单地使用非默认替代方案的正确名称或完整路径,或者设置alias否决符号链接。

答案4

我知道这是一个老问题,但是我想公开宣传一下我刚刚发布的可以帮助您配置每个用户(甚至每个 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

相关内容