Linux 板


LINE

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 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.172.27.91 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1663508649.A.82B.html
1F:→ obarisk: update-alternatives 09/18 22:08
2F:→ obarisk: 写一个脚本检查 EDITOR 环境变数给 editor 09/18 22:13
3F:→ obarisk: 此外,systemd edit 用的环境变数是 SYSTEMD_EDITOR 09/18 22:15
4F:→ ChakraLinux: 并没有,这是Debian系的手段好吗 09/18 22:55
差点忘了问, 请问大家, 是只有 Debian 才有 /etc/alternatives/ 吗?
5F:推 holishing: 刚刚查一下 RHEL 最近也出了类似的东西 09/18 23:31
6F:推 holishing: sudo EDITOR=vim systemctl edit servicename.service 09/19 00:05
7F:→ holishing: 刚试一下这样可以吃到 EDITOR 啊 (CentOS Stream 8) 09/19 00:06
我的 debian buster 也跟你一样 $ sudo ln -sf /bin/nano /etc/alternatives/editor 恢复原状 $ sudo EDITOR=vim systemctl edit systemd-udevd 是叫 vim(1) --- [1] $ sudo systemctl edit systemd-udevd 是叫 nano(1) -------------- [2] $ sudo echo $EDITOR 是 vim 好! 那,我一定漏掉了甚麽重要的东西没弄懂..... 请拯救我於水深火热~ systemctl(1) 接受 [1] 的 EDITOR=vim systemctl(1) 不认识, 或不接受 [2] bash 已经 export 的 EDITOR=vim 而同时, 如前述, crontab(1) 有 ack 我 export 的 EDITOR=vim p.s. 换句话说, 假设我用 C 写了一个程式, 放在 systemctl 的位置 我会有机会在程式里面「得知」"我" 是 invoked by [1] 还是 [2] 吗?
8F:→ obarisk: 楼上是对的 SYSTEMD_EDITOR 接下来是EDITOR 09/19 00:20
9F:→ obarisk: man systemctl edit 09/19 00:20
根据装在我这里的 manpage. $SYSTEMD_EDITOR Editor to use when editing units; overrides $EDITOR and $VISUAL. If neither $SYSTEMD_EDITOR nor $EDITOR nor $VISUAL are present or if it is set to an empty string or if their execution failed, systemctl will try to execute well known editors in this order: editor(1), nano(1), vim(1), vi(1). 我我对上一段的理解是, systemctl(1) 有意要尊重我的 $EDITOR 跟 $VISUAL 尽管我想不出 $SYSTEMD_EDITOR 存在的必要性跟正当性 (刚检查过, 我也没设) 我也尊重 systemctl 作者个人所偏好的 precedence (editor-nano-vim-vi) 但是, 现在, 似乎, systemctl(1) 的行为跟这一段告诉我的不太一致... ※ 编辑: cuello (218.172.27.91 台湾), 09/19/2022 17:07:47 ※ 编辑: cuello (218.172.27.91 台湾), 09/19/2022 18:09:52
10F:→ oToToT: 你可以想想看下面这几个的差别 09/19 21:48
11F:→ oToToT: sudo echo $EDITOR 09/19 21:48
12F:→ oToToT: sudo bash -c 'echo $EDITOR' 09/19 21:48
13F:→ oToToT: sudo EDITOR=vim bash -c 'echo $EDITOR' 09/19 21:48
14F:推 lantw44: sudo 预设会重设环境变数,除非你开 sudo -E 或在设定档 09/20 00:14
15F:→ lantw44: 里特别设定不要重设,不然大多数环境变数都不会经由 sudo 09/20 00:15
16F:→ lantw44: 往下传。另外 sudo echo "$EDITOR" 这个变数在你的 shell 09/20 00:15
17F:→ lantw44: 就已经展开了,实际传给 sudo 的就是 echo vim,无法用来 09/20 00:16
18F:→ lantw44: 确认 sudo 执行程式用的环境变数。 09/20 00:17
19F:推 lantw44: 另外 /etc/alternatives 不是设计来手动修改的,它有设定 09/20 00:21
20F:→ lantw44: 档,要改应该要用 update-alternatives 指令改。 09/20 00:21
21F:推 Hurricaneger: 4F为什麽你不更新了? 09/20 03:26
以上, 大家所看到的, 真的是一堆人耐心拯救一个执迷不悟的啊~ 而且除了仔细看一堆 "s..t" 而且还要花时间打子字 请接受赞美吧! 我来列出自己认为的罪状 A. 我抱怨 manpage 所写的跟程式行为不一! 其实正是我自己! --------------------------------------- 因为我文里虽然到处写的是: # systemctl edit systemd-udevd 看起来, 我并没有真的这麽做,而且一次也没有! 私底下真的做的是: $ sudo systemctl edit systemd-udevd 然後,自己一厢情愿地画上等号。然後, 别人也看不见你在搞啥~ 像这种错误,其实远比表面上看起来要严重的多! B. 我从来没有严肃对待过 sudo(8)! ---------------------------------------- 我跟 sudo(8) 从一开始,所维持的关系是暧眛不明, 得过且过的。本来给自己的理由是: 现在没空,先做更急迫的吧... 其实反而要浪费更多资源。 虽然,用 sudo(8) 时,一直隐约感觉少了甚麽..... 但是,就一直是绕道来避免眼前的「尴尬」... 真是,「弯道超渡」啊~ 这种态度,常远来看,并没有省到一点时间!刚好相反! C. 我隐约对 nano 有偏见,其实预设 nano 是合理的 ------------------------------------------------ 预设为大多数人的选择当然是最理性,最节能的做法。 D. 看到又多出了个甚麽 $SYSTEMD_EDITOR 而心生不满。 ------------------------------------------------- 没必要!结果是,它并没有干扰到我。可能是为了一个我 短期内还看不到的缘故吧。 E. 还有甚麽呢? ... 喔,我终於做了 $ sudo update-alternatives --config editor There are 4 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------ * 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode 3 /usr/bin/vim.basic 30 manual mode 4 /usr/bin/vim.tiny 15 manual mode Press <enter> to keep the current choice[*], or type selection number: 3 不适合自己这样做 $ sudo ln -sf /bin/vim /etc/alternatives/editor 这样不完整,例如 man editor 就没改到.... 不过看起来,我还是有做对一件事, 那就是临时决定跑上来「闲聊」 其实是「靠杯」~ ※ 编辑: cuello (218.172.27.91 台湾), 09/20/2022 10:04:41
22F:推 holishing: 我也是觉得一直钻 editor 要怎麽设定很烦, 所以就找一 09/21 19:15
23F:→ holishing: 个成功率看起来最高的方法,就无脑用下去了 09/21 19:15
24F:推 lantw44: SYSTEMD_EDITOR 存在的目的,应该是让你可以在不同的程式 09/21 21:04
25F:→ lantw44: 用不同的编辑器。前面的 SYSTEMD 就像是 namespace 的功 09/21 21:05
26F:→ lantw44: 能,让不同程式的设定不会互相干扰。就像是 git 也有 09/21 21:06
27F:→ lantw44: GIT_EDITOR,psql 也有 PSQL_EDITOR 一样。 09/21 21:06
28F:推 goldie: 对,透过 update-alternative 管理才是正途, 09/24 17:21
29F:→ goldie: 不建议手动改 symlink。 09/24 17:21







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP