Простой способ разместить репозиторий обновлений Debian

У меня есть проект, в котором я создаю один файл .deb, который должен быть установлен клиентом Linux. Для этого я хотел бы использовать apt-get install mypackage.

Будучи новичком в этой области, я сейчас ищу самый простой способ разместить свой собственный репозиторий обновлений Debian, который должен содержать только mypackage.deb.

Я быстро просмотрел mini-dinstall, который выглядел многообещающе. , но, похоже, они работают с .changes, а не с .deb пакетами. Поэтому я не уверен, что это то, что мне нужно.

Таким образом, рабочий процесс должен выглядеть примерно так:

  1. Я создаю пакет Debian mypackage.deb
  2. Я говорю какому-то демону обновить репозиторий обновлений: fancy-update-daemon add mypackage.deb
  3. Клиент может устанавливаться или обновляться с помощью стандартных команд apt: apt-get install mypackage

Спасибо за вашу помощь


person Besi    schedule 19.07.2011    source источник
comment
askubuntu.com - лучшее место для этого вопроса   -  person Charbel    schedule 19.07.2011


Ответы (3)


Действительно простой способ создать репозиторий — создать «тривиальный» репозиторий вместо «автоматического» репозитория. Вы можете сделать это с помощью команды «dpkg-scanpackages» в пакете dpkg-dev.

$ mkdir repository
$ cp foo.deb repository
$ dpkg-scanpackages repository /dev/null | gzip -9c > repository/Packages.gz

Затем в вашем sources.list вместо чего-то вроде:

deb http://wherever/repository suite component

Вы оставляете набор и компонент и просто имеете:

deb http://wherever/repository

Для получения дополнительной информации (например, о разнице между тривиальным и автоматическим репозиторием) см. Репозиторий HOWTO (для чего-то такого простого вы можете игнорировать тот факт, что эта документация называет себя «устаревшей»)

person stew    schedule 17.08.2011
comment
Большое спасибо. Это выглядит многообещающе. Думаю, с помощью этого механизма я мог бы также управлять разными версиями одного и того же пакета. Я обязательно попробую. - person Besi; 18.08.2011
comment
dpkg-scanpackage не будет помещать несколько версий одного и того же пакета в один и тот же файл Packages, если вы это имеете в виду. Если вы дадите ему каталог с несколькими версиями одного и того же пакета, вы получите только самую новую версию в Packages.gz. - person stew; 18.08.2011
comment
@stew в последних версиях, вы можете указать dpkg-scanpackage переключатель -m, чтобы добавить несколько версий одного и того же пакета в Packages. - person Philip Potter; 20.02.2013
comment
Я получаю E: Malformed line 1 in source list /etc/apt/sources.list.d/... Я создал новый ответ ниже. - person guettli; 21.01.2015

Создайте Packages.gz:

@server> cd debian-repo
@server> dpkg-scanpackages ./ /dev/null | gzip > Packages.gz

Создайте новый файл /etc/apt/sources.list.d/my-server.list (на клиенте)

deb http://my-server/debian-repo ./

Теперь получите список доступных пакетов и установите foo.

@client> apt-get update
@client> apt-get install foo
person guettli    schedule 21.01.2015

Файлы .changes создаются при сборке пакета debian . Файл .changes сам по себе не является пакетом: он содержит информацию о сборке (включая .debсгенерированных).

Хотя я не использовал mini-dinstall, мне кажется, что это правильный путь. Он должен использовать файлы .deb, которые были сгенерированы во время сборки, и правильно их загружать.

person Umang    schedule 29.07.2011