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, так почему бы их не объединить в пакет, установив который вы подключаете репозиторий, а удалив – отключаете.
Пакет по формату получился простейший, без каких либо зависимостей и не требующий ничего особенного для сборки, но оставался вопрос – как такие пакеты устанавливать, поэтому пришлось реализовывать еще и репозиторий.
И что из этого получилось
А получился сайт
Техническая реализация
Во-первых, код открыт – в лучших традициях OpenSource –
Во-вторых, реализовано все на Symfony 2 и хостится на Debian. Интерфейс с использованием Twitter Bootstrap, для редактирования классический CRUD, пагинатор и поиск, репозиторий реализуется просто тремя адресами и ZendCache (а то без него как-то плохо). Для подписей используется библиотека php-gnupg. Так как размер каждого пакета примерно 2.5 килобайта, то с файлами решено было не заморачиваться и собранные пакеты хранить прямо в базе.
По всем вопросам обращайтесь на ivan.borzenkov[собака]gmail.com

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