在 Debian(以及其他 Linux 发行版)里,getconf 本身没有“缓存”机制,它只是一个查询系统配置变量的命令行工具(来自 libc-bin 包)。
你可能是指下面几种情况之一,我分别说明:
getconf 每次执行都会查系统,不会自己缓存。如果你嫌慢,可以:
export PAGE_SIZE=$(getconf PAGE_SIZE)
之后用 $PAGE_SIZE 即可。
把结果写入文件:
getconf LONG_BIT > /var/cache/longbit
下次直接读文件。
getconf 读的是 系统/glibc 配置,不是它自己的配置。
常见可“影响 getconf 结果”的方式:
dpkg-reconfigure locales
或
export LANG=en_US.UTF-8
这些通常由内核和 glibc 决定,不能随便改:
_POSIX_PATH_MAXOPEN_MAX一般只能:
很多人把 getconf 和 getent 搞混。
如果你其实是想缓存用户信息 / 主机解析:
sudo apt install nscd
sudo systemctl enable --now nscd
配置:
/etc/nscd.conf
apt-get clean
apt-get update
这是软件包缓存,和 getconf 无关。
| 你的目的 | 正确做法 |
|---|---|
| 加快 getconf | 结果存变量/文件 |
| 改 getconf 输出 | 改系统/glibc/locale |
| 用户信息缓存 | nscd / sssd |
| 软件包缓存 | apt |
如果你能具体说:
“我想让 getconf XXX 返回不同的值”
或
“我在哪里看到 getconf 有缓存”
我可以给你更精确的答案。