“[Y / n] devam etmek istiyor musunuz?” Sorusu olmadan apt ile bir paket nasıl kurulur?


Yanıtlar:


86
sudo apt-get install -y whatever

Man sayfasından ( 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
(nasıl tehlikeli dosyasını yaşamak)
user2413

Çok teşekkür ederim! Bu adam sayfasını daha sık kullanmalıyım. :)
Luke,

2
Bu yüzden oradalar (@KingShimkus;)
Rinzwind

5
sudo apt-get install - evet her neyse ...
BoJack Horseman 16:14

Şimdi eğer sadece bu Docker paketini yükseltmek için çalışmış> <Daha önce Docker yükseltilmiş asla varsa, burada kullanmak bile terminalde-nasıl açılır bir görüntü bu. --yes: Imgur bu paket güncelleme sırasında etkileşimi zorlar çünkü son derece sinir bozucu .
Spencer D

15

Apt-get için -yveya --assume-yesiyi çalışın (@ rizzwind'in açıkladığı gibi) ve bunun burada en iyi cevap olduğunu varsayıyorum. Bu tür etkileşimli idari işlemlerin çoğu için benzer bir komut vardır.

Bunu yapmanın başka bir güzel yolu da şöyle:

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

(Edamame-biscuit'in kurmak istediğiniz (tamamlanmış) paket olduğu ve "y" nin meşru bir yanıt olduğu varsayılır; "evet" veya gerekirse başka bir metin kullanın.)

Bu yöntemin bir 'özelliği', yalnızca bir etkileşimli bilgi istemi yanlış olarak kabul ediyorsanız, bunun kırılmasıdır. Evet demek istemediğiniz bazı potansiyel olarak istenmeyen istemler varsa, sistemin sormadan ilerlemesini önlersiniz.


13
Ayrıca yes | sudo apt-get install edamame-biscuit,. Evet, "evet" kelimesini çıktısına spam gönderen bir komuttur. Gerekirse diğer metinleri de çıktı olarak alabilirsiniz, bakınız sayfa.
Kroltan

14
@Kroltan yesKomutu (varsayılan olarak) sadece harfi yizler ve ardından boru arabelleğini doldurmak için gerektiği kadar newline izler. Kelimeyi gerçekten yazdırmak için yes, komutu kullanmanız gerekir yes yes.
Jonathan Callen

3
yes,
kusura bakma

4
@Braiam bence asıl mesele burasıydı, o yüzden birisi bunu kabuğuna yapıştırırsa hiçbir şey yapmaz.
Kroltan

2
Özellikle, bu yöntemin "A" özelliği "kısmını, yalnızca bir etkileşimli bilgi istemi yanlış olarak kabul ediyorsanız, bunun kırılacağıdır." spam olarak her şeyi evet evet çok tehlikeli olabilir.
BeowulfNode42

4

Her şeyden önce, mesajın neden göründüğünü anlayalım. Aslında, paket henüz yüklemediğiniz veya açıkça yüklemenizi söylediğiniz bağımlılıklara sahip değilse, apt size asla sormaz:

➜  ~  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) ...

Paketlere bağlı bir paket yüklemek istiyorsanız, şu soruyu sorarsınız:

➜  ~  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] 

Bu durumda bile, bu paketi yüklemek istediğinizi dolaylı olarak söyleyip söylemediğinizi sormazsınız:

➜  ~  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])

Ama öyleyse, kesin olarak sormamasını nasıl sağlayabilirsiniz? Rizwind cevabı aracılığıyla geçici ve komut dosyası çözümlerini kapsamalıdır (aslında, bu seçenek komut dosyalarında daha çok kullanılır), bunun yerine apt.confdosyanızı değiştirebilir ve şunları ekleyebilirsiniz:

APT::Get::Assume-Yes

Böyle bir şey yeterli olmalı:

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

Not, bu, doğrulamanız gereken diğer daha tehlikeli istemlere izin vermez :

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

Bu nedenle yes | ..., bu uyarı dikkate alınmayacağından, kullanılmasını önermem.


"UYARI: Aşağıdaki paketlerin kimliği doğrulanamıyor!" İçin bununla ilgili ne yapmalı? Bunu bir Docker resmi ( python:3.6-slim) için alıyorum . Bunun için ayrı bir soru sormalı mıyım?
Martin Thoma

@ MartinThoma genellikle, güncellenmemiş paket listesiyle ilgili bir sorun. Yüklemeden önce apt-get update komutunu çalıştırın. Bu mesajı kaldırmazsa, liman işçisi görüntüsünü nasıl oluşturduğunuza kadar, olabildiğince ayrıntılı bir soru sorun.
Braiam

0

-yHerhangi bir kütüphane kurulumuna ekle

Örneğin :sudo apt-get install -y nodejs

Örneğin :sudo apt-get install -y postgres

Örneğin :sudo apt-get install -y mongodb




Orada --force-yes as wellve yanlışlıkla alanların dikkatli. son dağıtımlar için değer kaybetti

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.