dkms3.0与之前版本区别

yuanheci 2025年06月13日 22次浏览

DKMS 3.0 中 REMAKE_INITRD 被弃用的链接:
火山引擎:veLinux 2.0对比1.0的差异说明
https://www.volcengine.com/docs/6396/1258076”

Deprecated feature: REMAKE_INITRD on dkms install on Fedora 35 · Issue #12867 · openzfs/zfs · GitHub:从该链接的讨论中可以看到,在 Fedora 35 等系统中使用 DKMS 3.0 安装软件包时,会出现 “Deprecated feature: remake_initrd” 的提示,表明该功能已被弃用。
https://github.com/openzfs/zfs/issues/12867

https://www.man7.org/linux/man-pages/man5/deb-triggers.5.html#:~:text=A package declares its relationship to some trigger,creation). This file contains directives%2C one per line.


DKMS3.0关键参数:
核心区别
image-1749826607609

DKMS 3.0 的自动处理机制
DKMS 3.0 默认通过 auto-reattach 功能自动处理 initramfs 更新,无需额外配置。但如果需要更精细的控制(例如仅在特定条件下更新),可以结合 deb trigger 使用。

<1> 创建 deb trigger 的方法
如果你选择手动管理 trigger,可以在 DKMS 模块的 debian/ 目录中添加触发器规则。以下是一个示例:
bash

在 DKMS 模块的 debian 目录中创建 triggers 文件
echo "activate-noawait update-initramfs" > debian/triggers

<2> 结合 DKMS 和 deb 包的最佳实践
推荐在 DKMS 模块的 postinst 脚本中调用 update-initramfs,而不是依赖 deb trigger

#!/bin/sh

set -e

case "$1" in
  install|upgrade)
    # 执行 DKMS 安装
    dkms install -m 模块名 -v 版本号
    
    # 手动触发 initramfs 更新
    update-initramfs -u -k all
    ;;
  *)
    echo "postinst called with unknown argument \`$1'" >&2
    exit 1
    ;;
esac

exit 0