Automatyzacja instalacji apt-get za pomocą --assume-yes

68

Próbuję napisać skrypt bash, aby zainstalować listę oprogramowania. Używam, --assume-yesaby ominąć monity.

Ta linia jakoś nie działa:

sudo apt-get install python-software-properties --assume-yes

Jeśli spróbuję apt-getbez --assume-yestego zadziała, ale monit poprosi mnie o:

please [Enter] to continue or ctrl+c to cancel adding it

Jak dodać Enterjako polecenie podczas uruchamiania apt-get installzamiast używania --assume-yes?

Rengas
źródło
please [Enter] to continue or ctrl+c to cancel adding itpojawia się tylko wtedy, gdy próbujesz dodać PPA.
Avinash Raj

Odpowiedzi:

89

Problem polega na tym, że opcja powinna znajdować się przed pakietami, a nie po, to jest poprawna składnia:

apt-get <options> command package=version/release

Tak więc, aby zadziałało, powinno to być:

sudo apt-get --assume-yes install python-software-properties

apt-get wybacza mieszanie poleceń i opcji, ale aby zachować bezpieczeństwo, należy zawsze używać opcji przed poleceniem i nigdy nie umieszczać opcji lub poleceń po nazwie pakietu.

Braiam
źródło
51

Dodaj -yflagę do apt-get install <package-name>polecenia jak poniżej, nie pojawi się żaden monit podczas instalowania pakietów.

sudo apt-get install -y <package-name>

Od apt-get --help

-y  Assume Yes to all queries and do not prompt
Avinash Raj
źródło
Czy jest jakaś różnica między --assume-yesi -y?
Peter Mortensen
3
@PeterMortensen robią to samo. Ze strony -y, --yes, --assume-yes Automatic yes to prompts
podręcznika
1
Pamiętaj, że może to nie wystarczyć i konieczne może być dodanie -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"do twoich poleceń. Szczegółowe informacje można znaleźć na stronie raphaelhertzog.com/2010/09/21/ ...
TTimo
@TTimo Wow! 6 dni po opublikowaniu tego komentarza przychodzę i stwierdzam, że właśnie takiej odpowiedzi potrzebowałem !! Gdybym mógł jeszcze bardziej głosować na Twój komentarz, zrobiłbym to!
Crimbo
Edytuj odpowiedź z dodatkowymi opcjami.
Avinash Raj
1

Aby uzyskać inny cichy i skuteczny sposób w następujący sposób:

sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq python-software-properties < /dev/null > /dev/null
Tajemniczy Mayur
źródło