LINUX.ORG.RU

Cupt 2.0.0

 , ,


0

1

Вышла новая стабильная версия программы Cupt - полуофициальной альтернативы APT для управлениями пакетами в дистрибутивах Debian и производных от него.

Главные изменения относительно ветки 1.x:

  • Проект переписан на С++(0x). Увеличена скорость работы и уменьшено потребление памяти.
  • Написан справочник по возможностям от простого к сложному (веб-копия).
  • Поддержка исходных Debian-пакетов с больше чем одним тарболлом исходных файлов.
  • Сообщения об ошибках в конфигурационных файлах стали намного подробнее.
  • Поддержка сроков устаревания заголовков репозитория.
  • Добавлен метод скачивания, основанный на wget (меньше зависимостей, чем libcurl).
  • Переработан алгоритм порядка вызова dpkg для пакетов, теперь пакеты в среднем находятся меньше времени в промежуточных состояниях.
  • Добавлена группа параметров для тонкого контроля приоритетов решателя зависимостей (cupt::resolver::score::*).
  • Если не удалось решить зависимости, подробно объясняется, почему (пример).
  • Возможность добавлять аргументы решателю зависимостей (во время показа возможных решений, вариант 'a') без перезапуска всей программы.
  • Исправления некоторых ошибок.

Сравнение с другими менеджерами пакетов

>>> Домашняя страница проекта

фигня какая-то

$ cupt show --all-versions cupt
 E: expected: semicolon (';') before 'Dir::Media::MountPath "/media/cdrom";
 '
 E: unable to parse config file '//etc/apt/apt.conf.d/00CDMountPoint'
 W: skipped configuration file '//etc/apt/apt.conf.d/00CDMountPoint'
 E: unable to open release file '//var/lib/apt/lists/ftp.debian.org_debian_dists_sid_Release': Нет такого файла или каталога
 W: skipped the index file '//var/lib/apt/lists/ftp.debian.org_debian_dists_sid_main_binary-i386_Packages'
 E: unable to open release file '//var/lib/apt/lists/ftp.debian.org_debian_dists_sid_Release': Нет такого файла или каталога
 W: skipped the index file '//var/lib/apt/lists/ftp.debian.org_debian_dists_sid_contrib_binary-i386_Packages'
 E: unable to open release file '//var/lib/apt/lists/ftp.debian.org_debian_dists_sid_Release': Нет такого файла или каталога
 W: skipped the index file '//var/lib/apt/lists/ftp.debian.org_debian_dists_sid_non-free_binary-i386_Packages'
 E: unable to open release file '//var/lib/apt/lists/ftp.debian.org_debian_dists_experimental_Release': Нет такого файла или каталога
 W: skipped the index file '//var/lib/apt/lists/ftp.debian.org_debian_dists_experimental_main_binary-i386_Packages'
 E: unable to open release file '//var/lib/apt/lists/ftp.debian.org_debian_dists_experimental_Release': Нет такого файла или каталога
 W: skipped the index file '//var/lib/apt/lists/ftp.debian.org_debian_dists_experimental_contrib_binary-i386_Packages'
 E: unable to open release file '//var/lib/apt/lists/ftp.debian.org_debian_dists_experimental_Release': Нет такого файла или каталога
 W: skipped the index file '//var/lib/apt/lists/ftp.debian.org_debian_dists_experimental_non-free_binary-i386_Packages'
 E: unable to open release file '//var/lib/apt/lists/download.skype.com_linux_repos_debian_dists_stable_Release': Нет такого файла или каталога
 W: skipped the index file '//var/lib/apt/lists/download.skype.com_linux_repos_debian_dists_stable_non-free_binary-i386_Packages'
 Package: cupt
 Version: 2.0.0~rc2
 Status: installed
 Automatically installed: no
 Source: cupt
 Priority: optional
 Section: admin
 Uncompressed size: 1208KiB
 Maintainer: Eugene V. Lyubimkin <jackyf@debian.org>
 Architecture: i386
 Depends: libboost-program-options1.42.0 (>= 1.42.0-1), libc6 (>= 2.3.6-6~), libcupt2-0 (>= 2.0.0~rc2), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.5)
 Suggests: sensible-utils, libreadline6
 Description: alternative front-end for dpkg -- console interface
 This package provides a console interface to Cupt library, which is a
 re-implementation of libapt-pkg C++ library. The aim is to produce
 more strict, more robust, less buggy front-end than APT.
 .
 Cupt uses the same APT infrastructure, e.g. index files, deb cache archive
 files, configuration files. It understands some of widely used APT options.
 .
 Some features:
 - strict full-case resolver;
 - resolver reasons tracking;
 - command-line and APT-like option name checker;
 - case-sensitive search;
 - pinning by source package name;
 - pinning by package groups using shell-like patterns;
 - configurable 'depends' and 'rdepends' subcommands;
 - 'satisfy' subcommand;
 - support of LZMA-compressed indexes;
 - source versions synchronization;
 - 'shell' subcommand (to get command history, search etc. working, install
 the package 'libreadline6');
 - integration with debdelta (to get it, install the package 'debdelta');
 - system snapshots (needs packages 'dpkg-dev' and 'dpkg-repack').
 .
 Its interface is mostly like apt-get/aptitude console interface.
 Homepage: http://wiki.debian.org/Cupt
 

Чем лучше aptitude (кроме скорости)?

Turbid ★★★★★ ()
Ответ на: комментарий от Turbid

Update не смог пройти полностью, потому что какой-то Skype-репозиторий невозможно было обновить. Тебя смущает слово 'error'?

JackYF ★★★★ ()
Ответ на: комментарий от JackYF

update не смог пройти полностью, потому что какой-то Skype-репозиторий невозможно было обновить.

почему aptitude update проходит?

и что за:

E: expected: semicolon (';') before 'Dir::Media::MountPath "/media/cdrom";
'
E: unable to parse config file '//etc/apt/apt.conf.d/00CDMountPoint'
W: skipped configuration file '//etc/apt/apt.conf.d/00CDMountPoint'

?

Тебя смущает слово 'error'?

программа завершилась с ошибкой => программа не работает как ожидается. почему меня это не должно смущать?

Turbid ★★★★★ ()
Ответ на: комментарий от Turbid

>почему aptitude update проходит?

Покажи его вывод тоже.

E: expected: semicolon (';') before 'Dir::Media::MountPath «/media/cdrom»;


Ошибка в синтаксисе конфигурационного файла.

программа завершилась с ошибкой => программа не работает как ожидается. почему меня это не должно смущать?


Представь себе, что ты пишешь программу 'cp'. Ей дали задание скопировать 10 файлов. 9 файлов скопировались нормально, а последний - облом, ибо место на диске кончилось, 'cp' говорит: «error: ...». Программа 'cp' не работает как ожидается?

JackYF ★★★★ ()
Ответ на: комментарий от JackYF

>Покажи его вывод тоже.

http://pastebin.com/nseYiaYj

Представь себе, что ты пишешь программу 'cp'...Программа 'cp' не работает как ожидается?


Представь что cp копирует нормально и без ошибок, а yet-another-cp выдает ошибку. Да, yet-another-cp не работает как ожидается.

Turbid ★★★★★ ()

Прикрутили бы возможность сборки из сорцов перешел бы с генты назад на деб.

Лого дебиана теперь красивое в разделе.

anonymous ()
Ответ на: комментарий от Turbid

ну и чтоб два раза не вставать:

$ cat /etc/apt/sources.list

deb http://ftp.debian.org/debian/ sid main contrib non-free
deb http://ftp.debian.org/debian/ experimental main contrib non-free

deb http://deb.opera.com/opera/ sid non-free
deb http://download.skype.com/linux/repos/debian/ stable non-free
deb http://qutim.org/debian/unstable unstable main
Turbid ★★★★★ ()

а есть у дебиана world-файл как у генты? как оно ваще определяет какие пакеты autoremove удалять будет?

anonymous ()

Прошел по ссылке. Каких-то прям охрененных преимуществ перед aptitude не нашел. Зачем нужен этот ваш cupt?

Deleted ()

Мне хватало и апта. Хотя по разрешению зависимостей любопытно будет глянуть, что, как

darkshvein ☆☆ ()
Ответ на: комментарий от JackYF

>Он просто игнорирует ошибку.

эти игноры сыпятся штатно при любом обновлении с любых реп.

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

Turbid ★★★★★ ()
Ответ на: комментарий от Turbid

>каждый раз вылавливать в выхлопе важные и не важные error - не дело.

Cupt рассматривает все репозитории как важные. Убери тот сломанный и этого сообщения не будет.

JackYF ★★★★ ()

Aptitude решает

Велосипеды не нужны. Какой толк с Cupt, если есть aptitude?

anonymous ()

Документация ужасна.

anonymous ()
Ответ на: комментарий от JackYF

Убери тот сломанный и этого сообщения не будет.

ну как он сломан, если пакет таки виден в базе?

$ apt-cache policy skype
skype:
  Установлен: 2.1.0.81-1
  Кандидат:   2.1.0.81-1
  Таблица версий:
 *** 2.1.0.81-1 0
        500 http://download.skype.com/linux/repos/debian/ stable/non-free i386 Packages
        100 /var/lib/dpkg/status

sid и experimental тоже убрать и сидеть с голым source.list?

W: downloading 'http://ftp.debian.org/debian experimental/non-free Translation-ru_RU.bz2' (uri 'http://ftp.debian.org/debian/dists/experimental/non-free/i18n/Translation-ru_RU.bz2') failed: The requested URL returned error: 404
Get:14 http://ftp.debian.org/debian experimental/main Packages.bz2 [454KiB]
Turbid ★★★★★ ()
Ответ на: комментарий от Turbid

>если пакет таки виден в базе?

База локальная. Скачать пакет сможешь?

sid и experimental тоже убрать и сидеть с голым source.list?


Зачем убирать? Где ты там ошибку увидел?

JackYF ★★★★ ()
Ответ на: комментарий от anonymous

По инфе о зависимостях и определяет.

Deleted ()
Ответ на: комментарий от JackYF

База локальная.

как локальная, когда

Таблица версий:
 *** 2.1.0.81-1 0
        500 http://download.skype.com/linux/repos/debian/ stable/non-free

Скачать пакет сможешь?

$ aptitude download skype
Get:1 http://download.skype.com/linux/repos/debian/ stable/non-free skype i386 2.1.0.81-1 [20.2 MB]
9% [1 skype 1861352/20.2 MB 9%]^C

Как я пойму - когда вся репа не доступна\ошибочно составлена (aptitude ругается на 404) или там какого-то файла не хватает (aptitude игнорирует)?

Turbid ★★★★★ ()

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

Deleted ()
Ответ на: комментарий от Turbid

>как локальная, когда

Базы всегда локальные.

9% [1 skype 1861352/20.2 MB 9%]^C


Хм, странно. Заводи баг, посмотрю.

JackYF ★★★★ ()

Правильные вопросы звучат. Надо же изначально показать, с какой целью этот проект существует? То, что написано в advantages совсем не зацепило. Мне сейчас хватает aptitude. Что должно меня побудить перейти?

Я могу сказать, чего мне в aptitude не хватает, например. Это то, что вспомнил сразу. Ситуация: я ставлю скопом несколько пакетов. Да даже не несколько, а один, который тянет за собой какие-то зависимости. И устанавливаемый пакет, и пакеты по зависимостям имеют список recommends и suggests. Также предположим, что установка рекомендуемых и предлагаемых разрешена. Меня интересует информация, какой пакет и что рекомендует, чтобы видно было сразу и чтобы можно было отобрать нужные пакеты сразу же (это как галки компонентов в установщиках Windows-программ).

А сейчас мне пишут «Также рекомендуются пакеты бла1, бла2, бла3 .... блаN, но установлены они не будут». Все свалено в кучу.

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

-D, --show-deps не то? Галок там, хотя, таки нет.

Deleted ()
Ответ на: комментарий от JackYF

>Хм, странно. Заводи баг, посмотрю.

Завтра разве что, уже голова не варит.

Еще два вопроса (не нашел в документации):

1. Есть ли форматированный выхлоп результата поиска (ключ -F в aptitude)?

2. Есть ли поиск по гибким шаблонам типа: aptitude search '!~i~d"web browser"'?

Turbid ★★★★★ ()

Я ж говорил, сразу на сях надо было писать! tN

anonymous ()
Ответ на: комментарий от Deleted

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

Галок там, хотя, таки нет.

В cli мне не нужны галки, я сам могу дописать на вопрос [Y/n] нужные пакеты с плюсом или ненужные с минусом. Главное знать, что дописывать. Галки можно в энкурсовой морде сделать.

Но и это все можно попросить сделать в aptitude. Или самом дописать и патч прислать (если, конечно, там уже этого нет в новых версиях, у меня еще Ленни :)

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

>Правильные вопросы звучат. Надо же изначально показать, с какой целью этот проект существует? То, что написано в advantages совсем не зацепило.

Проект существует для тех немногих, кого advantages цепляет. Я думал, это очевидно. Или намёк на то, что процент настолько мал, что не стоило городить огород?

Меня интересует информация, какой пакет и что рекомендует


А эта информация присутствует. И в aptitude, и в cupt. Только вот документацию многие не читают.

JackYF ★★★★ ()

Для чего плодить сущности сверх необходимости?

Ingwar ★★★★★ ()
Ответ на: комментарий от Turbid

>1. Есть ли форматированный выхлоп результата поиска (ключ -F в aptitude)?

Нет.

2. Есть ли поиск по гибким шаблонам типа: aptitude search '!~i~d"web browser"'?


Нет. Возможно, будет аналог в будущем.

JackYF ★★★★ ()
Ответ на: комментарий от Zubok

>то есть даже те пакеты, которые не устанавливаются реально сейчас, а уже есть на диске

Это да, перебор.

Deleted ()
Ответ на: комментарий от Ingwar

>Для чего плодить сущности сверх необходимости?

Для получения возможностей, трудно- или недостижимых в иных сущностях.

Чувствую себя Капитаном Очевидность.

JackYF ★★★★ ()
Ответ на: комментарий от Zubok

Когда в aptitude нажимаешь «g» для просмотра предстоящих изменений и выделяешь автоматически устанавливаемый пакет, он показывает, кто этот пакет притянул. Списки зависимостей на экране подробной информации о пакете тоже никто не отменял.

Или это всё не то?

anonymous ()
Ответ на: комментарий от JackYF

>> Меня интересует информация, какой пакет и что рекомендует

А эта информация присутствует. И в aptitude, и в cupt. Только вот документацию многие не читают.

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

Или намёк на то, что процент настолько мал, что не стоило городить огород?

Я не упрекаю ни разу. Я не вижу киллер-фичей. Если ты еще раз перечитаешь, что я написал, то это было пожелание. На мой взгляд для рождения альтернативы слишком мало. У меня вопрос по ходу. Раз ты DD, почему ты не захотел влиться в aptitude и реализовывать это там? Ты пробовал уже, тебе сказали, что не нужно на все перечисленные advantages?

Zubok ★★★★★ ()
Ответ на: комментарий от anonymous

>Или это всё не то?

Не, не то. Это и там показывает. Мне интересно, видеть списком, какие пакеты этот пакет притягивает, предлагает и рекомендует. Желательно без нажиманий. Если речь идет о графике, то что бы тут же и отобрать нужное, а не нужное не ставить. Это такое удобство, но не более.

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

Опечатки, сорри. Уже отписыватьс яне успеваю. Проверять некогда.

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

>Это упрек, что я не умею читать документацию, да?

Частично. http://people.debian.org/~jackyf/cupt2/tutorial.html#toc33 («change reasons»). Вряд ли это тянет на «зашибись», но информация предоставляется.

Раз ты DD, почему ты не захотел влиться в aptitude и реализовывать это там?


Я был три месяца коммиттером проекта APT. Потом я оттуда ушёл, ибо моё видение дизайна разошлось с видением лидера проекта. Я не мог там реализовать то, что хотел.

Aptitude очень многое берёт из APT: собственно, всё, кроме интерфейса и решателя зависимостей. Из 9 пунктов advantages 5 пунктов невозможно реализовать на текущей кодовой базе, и ещё 4 требуют серьёзную поддержку со стороны решателя зависимостей (иными словами, частичную или полную переделку).

JackYF ★★★★ ()
Ответ на: комментарий от anonymous

>Я ж говорил, сразу на сях надо было писать! tN

Угу. Ты оказался прав.

JackYF ★★★★ ()
Ответ на: комментарий от JackYF

Частично. http://people.debian.org/~jackyf/cupt2/tutorial.html#toc33 («change reasons»). Вряд ли это тянет на «зашибись», но информация предоставляется.

Я что-то в упор не вижу того, о чем я говорю. Я хочу примерно такой способ такой способ вывода:

aptitude install package1 package2, автоматически по depends тянутся другие package3, package4, то есть будут ставиться всегда. Предположим, что каждый из этих пакетов имеет список recommends и suggests. Я хочу видеть так:

package1:
  package3 (Depends)
  rpack1 (Recommends) 
  spack1 (Suggests)

package2:
  package4 (Depends)
  rpack2 (Recommends)
  spack2 (suggests)

package3:
  ...

package4:
  ...

Вот тогда я вижу структуру устанавливаемых пакетов. Конкретный вид, что выводить, а что не выводить - это уже детали.

Zubok ★★★★★ ()

не нужно.. есть aptitude//

Zlo ★★★ ()
Ответ на: комментарий от JackYF

>Я был три месяца коммиттером проекта APT. Потом я оттуда ушёл, ибо моё видение дизайна разошлось с видением лидера проекта. Я не мог там реализовать то, что хотел.

Ну APT отдельно, aptitude отдельно. Решатель aptitude это не APT. Я не смогу прокомментировать несовпадение точек зрения. Это надо знать историю общения. Будем считать, что точки зрения так не совпали, что готовы были друг друга убить. :)

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

>Я хочу примерно такой способ такой способ вывода:
[...]

Теперь понятнее. 'cupt --show-reasons', наоборот, для каждого пакета пишет его причину. Мне такой способ представляется удобным для задачи «кто же тянет этот пакет».

Твой вариант тоже реализовать можно. Если действительно интересно такое заводи wishlist-баг на любимый менеджер пакетов.

JackYF ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.