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

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

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

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

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

Спасибо.

4
задан 29 January 2012 в 17:04

8 ответов

Используйте опцию -y для apt-get.

На странице man:

-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
ответ дан 25 May 2018 в 14:46

Используйте опцию -y для apt-get.

На странице man :

-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
ответ дан 7 August 2018 в 19:49

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

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

sudo aptitude install pkg1 pkg2-

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

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

sudo aptitude remove pkg1+ pkg2

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

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

12
ответ дан 25 May 2018 в 14:46
  • 1
    Ничего себе, это сработало , поэтому намного лучше, чем возиться с apt-get. Я пытался понизить мои пакеты gcc с 4.9 до 4.7, но это невозможно с помощью apt-get, потому что удаление gcc удалит apt себя (!), А понижение либо невозможно, либо очень сложно с apt-get. Но когда я скопировал точную команду, которую я использовал с apt-get и заменил apt-get на aptitude, он узнал, что я пытался сделать, объяснил проблему (!) И предложил исправить (!!) , – Kyle Strand 2 May 2018 в 00:43

На странице apt-get man:

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

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

sudo apt-get install a- b
4
ответ дан 25 May 2018 в 14:46

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

sudo sh -c 'apt-get remove a b c && apt-get install d e f'
0
ответ дан 25 May 2018 в 14:46
  • 1
    @ScottSeverance О, простите мое невежество , было слишком быстро судить. Thx для головок;) – Bruno Pereira 30 January 2012 в 06:34

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

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

sudo aptitude install pkg1 pkg2-

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

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

sudo aptitude remove pkg1+ pkg2

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

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

12
ответ дан 25 May 2018 в 14:46

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

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

sudo aptitude install pkg1 pkg2-

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

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

sudo aptitude remove pkg1+ pkg2

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

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

12
ответ дан 25 May 2018 в 14:46

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

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

sudo aptitude install pkg1 pkg2-

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

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

sudo aptitude remove pkg1+ pkg2

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

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

12
ответ дан 25 May 2018 в 14:46

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

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