MyTetra Share
Делитесь знаниями!
Развёртывание репозиториев Linux
Время создания: 31.08.2017 20:55
Текстовые метки: code
Раздел: Linux
Запись: xintrea/mytetra_db_mcold/master/base/1503314080vxc5n2l9d9/text.html на raw.githubusercontent.com

Развёртывание репозиториев Linux

Без синхронизаций и т.д., в варианте «есть хостинг» или «файловая помойка» и надо быстро выкатить хранилище пакетов для дистрибутива Linux (так чтобы можно было подключиться к этому репозиторию и поставить оттуда всё необходимое). Иногда обновляться в ручном режиме — копированием по тому же адресу с перезаписью. Раз в полгода или год. Задача типовая и я её опишу в полуавтоматическом режиме.

Репозиторий RHEL

Репозиторий Debian

1. Создаём ключ DEB-GPG-KEY. Стандартно.

$ cd ~
$ gpg --gen-key
$ gpg --export -a 'Name Surname (repo)' > DEB-GPG-KEY


2. Создаём файл ~/.rpmmacros следующего содержания:

%_signature gpg
%_gpg_path ~/.gnupg
%_gpg_name Name Surname (repo)


3. Создаём директорию repo, а в ней директории dists и pool. В них уже будет система каталогов. Переносим туда ключ DEB-GPG-KEY

$ mkdir -p repo/dists/nobody/soft/binary-i386
$ mkdir -p repo/dists/nobody/soft/binary-x86_64
$ mkdir -p repo/pool/soft/binary-i386/t/teamviewer
$ mkdir -p repo/pool/soft/binary-x86_64/t/teamviewer
$ mv DEB-GPG-KEY repo/DEB-GPG-KEY


4. В директории dists у нас будут храниться данные о пакетах, а в директории pool — сами пакеты. Причём из имени /binary-i386/t/teamviewer уже видно, что пакеты раскладываются по архитектурам, затем по буквенным директориям и затем по директориям с именами происходящими от названия содержащегося в них ПО (в них может лежать десяток пакетов необходимых конкретному ПО по его зависимостям). Т.е. имеется заданная иерархия.

5. Кладём в директорию repo 
скрипт для подготовки репозитория. Меняем в первой строчке скрипта key_pass=«password» на пароль Вашего ключа.

6. Запускаем скрипт и ждём когда он отработает.

$ chmod a+x
$ ./repo_debian.sh


7. Закачиваем на хостинг директорию repo и описываем репозиторий в /etc/apt/sources.list

deb http://<IP-адрес>/repo nobody soft


8. Проверяем работу репозитория

$ wget http://<IP-адрес>/repo/DEB-GPG-KEY
$ sudo apt-key add DEB-GPG-KEY
$ sudo apt-get clean
$ sudo apt-get update
 
MyTetra Share v.0.65
Яндекс индекс цитирования