Устарел ли «apt-get»? [Дубликат]

46

В последнее время я видел, как многие люди использовали

sudo apt

вместо

sudo apt-get

Кроме того, Ubuntu продолжает указывать мне, чтобы установить вещи на sudo apt

The program 'foo' is currently not installed. You can install it by typing:
sudo apt install foo

(помните, что foo - это местозаполнитель, а не приложение)

Итак, после этой популярности в сообществе об использовании apt вместо apt-get , я начинаю думать, что apt-get устарел и больше не может использоваться в моих программах bash.

В моих программах bash

  • Мне нужно заменить все команды apt-get на apt ?
  • apt-get опасно?
  • будут ли мои программы работать?
задан Skybbles 26.09.2016 в 15:15
источник

4 ответа

33

apt-get более низкий уровень и обратно совместим. apt лучше для конечных пользователей и не требует или не содержит дополнительных функций, которые присутствуют в apt-get .

Оба прекрасно. apt-get не устарело, но ваша установка 15.10:

Изменить: на странице man (8)

  

Команда apt должна быть приятной для конечных пользователей и не нужна          чтобы быть обратно совместимым, как apt-get (8).

Edit2: apt был разработан, чтобы исправить некоторые фундаментальные недостатки зависимостей в apt-get . Поскольку это оболочка, apt , следовательно, является более высоким уровнем, а также теряет некоторые возможности обратной совместимости и скриптинга.

    
ответ дан negusp 26.09.2016 в 15:18
источник
45

Нет, apt-get не устарело. На странице man apt можно сказать о apt vs. apt-getapt-cache ):

  

ИСПОЛЬЗОВАНИЕ И РАЗЛИЧИЯ СКРИПТА ИЗ ДРУГИХ ИНСТРУМЕНТОВ APT

     

Командная строка apt (8) разработана как инструмент конечного пользователя и может изменять поведение между версиями. Пока он пытается не сломать          обратная совместимость, это не гарантируется, если изменение кажется полезным для интерактивного использования.

     

Все функции apt (8) доступны в специальных инструментах APT, таких как apt-get (8) и apt-cache (8). apt (8) просто изменяет   по умолчанию          значение некоторых параметров (см. apt.conf (5) и, в частности, двоичную область). Поэтому вам следует использовать эти команды (потенциально   с          некоторые дополнительные опции включены) в ваших сценариях, поскольку они сохраняют обратную совместимость как можно больше.

apt также дает предупреждение о том, что

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

, если он обнаруживает, что есть труба. Например:

$ apt show python | grep Package

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Package: python
APT-Sources: http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

Что касается ваших вопросов,

  

Мне нужно заменить все команды apt-get на apt ?

Нет, вам не нужно заменять apt-get apt . Скорее, если вы использовали его в скриптах, вы должны придерживаться apt-get , потому что он имеет стабильный API CLI и гарантирует обратную совместимость.

  

apt-get опасно?

apt так же опасно, как apt-get : вы должны устанавливать программное обеспечение только из источников, которым вы доверяете.

  

Могу ли я использовать apt в Ubuntu 15.10?

Да, вы можете. Проблема в том, что вы все еще используете Ubuntu 15.10, который теперь не поддерживается! Обновите версию до версии 16.04, которая является версией LTS.

  

будут ли мои программы работать?

По программам я предполагаю, что вы имеете в виду скрипты. Да, они все равно будут работать, так как apt-get не устарели. Фактически, вы должны предпочесть использовать apt-get в сценариях для обратной совместимости, как указано в man-странице apt .

    
ответ дан edwinksl 26.09.2016 в 15:24
7

apt и apt-get - это в основном один и тот же менеджер пакетов, то, что они делают, одинаковое.

Разница заключается в том, что apt также содержит признаки, например. apt-cache и имеет более привлекательный результат.

Однако, apt еще не должно использоваться в скриптах, по крайней мере, если вы хотите проанализировать его вывод, потому что он все еще находится в разработке, и его выходной формат все равно может измениться. Вкладка-автозаполнение Bash также еще не работает со многими командами apt .

Вы можете использовать оба варианта, в зависимости от того, что вы предпочитаете.

    
ответ дан Byte Commander 26.09.2016 в 15:24
0

Как вы можете видеть из других ответов, вы можете использовать либо apt , либо apt-get . Я хотел бы добавить, что, когда несколько лет назад я пытался apt , я заметил, что он разрешил конфликты иначе, чем apt-get . Когда ситуация была сложной (что-то нужно было удалить, какой-то пакет был прикреплен к определенной версии, я понизил пакет, или я использовал смесь пакетов из разных выпусков), apt обычно хотели удалить тонны пакетов или cann ' t разрешить конфликт.

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

    
ответ дан Zoltan 26.09.2016 в 21:02