[闲聊] 如何尊重 $EDITIR $VISUAL alternatives?

楼主: cuello (cuello)   2022-09-18 21:44:07
Hi,
最近有次闲逛, 逛到了 /etc/alternatives/
看到里面有个 editor -> /bin/nano
就马上想起了前好一阵子, 当我在
# vim /etc/systemd/system/systemd-udevd.service.d/override.conf
板上有人提醒我, 应该
# systemctl edit systemd-udevd
只是, systemd 好像无意尊重我选择的 editor
因为我的 $EDITOR 跟 $VISUAL 都设为 vim
而且, crontab -e 很配合我的选择.
但是, systemctl 却坚持要叫用 nano(1)
我试过把 EDITOR 改为 nono, crontab -e 就也叫的 nano(1).
这很好啊~ 不是吗? 但是 systemd 就偏偏不配合...
当时, 板上也似乎没有人想到是什么原因它一定要 nano...
最近碰巧撞到了 /etc/alternatives/editor 就随手
# ln -sf /bin/vim /etc/alternatives/editor
果然, systemctl(1) 就注意到了我要的是 vim...
看起来, 这似乎是近代 Linux 的另外一个“选择途迳”
把它们全部集中在 /etc/alternatives 来管理
想, 其实也是个不错的办法... 可是, 你知道我的问题:
Given 我的 1. EDITOR=vim 2. VISUAL=vim
3. /etc/alternatives/editor -> /bin/nano
那么, 当一个 developer 需要叫用 editor
而系统环境却各有不同意见, 他该怎么做才好?
(P.S. 我跑的是 Debian buster)
regards
作者: obarisk (OSWALT)   2022-09-18 22:08:00
update-alternatives写一个脚本检查 EDITOR 环境变量给 editor此外,systemd edit 用的环境变量是 SYSTEMD_EDITOR
作者: ChakraLinux (GNU/Chakra Project)   2022-09-18 22:55:00
并没有,这是Debian系的手段好吗
作者: holishing   2022-09-18 23:31:00
刚刚查一下 RHEL 最近也出了类似的东西sudo EDITOR=vim systemctl edit servicename.service刚试一下这样可以吃到 EDITOR 啊 (CentOS Stream 8)
作者: obarisk (OSWALT)   2022-09-19 00:20:00
楼上是对的 SYSTEMD_EDITOR 接下来是EDITORman systemctl edit
作者: oToToT (屁孩)   2022-09-19 21:48:00
你可以想想看下面这几个的差别sudo echo $EDITORsudo bash -c 'echo $EDITOR'sudo EDITOR=vim bash -c 'echo $EDITOR'
作者: lantw44 (#######################)   2022-09-20 00:14:00
sudo 默认会重设环境变量,除非你开 sudo -E 或在设定档里特别设定不要重设,不然大多数环境变量都不会经由 sudo往下传。另外 sudo echo "$EDITOR" 这个变量在你的 shell就已经展开了,实际传给 sudo 的就是 echo vim,无法用来确认 sudo 执行程式用的环境变量。另外 /etc/alternatives 不是设计来手动修改的,它有设定档,要改应该要用 update-alternatives 指令改。
作者: Hurricaneger (裤袜脱落大尉)   2022-09-20 03:26:00
4F为什么你不更新了?
作者: holishing   2022-09-21 19:15:00
我也是觉得一直钻 editor 要怎么设定很烦, 所以就找一个成功率看起来最高的方法,就无脑用下去了
作者: lantw44 (#######################)   2022-09-21 21:04:00
SYSTEMD_EDITOR 存在的目的,应该是让你可以在不同的程式用不同的编辑器。前面的 SYSTEMD 就像是 namespace 的功能,让不同程式的设定不会互相干扰。就像是 git 也有GIT_EDITOR,psql 也有 PSQL_EDITOR 一样。
作者: goldie (阿良)   2022-09-24 17:21:00
对,透过 update-alternative 管理才是正途,不建议手动改 symlink。

Links booklink

Contact Us: admin [ a t ] ucptt.com