私は現在、ansibleを使用して、選択した構成/アプリなどでマシンをセットアップすることに悩んでいます。Steamでつまずき、ライセンス契約を結んでいます。私はdebconfを使用して事前に受け入れようとしています。
Steamソース内の関連ファイルの1つを次に示します。 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
私が試したことはすべて、私が事前にライセンス契約に同意していないという考えに至り、Steamをインストールする前にそれらのエントリを削除する必要があります。誰にもアイデアはありますか?
あなたの調査とあなたの投稿のコメントで提供されたリンクを使用して、私はこれを理解しました。 15.04(2015-09-24)の時点で、UbuntuリポジトリのSteamパッケージはまだ1.0.0.48ですが、debconf設定を適切に読み取るには1.0.0.50が必要です。
Steamのダウンロードページ からダウンロードできるSteam.debは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
元の質問で述べたように、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
これに関する役立つQ&Aは https://unix.stackexchange.com/a/10655 でした
5年遅れですが、Debian 9および10で動作し、分子およびドッカーでテストされていると思われる次のansibleタスクがあります。
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