将配置文件通过管道传输到 genkernel

将配置文件通过管道传输到 genkernel

我是一个 gentoo 用户,当新内核出现时,我已经有点厌倦了复制我的内核配置文件。我想知道是否可以将配置文件直接通过管道传输到 genkernel。像这样的东西:

sudo genkernel --install --clean --kernel-config=$(gunzip/proc/config.gz) --menuconfig all

或这个:

zcat /proc/config.gz | sudo genkernel --install --clean --kernel-config=- --menuconfig all

但我无法让它工作,因为我不太擅长管道/shell 脚本编写。有任何想法吗?

编辑:用$(gunzip /proc/config.gz)它说gzip: /proc/config: No such file or directory。但这是不正确的,因为zcat /proc/config.gz打印了我的所有设置

答案1

您的 shell 调用是错误的。

$(gunzip /proc/config.gz)-> 这尝试将 /proc/config.gz 更改为 /proc/config。没有任何内容发送到 stdout,但在这种情况下确实会触发 stderr,因为不允许在其中创建新文件/proc(即no such file or directory error)。

您必须告诉配置genkernel读取文件描述符(它不支持作为标准输入的快捷方式),因此您有两个选择:-

  1. 管道:
zcat /proc/config.gz | zcat /proc/config.gz |须藤 genkernel --安装 \
--clean --kernel-config=/dev/stdin --menuconfig 全部
  1. 流程替代:
sudo genkernel --install --clean \
--kernel-config=<(zcat /proc/config.gz) --menuconfig 全部

我建议后者,但也想指出,默认情况下,genkernel 将每个内核配置保存到/etc/kernels/,您可以从那里获取它们:

sudo genkernel --install --clean \
--kernel-config=/etc/kernels/kernel-config-$(uname -m)-$(uname -r) \
--菜单配置全部

(请注意,如果您更改配置选项并重建相同的内核,它会根据设计覆盖该目录中的先前文件)。

相关内容