apt-get のサイレントインストール

apt-get のサイレントインストール

仕事でたくさんの PC を用意しなければなりません。sudo apt-get installターミナルにたくさんのコマンドを詰め込まなければなりませんが、これはかなり面倒です。おそらくそれらすべてを sh スクリプトにまとめることはできるでしょう (多分)。しかし、コマンドの中には、コマンドsudo add-apt-repository経由で新しいリポジトリ ( ) を追加したり、新しいキー (??) を追加したりするものgpgがあり、ユーザーは ENTER キーを押す必要があります。

すべてに「はい」と言う方法はありますか? おそらく、apt-get コマンドと gpg コマンドにいくつかのオプションを追加する必要がありますか?

答え1

--assume-yesフラグと--force-yesフラグを追加すると、すべてに自動的に「はい」と答えることができます。

sudo apt-get --assume-yes --force-yes install <packagename(s)>

これらの変更を永続的にするには、/etc/apt/apt.conf次の行を編集して追加します。

APT::Get::Assume-Yes "true";    
APT::Get::force-yes "true";

これは、apt-get言う -

   -y, --yes, --assume-yes
       Automatic yes to prompts; assume "yes" as answer to all prompts and
       run non-interactively. If an undesirable situation, such as
       changing a held package, trying to install a unauthenticated
       package or removing an essential package occurs then apt-get will
       abort. Configuration Item: APT::Get::Assume-Yes.

   --force-yes
       Force yes; this is a dangerous option that will cause apt to
       continue without prompting if it is doing something potentially
       harmful. It should not be used except in very special situations.
       Using force-yes can potentially destroy your system! Configuration
       Item: APT::Get::force-yes.

答え2

事前設定されたシステムのカスタム インストールを除き、各システムでインストール スクリプトを実行することになるでしょう。

Enter キーを押す必要があるコマンドは何ですか?add-apt-repositoryのヘルプではその-yオプションが宣伝されています:

$ sudo add-apt-repository --help
Usage: add-apt-repository [options] repository

Options:
  -h, --help  show this help message and exit
  -y, --yes   force yes on all confirmation questions

以下のヘルプ リンクには、PPA を追加するには「公開キーが必要で、利用可能な場合は、自動的にダウンロードされ、登録されます」と記載されています。また、、ubuntu-keyringなどubuntu-extras-keyringのパッケージlinuxmint-keyringには、さまざまなリポジトリのキーが含まれています。また、man gpg使用できない場合は、キーを自動的にインストールする方法が記載されているはずです。

また、/ を使って直接ファイルを編集することもできますしsources.list、システムが同一の場合は「完成した」ファイルをコピーするだけです。 このUbuntuヘルプページには、sedawk
コマンドラインからソフトウェア リポジトリを管理する方法。

また、多数のシステムを準備している場合は、すべてのシステムを更新してからダウンロードするのではなく、.deb パッケージを 1 回だけダウンロードして各マシンにインストールすることになると思いますか? すべての .deb が 1 つのフォルダーにある場合は、次のコマンドですべてをインストールできます。

  • sudo dpkg -iR [deb-directory]

参考までに、インストールが完了する前に を待つ奇妙なパッケージを以前見たことがありますenterが、どうやらそれは独自の構成スクリプトの中にあり、 でさえapt-get動作--force-yesしませんでした。そのようなタイプのパッケージはありませんか?


あるいは、単に大量のキー入力を強制的に行うtelnet (他の方法でも動作するはずです) ターミナルでは、次のような bash スクリプトを使用できます。

{
echo "open 192.168.55.55"
sleep 0.5
echo "$login"
sleep 0.5
echo "$password"
sleep 0.5
echo "command1"
sleep 2
echo " "
sleep 5
echo "exit"
} | telnet

「入力」間の遅延に異なるスリープ時間を使用したり、スペースをエコーし​​たり" "、単にエコーするだけでも、改行の「リターン」を送信する必要があります。

関連情報