Создать локальный репозиторий apt с промежуточной средой

Создать локальный репозиторий apt с промежуточной средой

Я пытаюсь создать 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.

Связанный контент