如题 想判断是否为archlinux或其子版本 否则抛出错误
只知道一个不太好的解决方案
(shell-command-to-string "lsb_release -sd")
(executable-find "pacman")
我其实在想有没有不用shell-command的方案
改成自带的executable-find
函数了
真的秒改哈哈哈哈 我刚才看通知还是which
lsb_release - print distribution-specific information
没有, 但是你可以通过包管理器和`powershell.exe"特定
你是指 Emacs 变量的话,答案是没有。
system-configuration
;; => "x86_64-apple-darwin19.6.0"
变量 system-name
,不过已经废弃了,虽然还能用,可以用 system-name 函数来代替。
(system-name)
这个是hostname,可以自己改(我用这个来分辨是我的台式机还是我的笔记本)
感觉这个会把MSYS2也算进Archlinux的衍生版……毕竟人家也是用pacman的。感觉去看 /etc/os-release 会是另一个选择?
operating-system-release is a variable defined in ‘C source code’.
Its value is "5.9.2-arch1-1"
Documentation:
The release of the operating system Emacs is running on.
我用屏幕的宽度 (display-mm-width) 来区分是笔记本还是台机。如果外接显示器就区分不了。
operating-system-release is a variable defined in ‘C source code’.
Its value is “4.19.84-Microsoft-standard”
Documentation: The release of the operating system Emacs is running on.
和uname -r
等价
/etc/os-release
is systemd’s advisory
而且衍生发行版(比如Manjaro)只会说自己是XXX发行版不会说是派生自Arch
如果觉得判断错MSYS2可以先判断系统类型(system-type
)
恩,有道理。但我还是觉得判断“pacman”不是个优雅的方法。万一人家PATH下有个东西就叫pacman呢?毕竟还是有吃豆人这个东西的。
// 其实我想知道的是,楼主究竟为什么要判断是不是archlinux或者衍生发行版。是想知道pacman能不能用吗?
我想知道当前系统是否为arch及其衍生版本