![预先植入 debconf 不会影响 libdvd-pkg 的安装](https://linux22.com/image/1154811/%E9%A2%84%E5%85%88%E6%A4%8D%E5%85%A5%20debconf%20%E4%B8%8D%E4%BC%9A%E5%BD%B1%E5%93%8D%20libdvd-pkg%20%E7%9A%84%E5%AE%89%E8%A3%85.png)
我在这里提出这个问题是因为我不确定这是一个错误还是我疯了。但是当我安装新的 Ubuntu 桌面时,我喜欢使用大量可复制和粘贴的行来快速安装有用的东西...例如..
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula boolean true | sudo debconf-set-selections
sudo apt-get -y install ttf-mscorefonts-installer
效果很好。
但是当涉及到 libdvd-pkg 时,我就是无法让它闭嘴(我不想使用“DEBIAN_FRONTEND=noninteractive”)。以下是我尝试过的……
echo libdvd-pkg libdvd-pkg/first-install note | sudo debconf-set-selections
echo libdvd-pkg libdvd-pkg/post-invoke_hook-install boolean true | sudo debconf-set-selections
sudo apt-get -y install libdvd-pkg
您总是会看到这个屏幕...
我已经在 12 多台机器上看到这种情况,所以这不仅仅是一次性现象。
顺便说一下,这是在 Ubuntu 16.04 上。
你知道我为了试图消除这种影响可能做错了什么吗?
我检查了 .deb 包中的 DEBIAN/templates 文件,没有发现任何异常。
答案1
第一次手动安装,然后使用它debconf-get-selections | grep "^libdvd-pkg"
来查看 debian confirmed 使用了什么。之后,将结果放入脚本中并debconf-set-selections
在安装软件包之前执行。
1)在已安装的机器上运行 deb-conf-get-selections:
#$ debconf-get-selections | grep "^libdvd-pkg"
libdvd-pkg libdvd-pkg/build boolean true
libdvd-pkg libdvd-pkg/upgrade note
libdvd-pkg libdvd-pkg/post-invoke_hook-remove boolean false
libdvd-pkg libdvd-pkg/post-invoke_hook-install boolean true
libdvd-pkg libdvd-pkg/first-install note
2)安装之前,将以下几行放入安装程序脚本中:
#!/bin/bash
echo "Installing libdvd-pkg ... "
cat <<EndOfConfig | sudo debconf-set-selections
libdvd-pkg libdvd-pkg/build boolean true
libdvd-pkg libdvd-pkg/upgrade note
libdvd-pkg libdvd-pkg/post-invoke_hook-remove boolean false
libdvd-pkg libdvd-pkg/post-invoke_hook-install boolean true
libdvd-pkg libdvd-pkg/first-install note
EndOfConfig
sudo apt-get install libdvd-pkg
完毕!
您可以在所有具有对话框和用户交互的包中执行此操作。
答案2
export DEBIAN_FRONTEND=noninteractive
sudo DEBIAN_FRONTEND=noninteractive apt -yq install libdvd-pkg
sudo bash /usr/lib/libdvd-pkg/b-i_libdvdcss.sh