我如何在 apt-get install 之前接受 steam 的许可协议?

我如何在 apt-get install 之前接受 steam 的许可协议?

我目前正在尝试使用 ansible 来设置我的机器,使用我选择的配置/应用程序等...我在 steam 和它的许可协议方面遇到了障碍。我一直在尝试使用 debconf 来预先接受它。

以下是 Steam 源中的一个相关文件: http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/utopic/steam/utopic/view/head:/debian/preinst

我已经尝试了echo steam steam/question select "I AGREE" | sudo debconf-set-selections一大堆其他非常相似的命令,也涉及尝试设置所见的许可证。

以下是 的输出sudo debconf-show steam steam/purge: * steam/license: * steam/question: I AGREE

我尝试过的所有方法都导致 apt-get 认为我已经预先不同意许可协议,并且我必须先删除这些条目,然后才能安装 steam。有人有什么想法吗?

答案1

正如原始问题所述,您可以在尝试安装 Steam 之前简单地使用命令行来设置所需的值。

echo steam steam/question select "I AGREE" | sudo debconf-set-selections
echo steam steam/license note '' | sudo debconf-set-selections

软件包中可能存在错误(如果这不是您的主要职责,那么打包工作是非常困难的),现在更高版本应该可以正常工作,并从 debconf 数据库中读取预先接受的许可证。这意味着您不应该收到提示。

sudo apt-get install steam

典型格式如下:

echo package package/key {boolean,string} {true, some string} | sudo debconf-set-selections
sudo apt-get install package

对此有帮助的问答是https://unix.stackexchange.com/a/106553

答案2

通过您的研究和帖子评论中提供的链接,我找到了答案。截至 15.04(2015-09-24),Ubuntu 存储库中的 steam 包仍为 1.0.0.48,但您需要 1.0.0.50 才能正确读取 debconf 设置。

我发现您可以从Steam 下载页面是 1.0.0.50,因此如果您从此文件安装,使用 debconf 设置,它应该可以工作。

我使用 saltstack,这是我的 steam 工作状态:

steam:
  debconf.set:
    - data:
        steam/question: {'type': 'select', 'value': 'I AGREE'}
        steam/license: {'type': 'note', 'value': ''}
  pkg.installed:
    - sources:
      - steam-launcher: https://steamcdn-a.akamaihd.net/client/installer/steam.deb
    - require:
      - debconf: steam

答案3

晚了 5 年,但我有以下 ansible 任务似乎可以与 Debian 9 和 10 一起使用,并使用 molecule 和 docker 进行了测试。

假设您已经设置了具有 x11 和 mesa/preferred 图形驱动程序的设备,则类似下面的操作可以起作用:

- name: Add i386 arch
  command: dpkg --add-architecture i386

- name: accept steam license
  debconf:
    name: "steam"
    question: "steam/question"
    value: "I AGREE"
    vtype: "select"

- name: Install steam
  apt:
   name: steam
   update_cache: yes
   state: present

相关内容