Pull to refresh

Comments 92

Есть ещё аргумент из фака
>Note that aptitude is the preferred program for package management from console both for package installations and package or system upgrades.
Специально не стал указывать. Фак 2-х годичной давности, не, объясняющий причины, или почему «aptitude is the preferred program» не показатель.
Странно, что это обсуждается сейчас, aptitude разработчиками дебиана позиционируется как основной инструмент для работы с пакетами уже 2-3 года.
А упоминается об этом очень часто, например тут:
www.debian.org/releases/stable/i386/ch06s03.html.en#di-install-software
«In fact, aptitude is now the recommended utility for package management.»

Документация свежая, про установку lenny
Вот и статья подоспела, а то комменты уже не выдерживали в другом топике ))).

Я за aptitude. Спасибо.
А мы и не догадались :)
Глаза на аватарке недостаточно красные, сразу не видно, что гентушник.
Я то же gentooшник, но — это не мешает использовать ubuntu на работе и изучать apt (а он один из вариантов на экзамене LPI) Нравится emerge, пользуйтесь (мне он то же нравится) как и apt.

P.S На канале gentoo-ru многие стали переползать параллельно на ubuntu, тенденция блин
Настоящий юниксоид должен знать и apt, и emerge, и yum.
Настоящий маг заделает one-ring-to-rule-them-all :)
настоящий юниксоид должен знать man
всегда было подозрение, что с apt что-то не так :)
Спасибо автору за разъяснения, не кинул читателей и выполнил обещанное.
А также спасибо человеку, наградившего автора инвайтом. Не зря. ;)
Не за что :) Автор постарался написать актуальную и доходчивую статью. Из статьи сделали топик, который набрал +50 очков. Так что автор честно заработал инвайт сам!
Вместо скриншотов терминала может имел смысл просто вставить текст?
Обещал картинки. И голый текст читается плохо.
UFO just landed and posted this here
>Мне проше использовать GUI к менеджеру пакетов и конкретным списком разделенным на разделы и категории, и описанием к пакету для чего нужен и что делает. Как это сделано например в…

… Убунте, если запустить гуёвый менеджер пакетов.
А в данной статье приводится сравнение консольных утилит.

// Искренне Ваш, К.О.
UFO just landed and posted this here
UFO just landed and posted this here
alias apt-cache='apt-cache -n'
apt-cache search wget

epiphany-extension-gwget — Gwget extension for Epiphany web browser
wget-el — interface for wget on Emacsen
gwget — GNOME интерфейс для wget
wget — программа загрузки файлов из сети
Этим решается проблема поиска по именам (самая неважная, кстати), а вот для просмотра статуса пакета придётся отдельную команду набирать. На маемо нет aptitude, только apt, так вот многих фич мне не хватает. А из гуи там вообще можно ставить далеко не все приложения.
Остальное меня не очень сильно волнует (:
Изврат же. А если надо по имени найти?
Для обновлений использую _только_ консольный aptitude(debian/sid) причины:
1. Сам решаешь какие пакеты обновлять, какие нет.
2. Сам разрешаешь(или не разрешаешь) зависимости в пакетах, практика показывает что автоматика часто делает совсем не то что нужно.
3. Как следствие предыдущих пунктов — не ставишь лишних пакетов, которые даже не представляешь для чего они.
+ мелкие бонусы в виде просмотра ченжлога на лету.

Для поиска пакетов и других функций apt-cache вполне справляется, для установки одиночных пакетов — dpkg -i.

В статье автора вижу только бритву Оккамы, лишний синтаксис, который узнаешь прочитав ман и забудешь через час — практически никому не нужен.
UFO just landed and posted this here
Еще в aptitude нет аналога команды apt-cache policy, похоже.
Которая очень полезна, когда нужно поднять, например,
свой репоз с пэкэджами, особенно если их названия/версии
совпадают с официальными и нужно проверить правильно ли
насетапаны /etc/apt/preferences и тп
И ещё, не раз замечал, что если неосторожной ручной установкой пакета от другой системы или удалением метапакета поставить систему в противоречивое состояние, то apt предлагает варианты решений типа «Снести полсистемы вместе с иксами» или «Ничего не делать». Aptitude в тех же случаях предлагал нормальные многоходовые решения, порой, довольно сложные: понизить версии некоторых пакетов, доставить что-то.
Ещё пример того, как по разному разрешаются зависимости:

aptitude install libqt4-gui=4.5.1-1~ppa1~jaunty1                                           
Reading package lists... Done                                                                                    
Building dependency tree                                                                                         
Reading state information... Done                                                                                
Reading extended state information                                                                               
Initializing package states... Done                                                                              
The following packages are BROKEN:                                                                               
  libqt4-gui                                                                                                     
0 packages upgraded, 1 newly installed, 0 to remove and 6 not upgraded.                                          
Need to get 0B/2,328B of archives. After unpacking 65.5kB will be used.                                          
The following packages have unmet dependencies:                                                                  
  libqt4-gui: Depends: libqtgui4 (= 4.5.1-1~ppa1~jaunty1) but 4.5.3really4.5.2-0ubuntu1 is installed.            
              Depends: libqt4-svg (= 4.5.1-1~ppa1~jaunty1) but 4.5.3really4.5.2-0ubuntu1 is installed.           
              Depends: libqt4-opengl (= 4.5.1-1~ppa1~jaunty1) but 4.5.3really4.5.2-0ubuntu1 is installed.        
              Depends: libqt4-designer (= 4.5.1-1~ppa1~jaunty1) but 4.5.3really4.5.2-0ubuntu1 is installed.      
              Depends: libqt4-assistant (= 4.5.1-1~ppa1~jaunty1) but it is not installable
The following actions will resolve these dependencies:

Remove the following packages:
libqt4-core

Install the following packages:
libqt4-assistant [4.5.1-1~ppa1~jaunty1 (jaunty)]

Downgrade the following packages:
libqt4-dbus [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqt4-designer [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqt4-network [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqt4-opengl [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqt4-phonon [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqt4-qt3support [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqt4-script [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqt4-sql [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqt4-sql-psql [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqt4-svg [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqt4-test [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqt4-webkit [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqt4-xml [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqtcore4 [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
libqtgui4 [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]
qt4-qtconfig [4.5.3really4.5.2-0ubuntu1 (karmic, now) -> 4.5.1-1~ppa1~jaunty1 (jaunty)]

Score is -330

Accept this solution? [Y/n/q/?]


Это только первое решение, предложенное aptitude, если нажать n, будет предложено другое.

А вот что будет при использовании apt-get:

apt-get install libqt4-gui=4.5.1-1~ppa1~jaunty1
Reading package lists... Done                                                                            
Building dependency tree                                                                                 
Reading state information... Done                                                                        
Some packages could not be installed. This may mean that you have                                        
requested an impossible situation or if you are using the unstable                                       
distribution that some required packages have not yet been created                                       
or been moved out of Incoming.                                                                           
The following information may help to resolve the situation:                                             

The following packages have unmet dependencies:
  libqt4-gui: Depends: libqtgui4 (= 4.5.1-1~ppa1~jaunty1) but 4.5.3really4.5.2-0ubuntu1 is to be installed
              Depends: libqt4-svg (= 4.5.1-1~ppa1~jaunty1) but 4.5.3really4.5.2-0ubuntu1 is to be installed
              Depends: libqt4-opengl (= 4.5.1-1~ppa1~jaunty1) but 4.5.3really4.5.2-0ubuntu1 is to be installed
              Depends: libqt4-designer (= 4.5.1-1~ppa1~jaunty1) but 4.5.3really4.5.2-0ubuntu1 is to be installed
              Depends: libqt4-assistant (= 4.5.1-1~ppa1~jaunty1) but 4.5.3really4.5.2-0ubuntu1 is to be installed
E: Broken packages


Ap-get в данном случае вообще отказыватся что-то ставить.
О! Спасибо. Пошел экспериментировать.
оставшиеся пакет, которые потянулись вслед за kubuntu-desktop можно удалить командой aptitude autoremove. как и всё остальное в подобнях случаях
К сожалению, вы не правы.

командой aptitude autoremove
Такой команды нет, скорее всего вы имели в виду apt-get autoremove.

Autoremove не поможет, она удаляет пакеты помеченные «к удалению». Такую метку на эти 200 с хвостиком пакетов никто не ставил. Autoremove скажет, что нечего удалять.

Мне лень расчехлять VirtualBox, что бы показать вам картинки. Может быть, вам хватит этого?
Да, он может.
Путь хомячка
mapk-v ~ $sudo aptitude full-upgrade
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Чтение информации о расширенных состояниях
Инициализация состояний пакетов... Готово
Следующие пакеты будут обновлены:
grub-common grub-pc libgd2-noxpm libhtml-parser-perl
4 пакетов обновлено, 0 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 1 779kБ архивов. После распаковки 0Б будет занято.
Хотите продолжить? [Y/n/?]


2 способ:
sudo aptitude search '~U'
i A grub-common - GRand Unified Bootloader, version 2 (common files)
i A grub-pc - GRand Unified Bootloader, version 2 (PC/BIOS version)
i libgd2-noxpm - GD Graphics Library version 2 (without XPM support)
i libhtml-parser-perl - collection of modules that parse HTML text documents
Ухожу спать. Не туда ответил.
Пожалуйста, не обращайте внимания.
я под дебианом. у меня удаляется. хотя я щас из-по синаптика всё делаю, может я реально раньше purge применял
Время от времени возникает задача установить пачку пакетов в систему, например что-то из *-src или *-dev, потом скомпилять что-то из исходников (это второе что-то для сборки требует наличие header-файлов или разработческих пакетов), а потом снести ставшие ненужными *-src и *-dev пакеты. На память конечно их не запомнишь со всеми их же зависимостями, и на бумажку не запишешь.
Такой выверт может быть сделан с помощью тэгов? Тогда статья прямо что доктор прописал.
Такой выверт может быть сделан с помощью тэгов?
да.
aptitude по умолчанию рекомендованные пакеты ставит. Нехорошо же. И работает медленнее, на старых машинах ощутимо. Что не мешает ему быть круче apt'a )
Присоединяюсь к коментарию, значительно медленне, особенно, когда формирует зависимости.
>aptitude по умолчанию рекомендованные пакеты ставит. Нехорошо же.

Ну никто же не мешает указать флаг -R? ;)
Я поэтому и сказал, что по умолчанию. Там есть даже гламурное ncurses-окно конфига, где можно это отключить.
это официальная политика.
с 9.10 и apt-get тоже ставит рекомендованные.

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

из-за этого и возникает спор aptitude vs. apt-get

вообще конечно правильно — aptitude. просто у людей не хватает воли удалить apt-get что обещали ещё в etch сделать.
спасибо буду теперь пользоваться и aptitude

единственное не понял зачем нужны метки пакетов? это типа тегов, которые потом можно использовать для групповых манипуляций с пакетами?
Чтобы потом быстренько удалить всё ненужно не записывая, что поставилось
С интересом ждал этой статьи, после прошлой (инвайтнул бы автора еслиб мог). Можно покритиковать? :)

1) Логичность синтаксиса. И единство управления. — Для 90% (а может 91, 734567%) «адвансед юзер» задач использование apt-get // cjhhhb? ghb[lbnmz jnrkfyznmcz///
Возможно, что вы и правы.
Вот, только я искренне надеюсь, что хотя бы часть «полезных советов», статей, how-to пишут оставшиеся 10% «адвансед юзер», понимающие, что они делают, зачем они это делают, и как они это делают. F yt ghjcnj yf,bhf.obt фзе-пуе штыефдд///
А чем лучше обновления на систему накатывать aptitude или Synaptic (графическую тулзу для пакетов)?
Да и можно ещё пару слов про Synaptic, и его возможности в сравнении с aptitude.
Раньше aptitude не был настолько умным. В новых версиях *бунты он становится действительно гибким и интеллектуальным.
он не менялся.
Раз уж зашла речь об установке ПО в Ubuntu, подскажите-ка мне вот что…
Как я понял, в Ubuntu есть куча разных методов установки софтовых пакетов: apt (apt-get/apt-cache/apt-mark), aptitude, Synaptic, dpkg, GDebi, да ещё и какая-то неведомая «Установка/удаление программ». С утилитами dpkg и GDebi более-менее понятно, это просто для установки отдельных .deb-пакетов без всяких зависимостей. Но вот по остальному не совсем понятно, зачем их так много? И главное, насколько они совместимы между собой в одной системе? Могу ли я поставить часть софта через apt-get, ещё несколько пакетов через aptitude, а потом ещё что-то через Synaptic и «Установку/удаление программ», не будет ли конфликтов, и нормально ли в этом случае будут отслежваться зависимости? Или нужно выбрать что-то одно и только этот менеджер пакетов всегда использовать для установки/обновления/удаления всех пакетов? Или можно без проблем поставить пакеты одним менеджером пакетов, обновить их другим менеджером, а потом частично удалить третьим менеджером пакетов, и при этом все зависимости без проблем отследятся и никаких проблем не будет ни сразу, ни в будущем?
Уж простите за идиотские вопросы, дяденьки опытные линуксоиды.
Всё можете. Всё это — лишь интерфейсы к APT. Единственное что — вроде бы как раз всякие тэги, hold пакетов и т.п. — это вещь локальная для программы. А установка/обновление/удаление ведутся через базу самого APT.
GDebi, кстати, зависимости пакета скачивает за милую душу. Недавно столкнулся.
всё просто. вопрос называется apt-get+apt-cache vs. aptitude

в какой-то момент времени появился консольный псевдографический менеджер управления пакетов aptitude. он понравился команде разработки debian и решили его сделать менеджером по-умолчанию.

после чего закипела работа и туда добавили много интелектуальных функций.

но в какой-то момент времени его забросили и некоторых функций типа apt-cache policy не добавили.

теперь вот новички и путаются.

вообще правильно использовать aptitude и иногда прибегать к помощи таких программ как apt-cache чтобы юзать возможности недописанные в aptitude (как правило начинающему пользователю они не нужны).

вот такая капуста. надо чтобы кто-нить взял и закоммитил нужный функционал в aptitude чтобы от apt-get избавится раз и навсегда
А он может показать мне список пакетов, которые будут обновлены командой upgrade?
Он может.
mapk-v ~ $sudo aptitude search '~U'
i A grub-common - GRand Unified Bootloader, version 2 (common files)
i A grub-pc - GRand Unified Bootloader, version 2 (PC/BIOS version)
i libgd2-noxpm - GD Graphics Library version 2 (without XPM support)
i libhtml-parser-perl - collection of modules that parse HTML text documents

И он всегда при обновлении сообщает, что собирается обновлять.
aptitude'у не хватает
1. Скорости работы
2. Аналога apt-cache policy, как было сказано выше — важно, если есть stable/testing/unstable/experimental, а то еще и бэкпорты :)
3. Аналога apt-get source (а в идеале еще бы checkinstall туда встроить...)
4. Иногда очень странно работают холды (+ несовместимо с dpkg'шными холдами)
5. Не поддерживает даунгрейд системы. Манипуляции с preferences + apt-get позволяет даунгейдить систему, например, со сквиза на ленни, а вот те же preferences + aptitude — никакого результата.
6. Неочевидна смена версии установленного пакета — aptitude -t ветка install, хотя логично было бы ожидать upgrade вместо install.
В целом да, удобный инструмент. Во всех случаях, кроме вышеуказанных, использую именно его.
Даунгрейд в дебиане считается очень неприличной вещью. Я не помню, где это было написано, то ли в дебиан полиси, то ли в рассылке где-то, но смысл фразы был такой, что «даунгрейд пакета — самая мерзкая вещь, какую только можно придумать. Это последний способ проблемы, который должен рассматриваться, в том числе и при резолвинге зависимостей». А уж про даунгейд всей системы вообще всегда говорилось — если у вас после этого заработает — повезло.
Хорошего в этом действительно мало, тем не менее, бывали случаи, когда в этом была необходимость. Я не говорю, что это хорошо, я говорю, что apt-get это умеет, а aptitude — нет :)
В aptitude больше всего бесит, когда он выполняет всякие разные действия по проверке целостности после read-only операций. Вот зачем?
UFO just landed and posted this here
aptitude search «ruby mp3» | wc -l
3
В целом согласен со всем кроме одного:
Таким образом, aptitude заменяет кучу инструментов. Что вам проще: запомнить кучу разных инструментов, или только один инструмент? При условии, что кроме названия, надо помнить ещё и команды?
Мне кажется, что логичнее, проще и удобнее, в этом случае aptitude.

Философия UNIX гласит об обратном :)
Не вижу ни малейшего противоречия.

apt состоит из множества небольших специализированных программ взаимодействующих друг с другом.
aptitude всего лишь еще один слой, тонкая надстройка предоставляющая наиболее часто используемые команды и миниязык запросов.
Ничуть. Философия UNIX вовсе не говорит о бесконечном дроблении функционала, она говорит о том, что программа должна выполнять одну функцию и выполнять ее хорошо. aptitude выполняет одну функцию — он работает с пакетами. Точно так, как awk работает с текстом или gcc — с исходным кодом. Никому ведь не придет в голову без особой на то необходимости вместо запуска gcc запускать отдельно препроцессор, отдельно компилятор, отдельно ассемблер, отдельно линковщик.
Работает с пакетами? Неужели и функционал dpkg-utils там есть? Кстати, много кому придёт в голову запускать отдельно препроцессор, ассемблер и линковщик. От чего gcc не становится менее удобной утилитой для автоматизации самых типовых задач.
Работает с пакетами? Неужели и функционал dpkg-utils там есть?

А sed работает с текстом. Почему Вы не удивляетесь, что там нет функционала перла?
Кстати, много кому придёт в голову запускать отдельно препроцессор, ассемблер и линковщик

Никому ведь не придет в голову БЕЗ ОСОБОЙ НА ТО НЕОБХОДИМОСТИ вместо запуска gcc запускать отдельно препроцессор, отдельно компилятор, отдельно ассемблер, отдельно линковщик

Я скачал пакет. И как мне его установить через aptitude? Элементарная операция же. И пример с sed дурацкий.

Ну да, никому не придёт в голову. Зачем этот линковщик вообще нужен?
Ну раз этот пример для Вас дурацкий, обсуждать больше нечего.
Как это пафосно и красиво. Конечно, нечего. Давайте без сомнительных сравнений. Aptitude это не софтина для работы с пакетами. Оно всего лишь предоставляет функционал apt-utils в одной программе. А sed и perl просто работают с текстом, но в разных терминах.
Вот у людей немного другое мнение. Лично я пользуюсь в основном apt-get и буду продолжать им пользоваться, я не хочу сказать что aptitude плохой, им я тоже иногда пользуюсь для но только установки пакетов, а на счет того что апт не выносит все что поставил попробуйте apt-get autoremove.

ps: и, да, скриншоты терминала как то не тру
Я видел этот топик. И, повторюсь, imho, сейчас и apt и aptitude мусора за собой не оставляют.
Может быть, в 2006 году, что то и было по другому.
Дак это 2006 год!
Если проводить аналогии с новым софтом, то есть пример Empathy, дефолтный мессенджер в Убунту 9.10: посмотрел и остался на Gajim и Pidgin. Но уверен, что в будущем это будет достаточно хороший клиент.
У aptitude это время становления уже прошло.
тут не может быть «мнений». когда разработчики дистрибутива настаивают на использовании той или иной тулзы все остальные мнения считаются пустой болтовнёй.
Ожидал в статье увидеть скрины интерфейса aptitude (это который появляется в случае запуска без параметров). Использую его для обновлений — удобно контролировать что ставить, а что нет.

Да и вообще, не помню когда последний раз запускал какой-нибудь гуишный менеджер пакетов (помимо aptitude).
В пользу apt-get:

«aptitude does not have Super Cow Powers.»

=)
$ aptitude moo; aptitude -v moo; aptitude -vv moo; aptitude -vvv moo; aptitude -vvvv moo; aptitude -vvvvv moo; aptitude -vvvvvv moo
Понравилось.
— Естественно это слон, которого проглотил удав.
Это ладно, в Убунту есть более феерическая фигня — «Центр приложений убунту» в главном меню.
Штука на первый взгляд довольно удобная — приложения удобно разбиты по категориям, установка и удаление очень простые. Проблема в том, что эта штука ставит приложения очень криво. Например, я поставил Эклипс через нее. Все вроде бы установилось — приложение есть в главном меню, нормально запускается и работает. Проблема начилась когда я попытался установить на Эклипса плагины — стабильно не хватало какой-то либы equinox отвечающей как раз за работу с плагинами.
В консоли дал команду:

$ apt-cache policy eclipse
eclipse:
  Установлен: не установлен
  Кандидат: 3.5.1+repack~1-0ubuntu1
  Таблица версий:
 *** 3.5.1+repack~1-0ubuntu1 0
        500 http://ru.archive.ubuntu.com karmic/universe Packages
        100 /var/lib/dpkg/status 

Как это «не установлен», если я его вижу и даже могу запускать?
После того как удалил из «Центра» и установил руками через apt эклипс нормально заработал и плагины стали ставиться и работать как положено.
А что при этом говорил aptitude? Пробовали ли вы через него устанавливать плагины к эклипсу?
Там очень мало плагинов и нет того, что мне нужно, поэтмому я все ставлю через сам Эклипс.

$ aptitude search eclipse
i   eclipse                                  - Extensible Tool Platform and Java IDE                                           
i A eclipse-jdt                            - Eclipse Java Development Tools (JDT)                                            
i A eclipse-pde                          - Eclipse Plug-in Development Environment (PDE)                                   
i A eclipse-platform                   - Eclipse platform without plug-ins to develop any language                       
i A eclipse-platform-data           - Eclipse platform without plug-ins to develop any language (data)                
i A eclipse-plugin-cvs                 - Eclipse Team Integration (CVS support)                                          
i A eclipse-rcp                           - Eclipse Rich Client Platform (RCP) 
Sign up to leave a comment.

Articles