or10n 06.11.2009 23:06
Я рекомендую — aptitude vs apt. 5 причин, почему я использую aptitude
Пять параметров, по которым aptitude превосходит (по четвертому параметру не уступает) apt:1. Логичность синтаксиса. И единство управления.
2. Гибкость поиска.
3. Проставление меток пакетов.
4. Разрешение зависимостей.
5. Интерфейс.
1. Логичность синтаксиса. И единство управления
Сравните:
Установка:
1 |
|
Просмотр информации о пакете:
1 |
|
Метка пакета:
1 |
|
Таким образом, aptitude заменяет кучу инструментов. Что вам проще: запомнить кучу разных инструментов, или только один инструмент? При условии, что кроме названия, надо помнить ещё и команды?
Мне кажется, что логичнее, проще и удобнее, в этом случае aptitude.
2. Гибкость поиска
aptitude очень часто ругают: «неправильно ищет». Сравните сами:
aptitude по умолчанию ищет только заданное слово только в именах пакетов, не трогая описание.
А не по умолчанию вот так:
В aptitude используются поисковые запросы. Это дает простор для фантазии: например, что там у нас kde-шного установлено?
1 |
|
Самые популярные поисковые запросы:
~nимя — искать в имени пакета
~dтекст — искать в описании пакета
~i — отбирает только уже установленные пакеты
~U — отбирает пакеты, которые можно обновить
В качестве любого из шаблонов может выступать регулярное выражение. Например, ~n^wget выберет пакеты, имена которых начинаются с wget. Шаблоны можно группировать логическими операндами, например ~i~skde (и установленные, и из секции KDE). При указании нескольких шаблонов поиска к ним применяется логическое И, если шаблоны разделить "|", то логическое или. Отрицание — "!", группирование в скобках.
И, вообще, в документации всё лучше описано.
Сможете вы так же гибко осуществить поиск используя apt-cache?
3. Проставление меток пакетов
1 |
sudo aptitude install --add-user-tag keyword-tag more different packageы.
|
Сможете сделать так, используя apt-get?
4. Разрешение зависимостей
Пожалуй, самый спорный момент.
И теперь самое интересное:
Может быть, aptitude пометил пакеты «под снос», а удалит их когда-нибудь потом?
Нет. Ладно, удалим по user-tag, не зря же мы его добавляли.
Количество установленных и удаленных пакетов совпадает.
Теперь, то-же самое с apt:
Почему-то я ожидал этого.
Вы можете сказать, что kubuntu-desktop — плохой виртуальный пакет, и всё из-за этого. Я проверил на wmaker и на apache2. Зависимости решаются одинаково.
5. Интерфейс
Сравните:
aptitude: всё выровнено, аккуратненько показано, какие пакеты установлены, какие можно установить, какие помечены к удалению. Пакеты отсортированы по алфавиту.
apt: вывалено кучей текста. Кому надо, разберется.
Запуская aptitude без параметров, попадаешь в псевдографический интерфейс, и, пока пакеты качаются, можно поиграть в сапера.
По моему, это и есть, забота о пользователе.
P.S. Пост является копипастом с habrahabra, прошу за это сильно не пинать, т.к. я считаю данную информацию очень полезной.
Username 06.11.2009 23:08 #
+ 2 -
Оформи как пост-ссылку, копипасту убери. И ради Бога, вставляй кат в таких статьях
я не знаю как сделать из этого пост ссылку :(
а кат я сделал сразу
а кат я сделал сразу
уже никак. Нужно удалить и заново запостить. В самом верху там выбираешь тип поста - пост, опрос, пост-ссылка.
Два скриншота терминала вместо одного — это нечто. В целом статья неплохая, но именно потому эти скрины так бросаются в глаза.
При копировании потерялось зачёркивание слова «плохой» в следующей строке:
P.S. И хотя это уже обсудили выше, повторю ещё раз для остальных авторов: пост-ссылка была бы уместнее.
При копировании потерялось зачёркивание слова «плохой» в следующей строке:
kubuntu-desktop — плохой виртуальный пакет
P.S. И хотя это уже обсудили выше, повторю ещё раз для остальных авторов: пост-ссылка была бы уместнее.
Таким образом, aptitude заменяет кучу инструментов. Что вам проще: запомнить кучу разных инструментов, или только один инструмент? При условии, что кроме названия, надо помнить ещё и команды?
Вот так вот и появился Windows.
А в unix и Linux используется принцип - каждую задачу делает одна маленькая утилитка, но делает её хорошо.
В остальном всё совершенно одинаково. А зачем пакетному менеджеру интерфейс и встроенный сапёр - я не понимаю. Я предпочитаю, пока пакеты качаются делом заняться в другом окне.
И да. Ubuntu захватывает мир.
Вы статью хоть читали? Картинки тут чтобы показать вывод двух команд, ее юзабильность, кому то это нах не надо, а вот мне удобнее когда информации проще и нагляднее представлена как зачастую в случае с aptitude, сделать это обычной версткой текстового вывода тот еще гемморой, а скриншот простой и наглядный вариант, причем тут убунту также не понял, aptitude стандартный дебиановский инструмент.
$ aptitude search wget
p epiphany-extension-gwget - Gwget extension for Epiphany web browser
p gwget - GNOME интерфейс для wget
v gwget2 -
i wget - retrieves files from the web
p wget-el - an interface for wget on Emacsen
В каком месте проблемы с вёрсткой?
Статью читал. Как и написал выше, не увидел больших преимуществ aptitude. Всё, что перечислено, костыли, которые и так умеют другие утилиты, как-то apt-get, apt-cache и т.д. К слову, это не полный набор. Есть ещё очень полезная вещь, под названием apt-file, например.
А про Ubuntu было сказано по поводу скриншотов. Ведь это же дефолтная убунтовская тема. Почему-то я не видел ни одного debian'щика, который выкладывает скриншоты терминала, а вот подобных описаний, сделаных убунтоидами - тысячи.
ну если обычная копипаста с терминала то хорошо, но опять таки картинка особенно в этом примере со сравнением вывода куда нагляднее такого голого текста. а по сабжу тут каждый выбирает сам, мне проще знать одну команду чем несколько apt-get, apt-cache и т.д. Плюс в некоторых вопросах разрешения зависимостей спасал только aptitude, указанные преимущества apt указанные в комментах к оригиналу статьи мне пока в жизни не были нужны.
довить на убунтоидов смысла нет. Среди них нубья больше лишь за счет того, что их самих полно.
> говорят Ubuntu переводится как "Я не смог установить slackware", а как переводится Mandrive?
"Я не смог установить Slackware когда ещё не было Ubuntu".
"Я не смог установить Slackware когда ещё не было Ubuntu".
(с) ibash.org.ru
Ubuntu is an ancient african word which means "I can't configure Slackware"
этой фразе лет куда больше, чем йаБашу
этой фразе лет куда больше, чем йаБашу
< сарказм>
Снова статья оттуда
< /сарказм>
P.S. /me задумался об переходе на aptitude
Снова статья оттуда
< /сарказм>
P.S. /me задумался об переходе на aptitude
Раньше для того, чтобы процитировать команды терминала копировали текст и вставляли его, а теперь...
За это плюс.Просветите меня в вопросе о возможности докачивания пакета после обрыва связи: apt-get нивкакую не хотел докачивать пакеты у него действительно такая функция отсутствует? Если да, то в таком случае, у aptitude есть еще один плюс - он умеет это делать!
Просветите меня в вопросе о возможности докачивания пакета после обрыва связи: apt-get нивкакую не хотел докачивать пакеты у него действительно такая функция отсутствует?
Ну, как говорится, из коробки.
Вот. Запускаю что-нибудь большое качать(ключ -d поставил на всякий случай, потому как мне эти пакеты в системе не нужны :)).
$ apt-get -d install linux-headers-2.6.26-2-xen-686
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Будут установлены следующие дополнительные пакеты:
linux-headers-2.6.26-2-common-xen
НОВЫЕ пакеты, которые будут установлены:
linux-headers-2.6.26-2-common-xen linux-headers-2.6.26-2-xen-686
обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 4237kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 35,6MB.
Хотите продолжить <�Д/н>? y
Получено:1 http://security.debian.org lenny/updates/main linux-headers-2.6.26-2-common-xen 2.6.26-19lenny1 <3851kB>
22% <1 linux-headers-2.6.26-2-common-xen 940888/3851kB 24%>^C
И прерываю по Ctrl+C. Как видим, скачалось 22%
Теперь запускаю снова и сразу же после того, как согласился на установку - прерываю.
$ apt-get -d install linux-headers-2.6.26-2-xen-686
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Будут установлены следующие дополнительные пакеты:
linux-headers-2.6.26-2-common-xen
НОВЫЕ пакеты, которые будут установлены:
linux-headers-2.6.26-2-common-xen linux-headers-2.6.26-2-xen-686
обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 4237kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 35,6MB.
Хотите продолжить <�Д/н>? y
Получено:1 http://security.debian.org lenny/updates/main linux-headers-2.6.26-2-common-xen 2.6.26-19lenny1 <3851kB>
23% <1 linux-headers-2.6.26-2-common-xen 2862573/3851kB 74%>^C
Остановилось на 23% процентах.
Недокачанные пакеты сохраняются в /var/cache/apt/archives/partial/
Если не верите, попробуйте у себя.
Первый пункт - это очередной спор про git и т.н. юникс-вей.
Что лучше - git-clone или git clone?
Юникс-вей говрит что первый способ лучше, ибо 1 утилита - делает одно действие.
Вобщем первый пункт - это не преимущество, это отличие.
Что лучше - git-clone или git clone?
Юникс-вей говрит что первый способ лучше, ибо 1 утилита - делает одно действие.
Вобщем первый пункт - это не преимущество, это отличие.
По пунктам я бы вообще мог холиварить на несколько дней. :)
1. Логичность синтаксиса. И единство управления. - Синтаксис apt-get'а не менее логичен, а единство управления - это минус.
2. Гибкость поиска. - база пакетоы одна и та же. Поиск идёт одинаковыми средствами. Особого различия не обнаружил.
3. Проставление меток пакетов. - apt-mark в руки и ставьте сколько угодно меток.
4. Разрешение зависимостей. - просто промолчу.
5. Интерфейс. - на любителя. Для кого-то это может и плюс, для многих - это лишняя свистелка.
1. Логичность синтаксиса. И единство управления. - Синтаксис apt-get'а не менее логичен, а единство управления - это минус.
2. Гибкость поиска. - база пакетоы одна и та же. Поиск идёт одинаковыми средствами. Особого различия не обнаружил.
3. Проставление меток пакетов. - apt-mark в руки и ставьте сколько угодно меток.
4. Разрешение зависимостей. - просто промолчу.
5. Интерфейс. - на любителя. Для кого-то это может и плюс, для многих - это лишняя свистелка.
Я любитель.
Но кажется в вопросах установки дело не в свистелках.
Кто-то еще про регулярки грил ;)
(сорри за скрин, но лень сие в html переводить ;)
Что касается первого пункта, то внешне это можно вывернуть в любую сторону.
Хотите комбайн? Пишите функцию на баше, с case`ом на первый параметр, потом shift
Хотите Ъ? Наделайте алиасов supertude="aptitude blabla"...
Но вот писать бы, имхо, все-таки unix-way...
Но кажется в вопросах установки дело не в свистелках.
Кто-то еще про регулярки грил ;)
(сорри за скрин, но лень сие в html переводить ;)
Что касается первого пункта, то внешне это можно вывернуть в любую сторону.
Хотите комбайн? Пишите функцию на баше, с case`ом на первый параметр, потом shift
Хотите Ъ? Наделайте алиасов supertude="aptitude blabla"...
Но вот писать бы, имхо, все-таки unix-way...
Не, ну не стоит сравнивать emerge и бинарные менеджеры пакетов. Это слегка разные вещи. ;)
Строго говоря git-clone и git clone — это одно и то же. git clone просто молча вызывает отдельный выполнимый файл git-clone, так что в любом случае принцип «одно действие — одна программа» не нарушается.
Строго говоря git-clone и git clone — это одно и то же.
Т.е. по вашему, пары команд из первого пункта - это не одно и то же?
git clone просто молча вызывает отдельный выполнимый файл git-clone
vladimirga@gvv:~$ whereis -b git
git: /usr/bin/git
vladimirga@gvv:~$ whereis -b git-clone
git-clone:
принцип «одно действие — одна программа» не нарушается
Как видите - нарушается.
kstep@whitebook:pts/7/usr/lib/git-core.^_^# lf
git* git-count-objects* git-help* git-merge-subtree* git-relink* git-stripspace*
git-add* git-daemon* git-http-fetch* git-mergetool* git-remote* git-submodule*
git-add--interactive* git-describe* git-http-push* git-mergetool--lib* git-remote-curl* git-svn*
git-am* git-diff* git-imap-send* git-merge-tree* git-repack* git-symbolic-ref*
git-annotate* git-diff-files* git-index-pack* git-mktag* git-replace* git-tag*
git-apply* git-diff-index* git-init* git-mktree* git-repo-config* git-tar-tree*
git-archive* git-difftool* git-init-db* git-mv* git-request-pull* git-unpack-file*
git-bisect* git-difftool--helper* git-instaweb* git-name-rev* git-rerere* git-unpack-objects*
git-bisect--helper* git-diff-tree* git-log* git-pack-objects* git-reset* git-update-index*
git-blame* git-fast-export* git-lost-found* git-pack-redundant* git-revert* git-update-ref*
git-branch* git-fast-import* git-ls-files* git-pack-refs* git-rev-list* git-update-server-info*
git-bundle* git-fetch* git-ls-remote* git-parse-remote* git-rev-parse* git-upload-archive*
git-cat-file* git-fetch-pack* git-ls-tree* git-patch-id* git-rm* git-upload-pack*
git-check-attr* git-fetch--tool* git-mailinfo* git-peek-remote* git-send-pack* git-var*
git-checkout* git-filter-branch* git-mailsplit* git-prune* git-shell* git-verify-pack*
git-checkout-index* git-fmt-merge-msg* git-merge* git-prune-packed* git-shortlog* git-verify-tag*
git-check-ref-format* git-for-each-ref* git-merge-base* git-pull* git-show* git-web--browse*
git-cherry* git-format-patch* git-merge-file* git-push* git-show-branch* git-whatchanged*
git-cherry-pick* git-fsck* git-merge-index* git-quiltimport* git-show-index* git-write-tree*
git-clean* git-fsck-objects* git-merge-octopus* git-read-tree* git-show-ref*
git-clone* git-gc* git-merge-one-file* git-rebase* git-sh-setup*
git-commit* git-get-tar-commit-id* git-merge-ours* git-rebase--interactive* git-stage*
git-commit-tree* git-grep* git-merge-recursive* git-receive-pack* git-stash*
git-config* git-hash-object* git-merge-resolve* git-reflog* git-status*
Удалите из /usr/lib/git-core git-clone и попробуйте запустить команду git clone. Всё станет понятно.
Спасибо, поржал. С тех перцев, что прогнали убунту и юникс-вей.
Для любителей повопить: "Одна утилита выполняет одну функцию". Лично для меня, работа с пакетами - это и есть "одна функция". Среди прочих, опционально эта утилита должна не тупо ставить пакеты, но и смотреть инфу о них, производить поиск по ним и разрешать зависимости. И не надо орать, что аптитуд - это, мол, не юникс-вей.
PS А emacs это вообще замаскированный Windows 8, да.
Для любителей повопить: "Одна утилита выполняет одну функцию". Лично для меня, работа с пакетами - это и есть "одна функция". Среди прочих, опционально эта утилита должна не тупо ставить пакеты, но и смотреть инфу о них, производить поиск по ним и разрешать зависимости. И не надо орать, что аптитуд - это, мол, не юникс-вей.
PS А emacs это вообще замаскированный Windows 8, да.
emacs редактирует тексты и, с помощью, плагинов и скриптов даёт дополнительные возможности. При желании плагины можно включить или выключить. Каждый плагин по сути является небольшой утилитой, написанной на lisp.
Точно так же, к примеру, устроен сервер jabberd2. Есть ядро(router), который управляет кучей модулей, и все они работают в связке, но только если администратор их подключит.
Та же картина с asterisk. То же самое со всем известным apache. То же самое почти с любым софтом в никсах. Учите матчасть.
А работа с пакетами делится на поиск пакетов и информации о них, установка, удаление, управление зависимостями, сборка пакетов из исходников или бекпортирование, перенос пакетов из других систем(alien), поиск по содержимому пакетов и ещё целую кучу вещей.
Это тоже должна делать одна утилита? Вы предлагаете объединить apt-get, apt-cache, apt-file, apt-mirror, dpkg-buildpackage, dch, dpkg-*(вместо звёздочки подставить кучу разнообразных функций, начиная от dpkg-reconfigure и до dpkg-source и подобных)?
Спасибо, не надо.
Точно так же, к примеру, устроен сервер jabberd2. Есть ядро(router), который управляет кучей модулей, и все они работают в связке, но только если администратор их подключит.
Та же картина с asterisk. То же самое со всем известным apache. То же самое почти с любым софтом в никсах. Учите матчасть.
А работа с пакетами делится на поиск пакетов и информации о них, установка, удаление, управление зависимостями, сборка пакетов из исходников или бекпортирование, перенос пакетов из других систем(alien), поиск по содержимому пакетов и ещё целую кучу вещей.
Это тоже должна делать одна утилита? Вы предлагаете объединить apt-get, apt-cache, apt-file, apt-mirror, dpkg-buildpackage, dch, dpkg-*(вместо звёздочки подставить кучу разнообразных функций, начиная от dpkg-reconfigure и до dpkg-source и подобных)?
Спасибо, не надо.
emacs редактирует тексты и, с помощью, плагинов и скриптов даёт дополнительные возможности.
Ну, по-вашему выходит, что тем не менее емакс с подключенными плагинами абсолютно не юникс-вей.
А работа с пакетами делится на поиск пакетов и информации о них, установка, удаление, управление зависимостями
Вот это точно может быть в одной утилите. Не вижу причин для того, чтобы не объединить это.
Если честно, из вашего ответа просто не смог увидеть опровержения своего мнения. Только "Я считаю, что это плохо".
Ну, по-вашему выходит, что тем не менее емакс с подключенными плагинами абсолютно не юникс-вей.
Давайте не путать теплое с мягким. Плагины, выполняющие в сочетании с ядром любые функции - unix-way. Плагины можно рассматривать как маленькие утилиты.
Комбайн, из которого нельзя вынуть что-то - не unix-way.
Не нужен мне Жаббер в Емаксе, вырубил и счастлив.
Не нужно маркирование в Аптитуде, вряд ли получиться избавиться.
Из вашего поста извлек "Я не знаю unix-way".
ИМХО.
Во развели базар опция vs программа.
Уж флеймить, так не по детски, например что юникс-вейнее родной tar или пришлый zip, но tar все делает одной командой, а zip имеет пару unzip.
Уж флеймить, так не по детски, например что юникс-вейнее родной tar или пришлый zip, но tar все делает одной командой, а zip имеет пару unzip.