Oczywiście kiedy piszesz:
sudo apt-get install whatever
Pyta cię:
Do you want to continue [Y/n]?
Czy jest jakiś sposób, aby go zainstalować bez pytania, czy chcę kontynuować? Tak naprawdę nie dbam o przestrzeń, mam więcej niż wystarczająco.
Oczywiście kiedy piszesz:
sudo apt-get install whatever
Pyta cię:
Do you want to continue [Y/n]?
Czy jest jakiś sposób, aby go zainstalować bez pytania, czy chcę kontynuować? Tak naprawdę nie dbam o przestrzeń, mam więcej niż wystarczająco.
Odpowiedzi:
sudo apt-get install -y whatever
Ze strony man ( 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.
--yes: Imgur Jest to wyjątkowo denerwujące, ponieważ wymusza interakcję podczas aktualizacji pakietu .
Dla apt-get -ylub --assume-yesdziałaj dobrze (jak wyjaśnił @rinzwind) i zakładam, że to najlepsza odpowiedź tutaj. W przypadku wielu takich interaktywnych operacji administracyjnych istnieje podobne polecenie.
Innym dość ogólnym sposobem na zrobienie tego jest:
$ echo "y" | sudo apt-get install edamame_biscuit
(Tam, gdzie edamame-biscuit jest (wymyślonym) pakietem, który chcesz zainstalować, a „y” przyjmuje się za prawidłową odpowiedź; w razie potrzeby zamień na „tak” lub inny tekst.)
„Cechą” tej metody jest to, że się zepsuje, jeśli niepoprawnie zakładasz tylko jedno interaktywne pytanie. Jeśli pojawi się więcej potencjalnie niechcianych podpowiedzi, na które możesz nie chcieć odpowiedzieć „tak”, unikniesz sytuacji, w której system będzie działał bez pytania.
yes | sudo apt-get install edamame-biscuit. Tak to polecenie, które wysyła słowo „tak” na swoje wyjście. Możesz także ustawić, aby wyświetlał dowolny tekst w razie potrzeby, patrz strona man.
yesPolecenie (domyślnie) wyświetla tylko literę, ypo której następuje nowa linia, tyle razy, ile potrzeba do wypełnienia bufora potoku. Aby wydrukować słowo yes, musisz użyć polecenia yes yes.
yes, wybacz mój błąd
Przede wszystkim pozwala zrozumieć, dlaczego pojawia się komunikat. W rzeczywistości, jeśli pakiet nie ma zależności, których jeszcze nie zainstalowałeś lub które wyraźnie kazałeś zainstalować, apt nigdy nie zapyta:
➜ ~ 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) ...
Chociaż jeśli chcesz zainstalować pakiet, który zależy od pakietów, o których nie wspomniałeś, zapyta:
➜ ~ 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]
Który mimo to nie zapytałby, czy pośrednio twierdzisz, że chcesz zainstalować ten pakiet:
➜ ~ 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])
Ale w jaki sposób sprawić, że nie zapyta cię definitywnie? Dzięki Rizwind odpowiedź powinna obejmować rozwiązania ad-hoc i skrypty (w rzeczywistości ta opcja jest częściej używana w skryptach), możesz zamiast tego zmodyfikować apt.confplik i dodać:
APT::Get::Assume-Yes
Coś takiego powinno wystarczyć:
echo 'APT::Get::Assume-Yes;' | sudo tee -a /etc/apt/apt.conf.d/00Do-not-ask
Uwaga: nie pozwoli to na inne bardziej rażące podpowiedzi, które należy zweryfikować , takie jak:
➜ ~ sudo apt-get install sonar
WARNING: The following packages cannot be authenticated!
sonar
Install these packages without verification? [y/N]
Dlatego nie zalecałbym używania yes | ..., ponieważ to ostrzeżenie zostanie zignorowane.
python:3.6-slim). Czy powinienem zadać na to osobne pytanie?
-ydo dowolnej instalacji bibliotekiNp . :sudo apt-get install -y nodejs
Np . :sudo apt-get install -y postgres
Np . :sudo apt-get install -y mongodb
Są --force-yes as welli uważaj na przypadkowe miejsca.
amortyzacja za ostatnie dystrybucje