自动接受最终用户许可协议(EULA)/许可协议的脚本

我正在尝试自动化一个软件包(steamcmd)的脚本。

案例是脚本的用户已经事先被告知他/她同意了哪个最终用户许可协议。

好了,既然这个问题解决了,下面是一些已经适用于此的软件包:

没有人愿意解释他们是如何找出每个软件包独立语法的,但我希望最终能弄清楚这个问题,这样任何使用这个ask ubuntu问题的人都可以自动安装软件包N。

据我所了解,语法应该类似于:

 echo PACKAGENAME PACKAGENAMEorUSERSPACE/accepted-PACKAGENAME-EULAPART select true | sudo debconf-set-selections
 sudo apt install PACKAGENAME

虽然我迄今为止无法使其与许多变体一起正常工作:

 echo steamcmd steamcmd/accepted-steamcmd-eula select true | sudo debconf-set-selections
1个回答

事实证明,只需使用 GUI 安装应用程序一次,然后您可以使用 debconf-show 来确定适合您的「自动接受」的正确语法,例如:

sudo debconf-show ttf-mscorefonts-installer
  msttcorefonts/dldir:
  msttcorefonts/error-mscorefonts-eula:
* msttcorefonts/accepted-mscorefonts-eula: true
* msttcorefonts/present-mscorefonts-eula:
  msttcorefonts/dlurl:
  msttcorefonts/baddldir:

或者
sudo debconf-show steam
* steam/question: I AGREE
* steam/license:
* steam/purge:

星星显示修改的条目,
其中有些修改的条目没有取值。
对于这些条目,您需要输入:
echo steam steam/license note '' | sudo debconf-set-selections

对于那些你想要一个值的情况:
echo steam steam/question select "I AGREE" | sudo debconf-set-selections

或者
echo msttcorefonts msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections

根据值类型而定。
一旦你完美地匹配了预期的结果。
sudo apt install thing-with-eula-normally

应该轻松地穿过你的脚本中央而不停滞。