Я хотел бы установить хранилище APT на сервере, который предоставит пару пакетов.
Есть ли способ настроить один без установки какого-либо программного обеспечения на сервере?
Как файлы должны быть организованы?
Редактировать: Я должен делать что-то не так ... может кто-нибудь, пожалуйста, помогите мне? У меня есть хранилище на http://quickmediasolutions.com/apt/dists
Я не уверен, где или что, но что-то неправильно настроено. У меня только один пакет, и он предназначен для всех архитектур.
Вот что было добавлено к моему /etc/apt/sources.list
:
deb http://quickmediasolutions.com/apt stable main
apt
package-management
repository
Натан Осман
источник
источник
Ответы:
Настроить простой репозиторий очень просто, используя dpkg-scanpackages. Эта страница объясняет, как настроить тривиальное репо, а эта объясняет, как его использовать (прокрутите вниз до примера 4).
источник
deb http://quickmediasolutions.com/apt binary/
.Просто установите простой, но подписанный репозиторий на веб-сервере. Поскольку большинство других руководств несколько устарели или громоздки, я постараюсь повторить эту процедуру здесь. Первоначальная конфигурация требует немного усилий, но простой сценарий сборки упрощает управление. И вы можете просто вставить новые
*.deb
файлы, затем обновить или позволить заданию cron справиться с этим.Создайте несколько ключей подписи
Сначала вам нужно создать
gpg
ключ подписи для пакетов и вашего хранилища. Сделайте это (4) ключом подписи RSA, без пароля, и дайте ему уникальный,$KEYNAME
когда потребуется. (Дальнейшие примеры предполагают "dpkg1
" в качестве имени ключа.)Я сказал «нет пароля», потому что на вашем веб-сервере нет встроенной обезьянки, чтобы вводить его повторно. А подписанные пакеты и репозиторий предназначены только для удовлетворения жалоб менеджеров обновлений по этому поводу. Просто загрузите оба ключа в новый
/apt/
каталог репозитория на вашем веб-сервере, но удалитеsecret.gpg
ключ после инициализации.Обновление скрипта CGI
Это простой сценарий обновления оболочки / CGI для него:
Три
gpg
строки необходимо выполнить только один раз, чтобы инициализировать настройку GPG в некотором каталоге$GNUPGHOME
(над корнем документа). Удалить толькоsecret.gpg
после успеха.Уникальная особенность этого небольшого сценария оболочки заключается в том, что он принимает любые
*.deb
файлы, которые вы вставили, но также рекурсивно ищет (начиная с одного уровня вверх) другие и вставляет в них ссылки. (ВOptions FollowSymLinks
конечном счете, нужен .htaccess .)Вы можете выполнить этот сценарий вручную как CGI или для cron-job. Но спрячьте или, еще лучше, удалите его из корня документа.
Поскольку это «тривиальный» репозиторий apt, ему нужна следующая
apt-sources.list
запись:Это подходит для репозиториев с одной архитектурой, и если вы не ожидаете сотни пакетов.
Подписание пакета
Подписать ваши индивидуальные пакеты также тривиально, как только вы настроите свои ключи gpg:
(Это следует делать на рабочей станции, на которой создаются пакеты, а не на веб-сервере хранилища.)
Неподписанный репозиторий
Если вам не нужны подписанные пакеты, то вы можете сократить скрипт обновления до:
Который все еще может использоваться обычными пользователями, но нуждается в специальном флаге для
apt.sources
:Но, пожалуйста, не используйте этот
trusted=yes
флаг для всего, или если вы не уверены в происхождении пакета.Для удобства использования
Для конечных пользователей просто поместите их
HEADER.html
в каталог репозитория. Апачиmod_auto_index
добавят эту записку:альтернативы
В настоящее время существует несколько инструментов для автоматизации управления хранилищами. И даже есть онлайн- хостинги для репозиториев и сервисы сборки пакетов ( gemfury , packagecloud , bintray и т. Д.)
Довольно удобной альтернативой является prm . Это скрипт Ruby, который создает сложные репозитории APT и YUM. (Но давайте просто надеяться, что RPM наконец-то скоро исчезнет ..) - Лучше всего установить в соответствии с
gem install prm
.И я также написал небольшой скрипт для автоматизации этого аналогичным образом: http://apt.include-once.org/apt-phparchive - Пожалуйста, обратите внимание, что он не слишком устойчив и написан на PHP (на этот раз это случайно), и изначально предназначался для DEB, RPM-over-APT и Phar.
Поскольку это тесно связано с первоначальным вопросом, существуют также инструменты для более простой сборки пакетов Debian. Несколько устаревший: EPM . Гораздо более современно: FPM . И мой личный ответвление: XPM (более ленивый подход для упаковки приложений на языке сценариев).
источник
wget …/public.gpg -O- | apt-key add -
dpkg-scanpackages -m
может быть достаточно. Он покажет все архитектуры в одном и том же файле Release. Но пока каждый .deb имеет уникальное имя / или хранится в разных подкаталогах (amd64 /, all /), это должно сработать. Иначе перейдите на один из более сложных инструментов хранилища.Да. Ты можешь сделать это. Вам просто нужно правильно организовать файлы и создать индексные файлы. Если вы поместите структуру каталогов в корень документа вашего веб-сервера, пакеты будут доступны через веб-сервер.
Вот подробное описание того, как файлы должны быть организованы и как создаются индексные файлы.
Вы также можете использовать инструмент под названием prespro, если вы хотите установить этот пакет. Это сделает администрацию немного удобнее.
источник
Возможно, вы также можете рассмотреть Launchpad PPA
источник
Для тех, кто сталкивается с этой ошибкой после следующего ответа Марио:
сделайте следующее:
Я положил мои
*.deb
файлы вdebs
папку.источник