Wie installiere ich ein Paket mit apt ohne die Aufforderung "Möchten Sie fortfahren [J / n]?"


Antworten:


86
sudo apt-get install -y whatever

Von der Manpage ( man 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.

9
(wie man gefährlich leben Datei)
user2413

Vielen Dank! Ich sollte diese Manpage wirklich öfter benutzen. :)
Luke

2
Deshalb sind sie dort @KingShimkus;)
Rinzwind

5
sudo apt-get install-ja, was auch immer ...
BoJack Horseman

Wenn dies nur für die Aktualisierung des Docker-Pakets funktioniert hat>. <Wenn Sie Docker noch nie zuvor aktualisiert haben, sehen Sie hier ein Bild davon, was im Terminal angezeigt wird, auch wenn Sie es verwenden --yes: .
Spencer D

15

Für apt-get -yoder --assume-yesgut funktionieren (wie @rinzwind erklärt) und ich nehme an, das ist die beste Antwort hier. Für viele dieser interaktiven Verwaltungsvorgänge gibt es einen ähnlichen Befehl.

Ein anderer ziemlich allgemeiner Weg, dies zu tun, ist so etwas wie:

 $ echo "y" | sudo apt-get install edamame_biscuit

(Wenn edamame-biscuit das (erfundene) Paket ist, das Sie installieren möchten, und "y" als legitime Antwort angenommen wird, ersetzen Sie es nach Bedarf durch "yes" oder einen anderen Text.)

Ein "Merkmal" dieser Methode ist, dass dies nicht funktioniert, wenn Sie fälschlicherweise nur eine interaktive Eingabeaufforderung annehmen. Wenn es weitere potenziell unerwünschte Eingabeaufforderungen gibt, zu denen Sie möglicherweise nicht Ja sagen möchten, vermeiden Sie die Situation, dass das System ohne Rückfrage weiterläuft.


13
Auch yes | sudo apt-get install edamame-biscuit. Yes ist ein Befehl, der das Wort "yes" an die Ausgabe spammt. Sie können bei Bedarf auch einen anderen Text ausgeben lassen (siehe Manpage).
Kroltan

14
@Kroltan Der yesBefehl (standardmäßig) gibt nur den Buchstaben ygefolgt von einer neuen Zeile so oft aus, wie zum Füllen des Pipe-Puffers erforderlich ist. Um das Wort tatsächlich zu drucken yes, müssen Sie den Befehl verwenden yes yes.
Jonathan Callen

3
yesEntschuldigen Sie meinen Fehler
Kroltan

4
@Braiam Ich denke, das war der Punkt, also macht es nichts, wenn jemand dies einfach in seine / ihre Hülle einfügt.
Kroltan

2
Mir gefällt besonders der Teil "Ein" Merkmal "dieser Methode ist, dass dies nicht funktioniert, wenn Sie fälschlicherweise nur eine interaktive Eingabeaufforderung annehmen." da spammen ja auf alles extra gefährlich sein kann.
BeowulfNode42

4

Lassen Sie uns zunächst verstehen, warum die Meldung angezeigt wird. Wenn das Paket keine Abhängigkeiten aufweist, die Sie noch nicht installiert haben oder die Sie ausdrücklich zur Installation aufgefordert haben, werden Sie von apt nie gefragt:

➜  ~  sudo apt-get -qq install xfce4-screenshooter
Selecting previously unselected package xfce4-screenshooter.
(Reading database ... 296146 files and directories currently installed.)
Preparing to unpack .../xfce4-screenshooter_1.8.1-2_amd64.deb ...
Unpacking xfce4-screenshooter (1.8.1-2) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for gnome-menus (3.13.3-1) ...
Processing triggers for desktop-file-utils (0.22-1) ...
Processing triggers for mime-support (3.56) ...
Setting up xfce4-screenshooter (1.8.1-2) ...

Wenn Sie ein Paket installieren möchten, das von Paketen abhängt, die Sie nicht erwähnt haben, werden Sie gefragt:

➜  ~  sudo apt-get -q install avis
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
  libjzlib-java libmina-java libslf4j-java
Suggested packages:
  libmina-java-doc libspring-beans-java libcommons-logging-java
  liblog4j1.2-java
The following NEW packages will be installed:
  avis libjzlib-java libmina-java libslf4j-java
0 upgraded, 4 newly installed, 0 to remove and 14 not upgraded.
Need to get 720 kB of archives.
After this operation, 1,258 kB of additional disk space will be used.
Do you want to continue? [Y/n] 

Wobei ich trotzdem nicht fragen würde, ob Sie implizit angeben, dass Sie dieses Paket installieren möchten:

➜  ~  apt-get -q install avis libjzlib-java libmina-java libslf4j-java
Reading package lists...
Building dependency tree...
Reading state information...
Suggested packages:
  libmina-java-doc libspring-beans-java libcommons-logging-java
  liblog4j1.2-java
The following NEW packages will be installed:
  avis libjzlib-java libmina-java libslf4j-java
0 upgraded, 4 newly installed, 0 to remove and 14 not upgraded.
Inst libjzlib-java (1.1.3-1 Debian:testing [all])
Inst libslf4j-java (1.7.7-1 Debian:testing [all])
Inst libmina-java (1.1.7.dfsg-11 Debian:testing [all])
Inst avis (1.2.2-2 Debian:testing [all])
Conf libjzlib-java (1.1.3-1 Debian:testing [all])
Conf libslf4j-java (1.7.7-1 Debian:testing [all])
Conf libmina-java (1.1.7.dfsg-11 Debian:testing [all])
Conf avis (1.2.2-2 Debian:testing [all])

Aber wie kann man es dann machen, dass es dich nicht definitiv fragt? Durch Rizwind sollte die Antwort Ad-hoc- und Skriptlösungen abdecken (diese Option wird in Skripten eher verwendet). Sie können stattdessen Ihre apt.confDatei ändern und Folgendes hinzufügen:

APT::Get::Assume-Yes

So etwas sollte reichen:

echo 'APT::Get::Assume-Yes;' | sudo tee -a /etc/apt/apt.conf.d/00Do-not-ask

Beachten Sie, dass dies keine weiteren ungeheuerlichen Eingabeaufforderungen zulässt, die Sie überprüfen sollten, z. B .:

➜  ~  sudo apt-get install sonar
WARNING: The following packages cannot be authenticated!
  sonar
Install these packages without verification? [y/N] 

Aus diesem Grund würde ich die Verwendung von nicht empfehlen yes | ..., da diese Warnung ignoriert würde.


Was ist bei "WARNUNG: Die folgenden Pakete können nicht authentifiziert werden!" Zu tun? Ich bekomme dies für ein Docker-Image ( python:3.6-slim). Sollte ich dafür eine separate Frage stellen?
Martin Thoma

@MartinThoma Normalerweise ist das ein Problem mit der nicht aktualisierten Paketliste. Führen Sie vor der Installation apt-get update aus. Wenn die Nachricht dadurch nicht entfernt wird, stellen Sie eine Frage mit möglichst vielen Details, bis zu der Art und Weise, wie Sie das Docker-Image erstellt haben.
Braiam

0

Zu -yeiner beliebigen Bibliotheksinstallation hinzufügen

ZB :sudo apt-get install -y nodejs

ZB :sudo apt-get install -y postgres

ZB :sudo apt-get install -y mongodb




Es gibt --force-yes as wellund vorsichtig von zufälligen Räumen. abgeschrieben für neuere Distributionen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.