Создание репозитория
Установить пакет reprepro:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo apt install reprepro |
Создать каталог для размещения репозитория и :
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo mkdir <путь_к_репозиторию/имя>
|
создать в каталоге репозитория каталог conf:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
mkdir -p reposudo mkdir <путь_к_репозиторию/имя>/conf
|
Создать в каталоге conf файл distributions примерно такого содержания:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
mcedit reposudo mcedit <путь_к_репозиторию/имя>/conf/distributions
|
Подсказка |
---|
|
Origin: Debian
Codename: smolensk
Suite: stable
Version: 1.56.30
Architectures: amd64
Components: main contrib non-free
UDebComponents: main
Contents: |
где:
Codename: smolensk
- кодовое имя дистрибутива: smolensk, orel ...
Suite: stable
- ветка дистрибутива: stable, current, unstable
Version: 1.56.30
- номер версии
Architectures: amd64
- архитектура дистрибутива: i386, amd64, source (если репозиторий будет содержать исходный код пакетов)
Components: main contrib non-free
- компоненты дистрибутива: main - СПО, contrib - СПО с зависимостями от несвободного, non-free - несвободное ПО
UDebComponents: main
- Udeb-пакеты
Contents
: - файлы со списком содержимого каждого пакета
SignWith: yes
- подпись репозитория (можно не указывать, если не планируете подписывать репозиторий ключом gnupg)
...
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo reprepro -b repo export<путь_к_репозиторию/имя> export |
После этого можно наполнять репозиторий пакетами:
Добавление бинарного deb пакета:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo reprepro -b <путь_к_репозиторию/имя> includedeb <кодовое_имя_дистрибутива(smolensk)> <путь_к_пакету/имя_пакета>.deb |
Добавление всех пакетов deb:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo reprepro -b <путь_к_репозиторию/имя> includedeb <кодовое_имя_дистрибутива(smolensk)> <путь_к_пакетам>/*.deb |
Примечание |
---|
|
При появлении ошибки: No priority given for '<имя_пакета>', skipping. Выполнить добавление пакета с игнорированием приоритета с помощью опции -P: Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
| sudo reprepro -P -V -b
| repo includedeb <кодовое имя дистрибутива> <имя<путь_к_репозиторию/имя> includedeb <кодовое_имя_дистрибутива(smolensk)> <путь_к_пакету/имя_пакета>.deb
|
|
Добавление бинарного udeb пакета:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
reprepro -b repo includeudeb <кодовое имя дистрибутива> <имя sudo reprepro -b <путь_к_репозиторию/имя> includeudeb <кодовое_имя_дистрибутива(smolensk)> <путь_к_пакету/имя_пакета>.udeb
|
Добавление пакета с исходным:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo reprepro -b repo includedsc <кодовое имя дистрибутива> <имяb <путь_к_репозиторию/имя> includedsc <кодовое_имя_дистрибутива(smolensk)> <путь_к_пакету/имя_пакета>.dsc
|
Удаление пакета:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo reprepro -b repo remove <кодовое имя дистрибутива> <имя_пакета>
|
...
b <путь_к_репозиторию/имя> remove <кодовое_имя_дистрибутива(smolensk)> <имя_пакета_без_версии>
|
Подписывание репозитория
Сгенерировать gpg-ключ (RSA или DSA):
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo gpg --gen-key |
Добавить в repo<путь_к_репозиторию/имя>/conf/distributions строку:
...
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo reprepro --ask-passphrase -b repo b <путь_к_репозиторию/имя> export (параметр --ask-passphrase запрашивает пароль для gpg-ключа) |
и наполнить репозиторий:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo reprepro --ask-passphrase -b repo b <путь_к_репозиторию/имя> includedeb <кодовое имя дистрибутива> <имя_пакета>.deb |
...
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo gpg --list-keys |
В результате получится примерно такой результат:
...
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo gpg --armor --output repo_gpg.key --export 2578DA4E |
...
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo apt-key add repo_gpg.key |
Apache2 + reprepro
Установить пакет:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo apt install apache2 |
Если репозиторий расположен по другому пути, например, /srv/repo
, то при необходимости создать симлинк с репозиторием:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo ln -s /srv/repo /var/www/html/repo |
В /etc/apache2/sites-enabled/000-default.conf после строки DocumentRoot /var/www/html добавить:
Подсказка |
---|
|
<Directory /var/www/html/repo>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order Deny,Allow
Allow from all
</Directory>
|
Перезапустить Apache2:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo systemctl restart apache2
|