Как я могу установить и удалить программы в одной командной строке, и подтвердить только один раз?

Когда я устанавливаю Ubuntu, первое, что я обычно делаю, это удаляю некоторые программы и устанавливаю некоторые другие. Чтобы это сделать, я ввожу в терминал следующее:

sudo apt-get remove applicationA applicationB applicationC && sudo apt-get install applicationX applicationY applicationZ.

Это хорошо работает, но проблема в том, что я должен подтвердить дважды: сначала я должен подтвердить удаление приложений, а через некоторое время я должен подтвердить установку других. Было бы здорово, если бы мне нужно было только один раз подтвердить это, потому что мне не пришлось бы в это время возвращаться к компьютеру. Есть ли какая-нибудь команда для этого?

Обратите внимание, что я не ищу обходных путей, например, в. Synaptic Package Manager. Я хочу сделать это из командной строки.

Благодаря.

5
задан 29 January 2012 в 15:04

4 ответа

Используйте -y опция для 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.

Таким образом для Вас это посмотрело бы что-то как sudo apt-get remove -y foo1 foo2 foo3 и sudo apt-get install -y foo foo1 foo2 foo3.

8
ответ дан 29 January 2012 в 15:04

может выполнять обе команды, используя только один вызов sudo:

sudo sh -c 'apt-get remove a b c && apt-get install d e f'
0
ответ дан 29 January 2012 в 15:04

Со страницы руководства apt-get:

install [...] Если к имени пакета добавляется дефис (без пробела), указанный пакет будет удален, если установлено. Точно так же знак плюс может использоваться для обозначения пакета для установки. Эти последние функции могут быть использованы для отмены решений, принятых системой разрешения конфликтов apt-get.

Вы можете добавить дефис к имени пакета, тогда apt-get удалит этот пакет. Итак, чтобы удалить пакет a и установить b:

sudo apt-get install a- b
0
ответ дан 29 January 2012 в 15:04

В качестве альтернативы уже опубликованным ответам, вы также можете выбрать установку и удаление пакетов в одной команде с помощью aptitude. С помощью команд aptitude install добавьте - после имени пакета для удаления и с помощью команд aptitude remove добавьте команды + после имени пакета, чтобы он был установлен.

Если вы введете

sudo aptitude install pkg1 pkg2-

, будут установлены первые пакеты, а второй будет удален.

Однако , с другой стороны, если вы используете

sudo aptitude remove pkg1+ pkg2

, второй пакет будет удален и первый установлен.

Источник: более подробное объяснение apt и aptitude см. В Справочник Debian .

0
ответ дан 29 January 2012 в 15:04

Другие вопросы по тегам:

Похожие вопросы: