ユーザーの操作なしでAPTでパッケージをインストールする方法


8

Debian squeezeのカーネルヘッダーをダウンロードして置き換えるスクリプトがあります。

function fixHeaders(){
    #Replace the kernel headers from OVH with standard kernel headers...
    aptitude -y install linux-image-2.6.32-5-amd64  
    sed s/'GRUB_DEFAULT=0'/'GRUB_DEFAULT=1'/g
    update-grub
    echo "Rebooting the machine. Run this script again after reboot and choose option 2."
    sleep 1
    reboot  
}

私が抱えている問題は、aptitudeがパッケージをダウンロードした後、スクリプトをテキストguiにスローし、ユーザーにたくさんの質問をすることです。これをスキップするか、タブを送信するか、適切なタイミングでEnterキーを押してすべての回答に対して[OK]を選択する方法はありますか?


1
それがあなたのケースで機能するかどうかはわかりませんが、設定DEBIAN_FRONTEND = noninteractiveはdebian / ubuntuリリースのアップグレードで機能します。
ダニエルt。

回答:


8

ダニエルtのコメントに基づいて、私はこれを行うことができました DEBIAN_FRONTEND=noninteractive

DEBIAN_FRONTEND=noninteractive /usr/bin/apt-get install -y -q --force-yes linux-image-2.6.32-5-amd64 

1
また、パッケージの事前シードを調査する必要があります。これにより、質問される前に質問に答えることができます。
Zoredache 2013

4

私が引用するこの回答は、すべての対話を取り除くわけでないことに注意してください。それでも、APT / DPKGが重要と見なすものは表示されます。おそらく、2番目のオプションを試し、readlineフロントエンドを使用してdebconf、応答ファイルを準備するのが最善です。

姉妹サイトからの引用:

これはあなたが尋ねたことをするはずです。後で設定の質問をする:

$ DEBIAN_PRIORITY=critical
$ export DEBIAN_PRIORITY
$ apt-get upgrade
# Wait a long time.   Should be almost entirely noninteractive.
$ dpkg-reconfigure --default-priority=medium --unseen-only

または、前にすべての構成に関する質問をすることもできます。

$ apt-get clean
$ cat >> /etc/apt/apt.conf <<EOF
// Pre-configure all packages before
// they are installed.
DPkg::Pre-Install-Pkgs {
    "dpkg-preconfigure --apt --priority=low";
};
EOF
$ apt-get upgrade

apt-getのアップグレードは私の状況では機能しません。カーネルヘッダーを置き換えます。カーネルを新しいバージョンにアップグレードするのではなく、別のバージョンを選択します。
에이바2013

答えをそのまま引用しました。これはどちらの方法でapt-get installも機能し、dpkg-configure呼び出されます。
fuero

それでもユーザーは質問に答えるよう求められますが、スクリプトのその部分は関数内で実行されるため表示されません。変更することはできますが、スクリプトを実行している人(私ではない人)は理解できません。私は本当に自動化されたソリューションを探していました。
에이바2013

0

expect「適切な時間」を特定できれば、ツールを使用して必要なものを何でも送信できます(入力は変化しないため)。


「OK」を押す回数は、マシンとその構成によって異なります。
에이바2013

質問(または質問の終わり)を正しく認識できる限り、それだけで問題になることはおそらくありません。
Hauke Laging 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.