Каковы различия между apt-get
, aptitude
и synaptic
, и какой из них является рекомендуемым выбором для обычного повседневного управления пакетами?
Это основной вопрос, но я думаю, что это была бы хорошая информация на сайте, и, кроме того, я относительно новичок в Ubuntu, так что я мог бы использовать объяснения экспертов.
Наверное, самыми популярными пакетными менеджерами являются apt-get, aptitude, synaptic и Software Center. Есть и другие (Linux Mint имеет свой собственный, и есть некоторые, разработанные для KDE), но именно с ними Вы столкнётесь чаще всего.
apt-get - это простой инструмент командной строки. Она удобна, если Вы знаете точное название пакета, который хотите установить, и не хотите тратить время на щелчок по графическому интерфейсу, чтобы получить его.
aptitude очень похож на apt-get, и я слышал, что он лучше справляется с сумасшедшими ситуациями зависимости. Какая из них действительно лучше - спорная.
synaptic - низкоуровневый GUI. Это хороший выбор, если вы достаточно продвинутый пользователь, но вам не нравятся утилиты командной строки.
Software Center - это очень высокоуровневый и удобный для нового пользователя GUI. Программное обеспечение хорошо разбито по категориям, так что, если вы не совсем уверены, какое приложение вы хотите, вы можете найти то, что вам нужно быстро. Центр Программного Обеспечения также выделяется тем, что это единственный менеджер пакетов в этом списке, который позволяет вам приобретать коммерческие приложения.
dpkg - это менее распространённый, низкоуровневый стандарт менеджеров пакетов для большинства систем на базе Debian. В действительности, apt-get, aptitude, synaptic и Центр Программного Обеспечения Ubuntu - это всего лишь внешние интерфейсы dpkg или apt, которые сами по себе являются внешними интерфейсами dpkg.
В ответ на ваш вопрос, "какой из них является рекомендуемым выбором для нормального повседневного управления пакетами", я бы сказал, что Центр Программного Обеспечения рекомендуется для большинства применений. Но по мере того, как вы будете набираться опыта, вы найдете некоторые возможности менеджеров пакетов более низкого уровня полезными.
В Debian FAQ есть довольно хорошее объяснение различных менеджеров пакетов. (dpkg
, apt-get
, aptitude
, tasksel
, synaptic
)
В дополнение к отличному ответу mac9416, Kubuntu предлагает те же инструменты командной строки, что и Ubuntu, а именно dpkg
, apt-get
и aptitude
. Также есть два графических менеджера пакетов:
Adept - простой графический интерфейс для apt-get
, который позволяет редактировать списки исходников, просматривать пакеты по категориям или по именам, видеть их статус и устанавливать/удалять.
KPackageKit - простой графический интерфейс для PackageKit, который представляет собой более новую, кросс-дистрибутивную систему управления пакетами, использующую apt-get
за кулисами. Он позволяет искать программы по различным критериям, устанавливать и удалять программы, делать рутинные обновления и редактировать списки исходников.
В основном, они различаются только тем, насколько они низкоуровневые.
dpkg: даже не настоящий менеджер пакетов, apt использует его
apt-get: в командной строке, только если вы знаете имя пакета
aptitude: текстовое, но удобное для пользователя
synaptic: эквивалент aptitude в GUI
Software Center: для обычных пользователей
BTW, это все интерфейсы apt (кроме dpkg), который является единственным менеджером пакетов на Ubuntu.
Лично я предпочитаю apt-get, потому что это программа командной строки. Синтаксис установки пакетов очень прост:
sudo apt-get install packagename
Я использую apt-get на ежедневной основе для установки и удаления пакетов.
Synaptic основан на графическом интерфейсе, а aptitude на текстовом.
Одно из ключевых различий между aptitude и apt-get, которое ускользнуло из виду выше, заключается в том, что aptitude
, в отличие от apt-get
, предложит вам различные варианты в случае столкновения зависимостей. apt-get
просто провалится. По этой причине aptitude
гораздо более гибкий и универсальный. Никогда не используя менеджер пакетов GUI, я не знаю, как Synaptic и другие справляются с такими ситуациями.
Еще один инструмент, который едва ли был упомянут, это tasksel
. Он используется для выбора определённых задач, пометки их для установки, а затем установки (возможно, используя aptitude
-- не уверен).
Запустите tasksel --list-tasks
, чтобы посмотреть, какие задачи доступны.