询问/etc/lsb-release被修改的原因及如何复现dpkg交互提示以测试脚本
询问/etc/lsb-release被修改的原因及如何复现dpkg交互提示以测试脚本
嘿,这个场景我之前调试脚本时也碰到过,刚好能帮你理清原因和复现方法!
首先说下为什么会弹出那个提示:/etc/lsb-release是属于lsb-release包的配置文件,你之前手动或者通过脚本修改过它的内容。当你运行dpkg --configure -a(或者安装/更新这个包)时,dpkg会检测到本地修改后的文件和包自带的原始版本存在差异,于是就弹出交互提示让你选择是保留自己的修改,还是替换成包维护者提供的版本。
接下来是最关键的复现步骤,完全模拟真实场景来测试你的脚本:
- 第一步:先备份当前的配置文件,避免测试过程中搞坏系统:
sudo cp /etc/lsb-release /etc/lsb-release.bak - 第二步:手动修改
/etc/lsb-release的内容,随便改一行就行,比如修改描述字段:sudo sed -i 's/DISTRIB_DESCRIPTION=".*"/DISTRIB_DESCRIPTION="Ubuntu 22.04.3 LTS (My Custom Edit)"/' /etc/lsb-release - 第三步:下载当前系统中
lsb-release包的deb文件(不用更新整个系统,只针对单个包操作):sudo apt-get download lsb-release - 第四步:用dpkg安装下载好的deb包,这时候就会触发你熟悉的那个交互提示了:
sudo dpkg --install ./lsb-release_*.deb
测试完成后,记得把系统还原回去:
sudo cp /etc/lsb-release.bak /etc/lsb-release
如果你想更快捷地触发提示,也可以用dpkg --force-confask lsb-release命令,但上面的步骤更贴近你之前遇到的真实场景哦。
备注:内容来源于stack exchange,提问作者hellojoshhhy
相关产品推荐
相关产品推荐

