Когда использовать пакеты в aptitude или CPAN / Gems / PyPI?

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

5
задан 29 July 2010 в 17:22

3 ответа

Это сложный вопрос, чтобы ответить в общем.

Официальные пакеты .deb обеспечивают стабильность и полную поддержку со стороны сообщества Ubuntu. Если вам не нужна последняя версия, вам лучше воспользоваться этим решением. У вас также есть менеджер пакетов поддержки для обновления, удаления и т. Д.

Если вам нужна поддержка со стороны апстрима или вам нужны новейшие функции, вам лучше получить ее из таких дистрибутивных систем, как CPAN, gem, pear и т. Д.

0
ответ дан 29 July 2010 в 17:22

По моему (по общему признанию, не слишком обширному) опыту, менеджеры пакетов для конкретного языка не выполняют столь же хорошую работу, как .deb, в отслеживании зависимостей, которые полностью находятся за пределами границы языка. (Я особенно думаю о зависимостях от C-кодированных библиотек, которые пакет переносит для использования в Python, Perl, Ruby и т. Д.).

Если (скажем) для пакета Pypi Python 'barfoo' требуется некоторая библиотека libfoobar, чтобы построить расширение _bf.so Python, которое использует пакет, и должно быть libfoobar, по крайней мере, при выпуске 5.2, Вам нужно отследить, какие .deb поставляют подходящие выпуски libfoobar (и вы, возможно, не найдете их, если пакет Pypi отслеживает близко к последним и лучшим версиям апстрима) - и каким-то образом отследить это, если вы удалить barfoo позже (таким образом, libfoobar поставщик становится «осиротевшим» и может / должен быть удален).

Я не думаю, что проблему интеграции Pypi / CPAN / etc с другими системами распространения пакетов еще можно считать «решенной». Для минимальных административных головных болей, если вы можете обойтись с официальным .deb (не нужен новейший и самый лучший feechurz & amp; c), я думаю, что это было бы целесообразно; с другой стороны, конечно, для пакета, который вы делаете хотите суперобновить (например, вы являетесь одним из авторов / сопровождающих пакета ;-), есть возможность сохранить свежее репо в любой системе управления версиями, которую использует пакет (svn, hg, git, bazaar, ...) и сохранение его из исходников. Pypi / CPAN / & C "в середине". Конечно, иногда этот средний путь будет целесообразным.

И еще один вариант, который можно рассмотреть, - это создать свой собственный пакет .deb (на основе либо пакета Pypi / CPAN / & amp; c, либо даже из исходных кодов) и сохранить свой репозиторий таких пакетов (для тех, пакеты, для которых вы находите официальные репозитории .deb слишком плохими или в обратном направлении). Это не намного сложнее, чем установка в противном случае (ручное отслеживание зависимостей вне языка), и это поможет идентифицировать «потерянные пакеты» и тому подобное (плюс, если вы опубликуете свою упаковку, вы также можете помочь другим людям ;-).

0
ответ дан 29 July 2010 в 17:22

Я действительно был против использования Aptitude для управления пакетами из другого менеджера пакетов. CPAN, Gems, Pecl, Pear и т. Д. Являются менеджерами пакетов для своих языков. Они - то, что вы должны по умолчанию - по моему мнению - потому что это то, для чего они предназначены. Не говоря уже о большинстве всех этих обновлений и обновлений (обновление gem, обновление gem и т. Д.). Это все равно, что использовать yum для установки Apache на ваш Ubuntu Machine.

Это, как говорится, есть несколько случаев, когда версия Aptitude царит. Одним из таких случаев является сбой при установке модуля из диспетчера пакетов языков (обычно это происходит из-за различных проблем конфигурации). Я редко сталкиваюсь с этой проблемой - но когда я делаю соответствующий пакет из Aptitude, то добивается цели.

Приоритет, на мой взгляд, Менеджер языковых пакетов> Aptitude.

0
ответ дан 29 July 2010 в 17:22

Другие вопросы по тегам:

Похожие вопросы: