Как использовать пакетные менеджеры для своего софта

13
Как использовать пакетные менеджеры для своего софта Александр Шигин [email protected]

description

Блиц-доклад на rootconf 2009. Как использовать пакетные менеджеры с distutils и ruby gems. Еще чуть--чуть про setuptools.

Transcript of Как использовать пакетные менеджеры для своего софта

Page 1: Как использовать пакетные менеджеры для своего софта

Как использовать пакетные менеджеры для своего софта

Александр Шигин[email protected]

Page 2: Как использовать пакетные менеджеры для своего софта

2

В чем проблема

написать программу — начало пути

главная цель: использование

когда машин много, установка становится проблемой

Page 3: Как использовать пакетные менеджеры для своего софта

Пакетные менеджеры

есть почти везде

решают проблемы установки, обновления и удаления программ

решают по разному, но обычно работают

Page 4: Как использовать пакетные менеджеры для своего софта

Python

изначально странная установка модулей

по умолчанию модули для 2.4, 2.5 и 2.6 — это абсолютно разные модули

даже если они ничем не отличаются

Page 5: Как использовать пакетные менеджеры для своего софта

Python: distutils

решает проблему установки

но по своему:

только в python 2.5 появились зависимости

в поставке только bdist_rpm

странная архитектура

до autoconf далеко

Page 6: Как использовать пакетные менеджеры для своего софта

distutils: rpm

иногда установка сломана

из __os_install_post убрать brp-python-bytecompile

зависимости надо прописывать «ручками»

Page 7: Как использовать пакетные менеджеры для своего софта

distutils: deb

bdist_deb появился в 2004 году, но до сих пор не включен в поставку

easy_dep, stdeb

Page 8: Как использовать пакетные менеджеры для своего софта

distutils: FreeBSD

собственная обвязка для портов

dist2free: страшный, но работает

http://github.com/shigin/dist2free/tree/master

документация доступна в wiki

Page 9: Как использовать пакетные менеджеры для своего софта

Python: setuptools

заточен под eggs

встроенные модули и FreeBSD

зависимости с первого дня

Page 10: Как использовать пакетные менеджеры для своего софта

setuptools: easy_install

умеет обновлять пакеты

но не ведет их базы

не умеет удалять

Page 11: Как использовать пакетные менеджеры для своего софта

Python: pip

люди опять не хотят понять, что надо создавать «нативные» пакеты

он новый и пока его не используют

Page 12: Как использовать пакетные менеджеры для своего софта

Ruby: gems

нативные пакеты в TODO

уже 4 года

Page 13: Как использовать пакетные менеджеры для своего софта

gems: парадокс

FreeBSD уже всё поняли

deb: dpkg-gem, dkpg-rails

rpm: gem2rpm