脚本自动接受 EULA/许可协议

tat*_*tsu 4 license apt bash scripts

我正在尝试编写包 (steamcmd) 的自动化脚本。

案例数字是脚本的用户已被预先告知他/她已同意的 EULA。

现在好了,这些是一些已经适用的软件包:

没有人费心去解释他们是如何为每一个找到独立的语法的,但我想最终弄明白这一点,这样任何使用这个问题 ubuntu 问题的人都可以自动安装包 N。

从我收集到的语法应该是这样的:

 echo PACKAGENAME PACKAGENAMEorUSERSPACE/accepted-PACKAGENAME-EULAPART select true | sudo debconf-set-selections
 sudo apt install PACKAGENAME
Run Code Online (Sandbox Code Playgroud)

虽然到目前为止我还没有能够让它与许多变体一起工作:

 echo steamcmd steamcmd/accepted-steamcmd-eula select true | sudo debconf-set-selections
Run Code Online (Sandbox Code Playgroud)

tat*_*tsu 5

事实证明,使用 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:
Run Code Online (Sandbox Code Playgroud)

或者

sudo debconf-show steam
* steam/question: I AGREE
* steam/license:
* steam/purge:
Run Code Online (Sandbox Code Playgroud)

星星显示修改后的条目,

其中有修改过的条目没有任何价值。

对于这些,您必须输入:

echo steam steam/license note '' | sudo debconf-set-selections
Run Code Online (Sandbox Code Playgroud)

对于你想要一个值的那个:

echo steam steam/question select "I AGREE" | sudo debconf-set-selections
Run Code Online (Sandbox Code Playgroud)

或者

echo msttcorefonts msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
Run Code Online (Sandbox Code Playgroud)

取决于值类型。

一旦你完全符合预期。

sudo apt install thing-with-eula-normally
Run Code Online (Sandbox Code Playgroud)

应该轻而易举地通过脚本的中间而不会停止它。