Debian Repo: различия между версиями
Sirmax (обсуждение | вклад) (→GPG) |
Sirmax (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория:Debian]] |
||
+ | [[Категория:Ubuntu]] |
||
+ | [[Категория:Linux]] |
||
+ | [[Категория:DEB]] |
||
+ | [[Категория:Заготовка]] |
||
=Создание репозитория для дебиана/убунты= |
=Создание репозитория для дебиана/убунты= |
||
Строка 25: | Строка 30: | ||
-----END PGP PUBLIC KEY BLOCK----- |
-----END PGP PUBLIC KEY BLOCK----- |
||
</PRE> |
</PRE> |
||
+ | ==Подписывание пакетов== |
||
+ | Под убунтой поставить dpkg-sig |
||
+ | <PRE> |
||
+ | apt-get install dpkg-sig |
||
+ | </PRE> |
||
+ | Подписать: |
||
+ | <PRE> |
||
+ | for P in `ls -1 | grep deb `; do dpkg-sig --sign builder $P; done |
||
+ | </PRE> |
||
+ | Тут перебор всех пакетов и подписывание. <BR> |
||
+ | --sign builder - cудя по всему если ключей более чем один то надо будет выбрать. Мне было не надо. |
||
+ | <PRE> |
||
+ | The “builder” name mentioned is a debian convention, indicating that the builder of the package signed it. |
||
+ | The GPG key used will be the one you set up above, providing you’re running the command as the same user you set up the key with. |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | gpg --list-keys |
||
+ | /root/.gnupg/pubring.gpg |
||
+ | ------------------------ |
||
+ | pub 1024R/880B596A 2013-09-19 |
||
+ | uid Max Mazur (Deb_heat_repo) <mmaxur@mirantis.com> |
||
+ | </PRE> |
||
+ | |||
+ | ==Создание репозитория== |
||
+ | ===nginx=== |
||
+ | Под nginx - абсолютный минимум: |
||
+ | <PRE> |
||
+ | root /usr/share/nginx/www; |
||
+ | index index.html index.htm; |
||
+ | |||
+ | location / { |
||
+ | autoindex on; |
||
+ | } |
||
+ | </PRE> |
||
+ | ===reprepo=== |
||
+ | Далее собственно создание репозитория<BR> |
||
+ | Создать конфиг - у меня нет понимания на 100% но по-моему конфиг должен лежать в --basedir в $basedir/conf и называться distributions. <BR> |
||
+ | У меня он выглядит так: |
||
+ | <PRE> |
||
+ | Origin: Mirantis Heat For Murano |
||
+ | Label: Openstack Heat |
||
+ | Codename: precise |
||
+ | Architectures: i386 amd64 |
||
+ | Components: main |
||
+ | Description: Apt repository for project Murano |
||
+ | #DebOverride: override.precise |
||
+ | #DscOverride: override.precise |
||
+ | SignWith: 880B596A |
||
+ | </PRE> |
||
+ | |||
+ | * Origin - the name of who made the packages. |
||
+ | * Label - some label adequate for the packages or for your repository. Use your fantasy. |
||
+ | * Codename - codename of the distributions that may use this repo (e.g. lenny in case of Debian or precise in case of Ubuntu). Additionally, if you’re going to package for more than one distribution, you'll want to copy the above section for each distro. It all stays in the same file, you just change the “<osrelease>” parts as applicable. |
||
+ | * Component - the component of the packages in the directory, for example main, non-free, or contrib. The free packages go into main; the non-free ones into non-free, and the free ones which depend on non-free ones into contrib. |
||
+ | * DebOverride and DscOverride fields tell reprepro what files to use for the override rules. Override rules can be used to override .deb and .dsc configuration fields. The .dsc files always need an override file because .dsc files do not contain Section and Priority information, e.g. optional - games for gnome-hearts. |
||
+ | * SignWith - indicates that you want to create a Release.gpg file, creating a signed APT repository. It is highly recommended that you do so. If you have multiple GPG keys installed on your APT server, you can also replace the "yes" value with something that tells GPG what key to use. A name or a key ID for example. key-id the ID of the GnuPG key you generated. You can check the key ID with gpg: |
||
+ | |||
+ | <BR> |
||
+ | SignWith можно взяьт в gpg --list-keys |
||
+ | <BR> |
||
+ | Далее запускаем: |
||
+ | <PRE> |
||
+ | reprepro --verbose --basedir=/var/www/debian/heat --ask-passphrase includedeb precise *.deb |
||
+ | </PRE> |
||
+ | * --ask-passphrase - если ключ с пассфразой то прашивать ее, без этого ключа фейлится |
||
+ | * --basedir - где будет репозиторий |
||
+ | * precise - это имя дистрибутива для которого этот репозиторий |
||
+ | * *.dev <-- очевидно. |
||
+ | |||
+ | |||
+ | ==Подключение репозитория== |
||
+ | Ключ: |
||
+ | <PRE> |
||
+ | wget -O - http://www.domain.com/repos/apt/conf/<whatever>.gpg.key|apt-key add - |
||
+ | </PRE> |
||
+ | Creating a sources.list.d file |
||
+ | <PRE> |
||
+ | deb http://www.domain.com/repos/apt/debian <osrelease> main |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | Или то же самое паппетом |
||
+ | <PRE> |
||
+ | apt::source { 'heat': |
||
+ | location => 'http://127.0.0.1/debian/heat/', |
||
+ | release => 'precise', |
||
+ | repos => 'main', |
||
+ | include_src => false, |
||
+ | } |
||
+ | |||
+ | apt::key { 'heat': |
||
+ | key => 'D50582E6', |
||
+ | key_source => 'http://172.18.196.75/debian/heat/pubilc_key', |
||
+ | } |
||
+ | </PRE> |
||
+ | |||
+ | * Не забыть apt-get update |
Текущая версия на 08:36, 30 октября 2023
Создание репозитория для дебиана/убунты
В отлисии от православной CentOS/RH б-мерзкий дебиан требует танцев с бубном.
GPG
Подготовка ключа
gpg --gen-key
- Choose RSA (sign only)
- Choose your keysize from the options given (doesn’t really matter for our purposes).
- Enter your name and email address when prompted
Все очевидно - сделать ключик только для подписи и ввсети свои данные. Пасс-фразу тоже.
Экспорт публичной части ключа
gpg --armor --export jon@aframe.com --output jon@aframe.com.gpg.key
Получится что-то вроде
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.14 (GNU/Linux) mI0EUjq9rQEEANCDbFegXdHcae+IZzMyvEEIo3oajU3JXKPgKZ6sCEUjKfJ1J/dJ <SKIPPED> C2BAFvN3v2lWP++BXrJhVPe6SBGyMKIXGRl1ToZMaW7WBDY0z2823ViP =jTOV -----END PGP PUBLIC KEY BLOCK-----
Подписывание пакетов
Под убунтой поставить dpkg-sig
apt-get install dpkg-sig
Подписать:
for P in `ls -1 | grep deb `; do dpkg-sig --sign builder $P; done
Тут перебор всех пакетов и подписывание.
--sign builder - cудя по всему если ключей более чем один то надо будет выбрать. Мне было не надо.
The “builder” name mentioned is a debian convention, indicating that the builder of the package signed it. The GPG key used will be the one you set up above, providing you’re running the command as the same user you set up the key with.
gpg --list-keys /root/.gnupg/pubring.gpg ------------------------ pub 1024R/880B596A 2013-09-19 uid Max Mazur (Deb_heat_repo) <mmaxur@mirantis.com>
Создание репозитория
nginx
Под nginx - абсолютный минимум:
root /usr/share/nginx/www; index index.html index.htm; location / { autoindex on; }
reprepo
Далее собственно создание репозитория
Создать конфиг - у меня нет понимания на 100% но по-моему конфиг должен лежать в --basedir в $basedir/conf и называться distributions.
У меня он выглядит так:
Origin: Mirantis Heat For Murano Label: Openstack Heat Codename: precise Architectures: i386 amd64 Components: main Description: Apt repository for project Murano #DebOverride: override.precise #DscOverride: override.precise SignWith: 880B596A
- Origin - the name of who made the packages.
- Label - some label adequate for the packages or for your repository. Use your fantasy.
- Codename - codename of the distributions that may use this repo (e.g. lenny in case of Debian or precise in case of Ubuntu). Additionally, if you’re going to package for more than one distribution, you'll want to copy the above section for each distro. It all stays in the same file, you just change the “<osrelease>” parts as applicable.
- Component - the component of the packages in the directory, for example main, non-free, or contrib. The free packages go into main; the non-free ones into non-free, and the free ones which depend on non-free ones into contrib.
- DebOverride and DscOverride fields tell reprepro what files to use for the override rules. Override rules can be used to override .deb and .dsc configuration fields. The .dsc files always need an override file because .dsc files do not contain Section and Priority information, e.g. optional - games for gnome-hearts.
- SignWith - indicates that you want to create a Release.gpg file, creating a signed APT repository. It is highly recommended that you do so. If you have multiple GPG keys installed on your APT server, you can also replace the "yes" value with something that tells GPG what key to use. A name or a key ID for example. key-id the ID of the GnuPG key you generated. You can check the key ID with gpg:
SignWith можно взяьт в gpg --list-keys
Далее запускаем:
reprepro --verbose --basedir=/var/www/debian/heat --ask-passphrase includedeb precise *.deb
- --ask-passphrase - если ключ с пассфразой то прашивать ее, без этого ключа фейлится
- --basedir - где будет репозиторий
- precise - это имя дистрибутива для которого этот репозиторий
- *.dev <-- очевидно.
Подключение репозитория
Ключ:
wget -O - http://www.domain.com/repos/apt/conf/<whatever>.gpg.key|apt-key add -
Creating a sources.list.d file
deb http://www.domain.com/repos/apt/debian <osrelease> main
Или то же самое паппетом
apt::source { 'heat': location => 'http://127.0.0.1/debian/heat/', release => 'precise', repos => 'main', include_src => false, } apt::key { 'heat': key => 'D50582E6', key_source => 'http://172.18.196.75/debian/heat/pubilc_key', }
- Не забыть apt-get update