
為了工作我必須準備很多電腦。我必須將一堆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
除非對預先配置系統進行自訂安裝,否則我可能會在每個系統上執行安裝腳本。
需要按回車的命令有哪些?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
直接使用sed
/編輯文件awk
,或者如果系統相同,則只需複製“完成的”文件。
這個 Ubuntu 幫助頁面有更多信息如何從命令列管理軟體儲存庫。
如果您正在準備很多系統,我是否可以假設您只下載一次 .deb 軟體包,並將它們全部安裝到每台電腦上,而不是為每個系統更新然後下載它們?如果您將所有 .deb 檔案都放在一個資料夾中,則此命令將安裝所有這些檔案:
sudo dpkg -iR [deb-directory]
僅供參考,我曾經看到一個奇怪的軟體包enter在完成安裝之前會等待,顯然它位於它自己的配置腳本之一中,甚至apt-get
's 也--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
使用不同的睡眠時間來延遲「打字」之間的延遲,回顯空格" "
甚至只是回顯應該發送換行符「返回」。