Прежде чем читать этот пост откройте консоль и выполните следующие команды

ls /etc/apt/sources.list.d | wc -l

Если у вас вдруг появилась надпись

“ls” не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

то значит эта статья точно не для вас.
Если у вас не Debian, Ubuntu или их потомки, а что-то на основе RPM или Gentoo, то это тоже не для вас, по крайне мере пока.
Если у вас получилось число меньше 5, то вам наверное не пригодится то, что написано дальше.
Ну а если вы получили число больше 10 (а то и 24 как получилось у меня) то читайте дальше и вы сможете сэкономить много времени.
Как в голову пришла идея
Итак, все началось немногим меньше полутора лет назад, когда я обновлял свою тестовую ubuntu natty на ставший тестовым oneiric. Матов было много, так как приходилось мониторить, когда ppa репозитории перейдут на новый дистрибутив и каким он будет. Кто-то переходил на oneiric, а кто-то только на natty – на это все ушло довольно много времени.
Потом было обновление до oneiric и precise, увеличение количества репозиториев и количества ругательств, установка системы на работе с нуля и подключения этого добра в новую систему.
Как вы все наверное заметили, что сторонние репозитории управляются достаточно сложно: нужно самому следить за ключами, для хостящихся на launchpad нужно каждые пол года менять дистрибутив, достаточно неудобно их удалять – нужно удалить еще и ключ.
А ведь по сути подключение репозитория сводится к добавлению двух файлов – список адресов в sources.list.d и gpg ключ в trusted.gpg.d, так почему бы их не объединить в пакет, установив который вы подключаете репозиторий, а удалив – отключаете.
Пакет по формату получился простейший, без каких либо зависимостей и не требующий ничего особенного для сборки, но оставался вопрос – как такие пакеты устанавливать, поэтому пришлось реализовывать еще и репозиторий.
И что из этого получилось
А получился сайт http://pkggen.no-ip.org/, который представляет собой довольно простую вещь — вы скачиваете и ставите один пакет, после чего вы можете ставить все пакеты, которые есть на сайте, а если вам чего-то не хватает (а в начале так и будет), то после регистрации можно добавить свои репозитории, и система сама сгенерирует для них пакеты и добавит в репозиторий. PPA репозитории отслеживаются автоматически и проверяются на обновление на launchpad. Все пакеты репозиториев начинаются с префикса, так-что искать в общем списке их можно не только по источнику, но и по имени.
Техническая реализация
Во-первых, код открыт – в лучших традициях OpenSource – https://github.com/ivan1986/deb-pkg-gen.
Во-вторых, реализовано все на Symfony 2 и хостится на Debian. Интерфейс с использованием Twitter Bootstrap, для редактирования классический CRUD, пагинатор и поиск, репозиторий реализуется просто тремя адресами и ZendCache (а то без него как-то плохо). Для подписей используется библиотека php-gnupg. Так как размер каждого пакета примерно 2.5 килобайта, то с файлами решено было не заморачиваться и собранные пакеты хранить прямо в базе.
По всем вопросам обращайтесь на ivan.borzenkov[собака]gmail.com

Источник

Оцените pkggen

Просмотреть результаты

Loading ... Loading ...

Эта запись была опубликована 04.08.2012в 14:17. В рубриках: Администрирование, Новости, Программы. Вы можете следить за ответами к этой записи через RSS 2.0. Вы можете оставить свой комментарий или трекбек со своего сайта.