
Für die Arbeit muss ich viele PCs vorbereiten. Ich muss eine Menge sudo apt-get install
Befehle in das Terminal eingeben – das ist ziemlich mühsam. Ich könnte sie wahrscheinlich alle in ein sh-Skript einfügen (vielleicht), aber für einige der Befehle muss sudo add-apt-repository
per Befehl ein neues Repository () oder ein neuer Schlüssel (??) hinzugefügt werden gpg
– und der Benutzer muss die Eingabetaste drücken.
Gibt es eine Möglichkeit, zu allem „Ja“ zu sagen oder so? Dazu müsste man wahrscheinlich den apt-get- und gpg-Befehlen einige Optionen hinzufügen?
Antwort1
Sie können die Flags --assume-yes
und --force-yes
anhängen, um automatisch zu allen „Ja“ zu sagen.
sudo apt-get --assume-yes --force-yes install <packagename(s)>
Um diese Änderungen dauerhaft zu machen, bearbeiten /etc/apt/apt.conf
und fügen Sie die Zeilen hinzu
APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";
Dies ist die Manpage vonapt-get
sagt -
-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.
Antwort2
Sofern es sich nicht um eine benutzerdefinierte Installation eines vorkonfigurierten Systems handelt, würde ich wahrscheinlich ein Installationsskript verwenden, das auf jedem System ausgeführt wird.
Bei welchen Befehlen muss die Eingabetaste gedrückt werden? add-apt-repository
Die Hilfe von gibt die entsprechende -y
Option an:
$ 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
Der Hilfe-Link unten besagt, dass beim Hinzufügen von PPAs „Wenn ein öffentlicher Schlüssel erforderlich und verfügbar ist, wird er automatisch heruntergeladen und registriert.“ Es gibt auch Pakete wie ubuntu-keyring
, ubuntu-extras-keyring
usw. linuxmint-keyring
, die die Schlüssel für verschiedene Repositories enthalten. Und man gpg
es sollte erklärt werden, wie man einen Schlüssel automatisch installieren kann, wenn man nicht weiterkommt.
Und/oder Sie können die sources.list
Dateien direkt mit sed
/ bearbeiten awk
, oder wenn die Systeme identisch sind, kopieren Sie einfach die "fertigen" Dateien.
Auf dieser Ubuntu-Hilfeseite finden Sie weitere Informationen zuSo verwalten Sie Software-Repositorys über die Befehlszeile.
Und wenn Sie viele Systeme vorbereiten, kann ich dann davon ausgehen, dass Sie die .deb-Pakete nur einmal herunterladen und sie alle auf jedem Rechner installieren, anstatt sie zu aktualisieren und dann alle für jedes System herunterzuladen? Wenn Sie alle .deb-Pakete in einem Ordner haben, würde dieser Befehl sie alle installieren:
sudo dpkg -iR [deb-directory]
Zu Ihrer Information: Ich habe früher ein seltsames Paket gesehen, das auf ein wartete, enterbevor die Installation abgeschlossen war. Offenbar befand es sich in einem seiner eigenen Konfigurationsskripte, und selbst apt-get
's --force-yes
funktionierten nicht damit. Sie haben keins dieser Art, oder?
Oder, wenn Sie nureine Reihe von Tastenanschlägen erzwingenin ein Telnet-Terminal (sollte auch für andere Methoden funktionieren) können Sie ein Bash-Skript wie dieses verwenden:
{
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
Die Verwendung unterschiedlicher Ruhezeiten für Verzögerungen zwischen dem „Eintippen“, dem Echo eines Leerzeichens " "
oder sogar nur Echo sollte eine neue Zeilenumbruch-„Return“ senden.