Я хочу сделать две вещи:
Прежде всего, я хочу иметь собственный репозиторий ubuntu на своих серверах, чтобы не перегружать использование Интернета в моей компании и контролировать обновления. Я думаю, что мне нужно использовать apt-mirror
А еще хочу добавить в репозиторий свои пакеты.
Как лучше всего это сделать?
Мне нужно иметь два репозитория? Один с зеркалом, а другой с моими пакетами? В случае конфликта с моими пакетами, как Ubuntu решает эту проблему?
Спасибо
Мне пришлось сделать что-то очень похожее для моей установки на базе AWS. Я решил иметь одну коробку с aptcacher-ng
и dpkg-dev пакет.
reprepro
не поддерживает несколько версий пакета, поэтому я его не использовал. Поскольку я хотел, чтобы эти блоки были как можно более эфемерными с малым временем установки, я не использовал apt-mirroring, так как он может загружать много данных в зависимости от того, что вы хотите отразить.
Aptcacher-ng кэширует пакеты, и все остальные устройства связываются с этим ящиком для своих подходящих потребностей, поэтому я в конечном итоге экономлю много времени и пропускной способности.
Да, вы захотите использовать два отдельных репозитория, если вы сделаете это таким образом - зеркало останется подписанным ключами GPG дистрибутива, в то время как ваше репо с настраиваемыми пакетами будет подписано ключом GPG, который вы создаете (и ваши узлы нужно будет доверять).
Альтернативой зеркалированию является apt-cacher-ng
- он настроен как подходящий прокси на ваших узлах и будет обрабатывать все запросы пакетов. При первом запросе данного пакета он загрузит пакет из вышестоящего интернет-репозитория; при последующих запросах он будет обслуживать этот пакет из кеша. Таким образом, вы получаете экономию полосы пропускания локального зеркала без необходимости хранить копию всего репо (80%, если вы никогда не будете его использовать).
Для внутреннего репо пользовательских пакетов используйте reprepro
- он будет обрабатывать всю файловую структуру и подписывать, вам просто нужно будет иметь дело с настройкой ключа GPG и подачей ему файлов .deb.
В случае конфликтов пакетов клиентские системы будут определять, что использовать - обычно это делается путем сравнения строки версии в двух разных пакетах, но также может зависеть от закрепление.