Я пытаюсь создать apt-репозиторий с reprepro, который по большей части очень прост. Я использовал эту статью в качестве справочного материала, потому что мне понравилась структура наличия промежуточного дерева.
http://vincent.bernat.im/en/blog/2014-local-apt-repositories.html
Однако я не могу понять, что, вероятно, очень просто. Используя пример conf/distributions из статьи ниже, я сбит с толку тем фактом, что когда я импортирую пакет, он всегда попадает только в main. Нет каталога exact-staging и exact-prod? Я пытаюсь создать отдельное место для размещения пакетов, которые не были протестированы, и еще одно для production в том же репозитории. (/opt/packages/pool/trusty-prod, /opt/packages/pool/trusty-stage)
При необходимости я мог бы направить клиентов на любой из них через /etc/apt/sources.list.d/ с помощью puppet..
Я что, совсем не понимаю, как это делается, или не понимаю эту статью?
Dailymotion Precise packages (staging)
Origin: Dailymotion
Label: dm-staging
Suite: precise-staging
Codename: precise-staging
Architectures: i386 amd64 source
Components: main role/dns role/database role/web # ➊
Description: Dailymotion Precise staging repository
Contents: .gz .bz2
Tracking: keep
SignWith: yes
NotAutomatic: yes # ➋
Log: packages.dm-precise-staging.log
--type=dsc email-changes
Dailymotion Precise packages (prod)
Origin: Dailymotion # ➌
Label: dm-prod # ➌
Suite: precise-prod
Codename: precise-prod
Architectures: i386 amd64 source
Components: main role/dns role/database role/web # ➊
Description: Dailymotion Precise prod repository
Contents: .gz .bz2
Tracking: keep
SignWith: yes
Log: packages.dm-precise-prod.log
решение1
4 шага для настройки простого репозитория для себя
1. Установите dpkg-dev
2. Поместите пакеты в каталог
3. Создайте скрипт, который будет сканировать пакеты и создавать файл, который может прочитать apt-get update
4. Добавьте в свой sources.list строку, указывающую на ваш репозиторий
Установить dpkg-dev
Введите в терминале
sudo apt-get install dpkg-dev
Справочник
Создайте каталог, в котором вы будете хранить свои пакеты. Для этого примера мы будем использовать
/usr/local/mydebs.
sudo mkdir -p /usr/local/mydebs
Теперь переместите ваши пакеты в каталог, который вы только что создали.
Ранее загруженные пакеты обычно хранятся в вашей системе в каталоге /var/cache/apt/archives. Если вы установили apt-cacher, у вас будут дополнительные пакеты, хранящиеся в его каталоге /packages.
Обновление скрипта-mydebs
Это простая трехстрочная фраза:
#! /bin/bash
cd /usr/local/mydebs
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
Вырежьте и вставьте вышеприведенный код в gedit и сохраните его как update-mydebs в ~/bin. (тильда '~' означает ваш домашний каталог. Если ~/bin не существует, создайте его: Ubuntu поместит этот каталог в ваш PATH. Это хорошее место для размещения личных скриптов). Затем сделайте скрипт исполняемым:
chmod u+x ~/bin/update-mydebs
Как работает скрипт: dpkg-scanpackages просматривает все пакеты в mydebs, а вывод сжимается и записывается в файл (Packages.gz), который может прочитать apt-get update (см. ниже ссылку, которая объясняет это в мучительных подробностях). /dev/null — пустой файл; он заменяет файл переопределения, который содержит некоторую дополнительную информацию о пакетах, которая в данном случае на самом деле не нужна. См. deb-override(5), если вы хотите узнать об этом.
Источники.list
добавьте строку
deb file:/usr/local/mydebs ./
в ваш /etc/apt/sources.list, и все готово.
CD-опция
Вы можете записать каталог, содержащий debs, на CD и использовать его как репозиторий (хорошо для обмена между компьютерами). Чтобы использовать CD как репозиторий, просто запустите
sudo apt-cdrom add
Использование репозитория
Всякий раз, когда вы помещаете новый deb-файл в каталог mydebs, запускайте
sudo update-mydebs
sudo apt-get update
Теперь вашими локальными пакетами можно управлять с помощью Synaptic, aptitude и команд apt: apt-get, apt-cache и т. д. При попытке выполнить установку apt-get все зависимости будут разрешены, если они могут быть удовлетворены.
Плохо сделанные пакеты, скорее всего, не будут работать, но вам не придется пережить ад dpkg.