Варіант Pacman прийняти "так" на кожне питання?


51

Встановлюючи програмне забезпечення в debian системи, ми можемо поставити щось подібне:

sudo apt-get install -y chromium-browser

таким чином установка відбувається автоматично, без прохання підтвердити встановлення [Y / n]. Чи можу я те ж саме зробити з Pacman?

Відповіді:


77

Від man pacman:

- не підтвердити
обхід будь-яких повідомлень "Ви впевнені?" Це не добре робити це, якщо ви не хочете запустити Pacman зі сценарію.

Зверніть увагу на кваліфікацію щодо використання цього обережно ...

Arch - це постійний випуск, що означає, що Pacman час від часу повинен управляти досить складними оновленнями. У цей час Pacman запропонує вам підтвердити свій вибір - ігнорування цих підказок, як правило, не буде суттєвою проблемою, але в деяких випадках, як і при нещодавньому переході /libдо /usr/lib, брак уваги спричинить серйозні зриви. Це не звичка, яку ви хочете розвивати.


Я ніколи не керував Pacman з "--noconfirm" протягом майже 3 років використання Arch через це попередження. Скільки людей запускають Pacman зі сценарію? Які великі ризики? Мені довелося втручатися 3 або 4 рази, щоб виправити речі, які Pacman відмовився оновити.
Брюс Едігер

3
Я припускаю, враховуючи культуру Арка, що попередження є для того, щоб відмовити поблажливість та неправильне уявлення про те, що автоматизація оновлень Pacman є хорошою ідеєю. Багато поломки може бути придушене , щоб люди не читають виходу pacman в; --noconfirmце посилило б це ...
Jasonwryan

1
У мене є "встановити" сценарій, який використовує --noconfirm. Ідея полягає в тому, щоб мати можливість взяти систему з нещодавно оновленою чистою установкою та зробити її "придатною для використання" без будь-якої взаємодії з користувачем.
StrongBad

3
Насправді, --noconfirmне передбачає yes, натомість передбачає відповідь за замовчуванням, що досить часто no. Приклад: # pacman -Scc Cache directory: /var/cache/pacman/pkg/ :: Do you want to remove ALL files from cache? [y/N]Для вищевикладеного випадку yes|pacman -Sccприпускаємоyes
Utgarda

1
Насправді, pacman --noconfirmце потрібно, якщо ви використовуєте контейнер Docker, інакше він просто чекатиме введення, і, таким чином, вимкнути контейнер з помилкою.
Амін NAIRI

29

Незважаючи на те, що сторінка з цього питання не дуже чітка, --noconfirmпрапор не буде приймати "так" на кожну відповідь. Він передбачає відповідь за замовчуванням, яка іноді може бути "ні".

- не підтвердити
      обхід будь-яких повідомлень "Ви впевнені?" Це не добре
      робити це, якщо ви не хочете запустити Pacman зі сценарію

Щоб припустити "так", ви можете передавати висновок yesкоманди pacman.

yes | sudo pacman -S firefox

Використовуйте yes | LC_ALL=en_US.UTF-8 pacman [...]для сумісності із системами, мова яких не визначена англійською. Інакше [Y/n]питання стають [J/n], наприклад.
ComFreek

3
Також будьте обережні, що ця відповідь не вдасться, якщо Пакман коли-небудь задає питання без yвідповіді, наприклад Enter a selection (default=all).
ComFreek

@ComFreek, а не змінювати змінні середовища, що передаються pacman, було б простіше і, мабуть, безпечніше зробити це yes J | sudo pacman -S firefoxв цьому випадку. yes Jпризведе yesдо повторного виведення a Jзамість a y.
Дрю Чапін

"і, мабуть, безпечніше" Як так? Переоцінка вище впливає лише на середовище процесу (дерево), яке породилося, і закінчується ним. Крім того, виклик вище є точно однаковим для всіх локалів.
кельвін

Крім того, що робити, якщо хтось копіює / вставляє один такий командний рядок, але має локаль, в якому один із варіантів має протилежне або зовсім інше значення? Приклад: J(або Y), що означає "ні" або "все".
кельвін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.