Создание собственного репозитория: различия между версиями

Материал из ALT Linux Wiki
Строка 61: Строка 61:


==Публикация в сети==
==Публикация в сети==
Теперь данный каталог ('''/home/user/MyRepo/x86_64''') нужно опубликовать на http, ftp или rsync сервере.
Теперь данный каталог ({{path|/home/user/MyRepo/x86_64}}) нужно опубликовать на http, ftp или rsync сервере.


===Публикация на Http-сервере===
По статье [[Веб-сервер]]:
Ставим пакеты:
# apt-get install lamp-server
Запускаем службу:
Apache:
# service httpd2 start
# service httpd2 enable
=====Настройка Apache2=====
Открываем от имени суперпользователя:
# mcedit /etc/httpd2/conf/include/Directory_html_default.conf
Необходимо в строке
Options Includes FollowSymLinks MultiViews
дописать слово Indexes:
Options Indexes Includes FollowSymLinks MultiViews
=====Где хранится репозиторий?=====
Открываем в редакторе от суперпользователя файл {{path|/etc/httpd2/conf/sites-available/default.conf}}.
Ищем строку
DocumentRoot "/var/www/html/"
======Вариант I======
Меняем путь на свой. В нашем случае:
DocumentRoot "/home/user/MyRepo/"
Реалный путь в ФС:
/home/user/MyRepo/x86_64.
Адрес будет:
IP x86_64 classic
======Вариант II======
Но, можно оставить:
DocumentRoot "/var/www/html/"
И создать в папке {{path|html}} каталоги {{path|altlinux/p10}}.
Путь получится такой:
/var/www/html/altlinux/p10
var
└── www
    └── html <- корневой каталог Apache для сайтов
        └── altlinux <-каталог на сайте для ALT Linux (в случае, если будут еще репозитории для других ОС)
            └── p10 <- каталог под конкретную платформу
В этот каталог переместите папку x86_64.
Адрес будет:
IP/altlinux/p10 x86_64 classic
И вы сможете создавать репозитории под другие плафтормы/дистрибутивы на этом http-сервере.
===Прописывание в системе===
====Вариант I====
Например, вы опубликовали данный каталог (x86_64) на http сервере по адресу {{path|IP/x86_64}}
Там путь:
├── base
│   ├── pkglist<nowiki>*</nowiki> <- в этих файлах список пакетов
│   └── release<nowiki>*</nowiki> <- в этих файлах информация о репозиториях
└── RPMS.classic <- в этом каталоге лежат rpm-пакеты
Полный путь для добавления в систему (в файл sources.list) получается такой:
{{path|rpm http://IP/ x86_64 classic}}
====Вариант II====
Например, вы опубликовали данный каталог (x86_64) на http сервере по адресу {{path|IP/altlinux/p10/x86_64}}
Например, вы опубликовали данный каталог (x86_64) на http сервере по адресу {{path|IP/altlinux/p10/x86_64}}



Версия от 13:39, 30 октября 2023

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Примечание: Данная статья создана для организаций, которые хотят создать собственный репозиторий с ПО для ALT Linux, совместимый с APT-RPM, который используется в данной системе.


Рпозиторий ALT Linux состоит из двух компонетов:

  • индексов - где описаны все пакеты, ссылки на них и их версии
  • самих пакетов (в формате *.rpm)

Создание каталога для репозитория

Первым делом нужно создать каталог репозитория.

Примечание: Вы можете создать репозиторий в любом месте файловой системы


Создание каталога для репозитория, в общем примере, выглядит так:

# mkdir путь/где/вы/хотите/создать/репозиторий
# cd путь/где/вы/хотите/создать/репозиторий
# mkdir -p x86_64/RPMS.classic #создание хранилища пакетов

Находиться он может в любом месте.

Примечание: В нашем примере репозиторий будет в домашнем каталоге - ~


Например:

$ mkdir ~/MyRepo
$ cd ~/MyRepo
$ mkdir -p x86_64/RPMS.classic

В новосозданном пути обратите внимание на следующие моменты:

  • x86_64 - архитектура пакетов
  • RPMS.classic - каталог с пакетами. Обычно он имеет компонент classic, но можно указать любое имя компонента.
Примечание: Компонент - последнее слово после "RPMS."


В этот каталог RPM.classic и нужно скопировать все ваши *.rpm пакеты.

Полный путь для *.rpm-пакетов, в нашем случае, получается таким:

  • /home/user/MyRepo/x86_64/RPMS.classic/

Создание индексов

Следующим шагом нам нужно создать индексы для репозитория.

Для этого нам нужна утилита apt-repo-tools. Установим ее следующей командой:

$ su -
# apt-get install apt-repo-tools

Переходим в каталог с нашей созданной папкой x86_64 и оттуда выполняем следующую команду:

# cd /home/user/MyRepo/
# genbasedir --create --progress --topdir=. x86_64 classic

По результатам выполнения команды в этом же каталоге в подкаталоге x86_64 создается каталог base.

Получается путь:

/home/user/MyRepo/x86_64
├── base
│   ├── pkglist.classic
│   ├── pkglist.classic.bz2
│   ├── pkglist.classic.xz
│   ├── release
│   └── release.classic
└── RPMS.classic

Публикация в сети

Теперь данный каталог (/home/user/MyRepo/x86_64) нужно опубликовать на http, ftp или rsync сервере.

Публикация на Http-сервере

По статье Веб-сервер:

Ставим пакеты:

# apt-get install lamp-server

Запускаем службу:

Apache:

# service httpd2 start
# service httpd2 enable
Настройка Apache2

Открываем от имени суперпользователя:

# mcedit /etc/httpd2/conf/include/Directory_html_default.conf

Необходимо в строке

Options Includes FollowSymLinks MultiViews

дописать слово Indexes:

Options Indexes Includes FollowSymLinks MultiViews
Где хранится репозиторий?

Открываем в редакторе от суперпользователя файл /etc/httpd2/conf/sites-available/default.conf.

Ищем строку

DocumentRoot "/var/www/html/"
Вариант I

Меняем путь на свой. В нашем случае:

DocumentRoot "/home/user/MyRepo/"

Реалный путь в ФС:

/home/user/MyRepo/x86_64.

Адрес будет:

IP x86_64 classic
Вариант II

Но, можно оставить:

DocumentRoot "/var/www/html/"

И создать в папке html каталоги altlinux/p10.

Путь получится такой:

/var/www/html/altlinux/p10
var
└── www
    └── html <- корневой каталог Apache для сайтов
        └── altlinux <-каталог на сайте для ALT Linux (в случае, если будут еще репозитории для других ОС)
            └── p10 <- каталог под конкретную платформу

В этот каталог переместите папку x86_64.

Адрес будет:

IP/altlinux/p10 x86_64 classic

И вы сможете создавать репозитории под другие плафтормы/дистрибутивы на этом http-сервере.

Прописывание в системе

Вариант I

Например, вы опубликовали данный каталог (x86_64) на http сервере по адресу IP/x86_64

Там путь:

├── base
│   ├── pkglist* <- в этих файлах список пакетов
│   └── release* <- в этих файлах информация о репозиториях
└── RPMS.classic <- в этом каталоге лежат rpm-пакеты

Полный путь для добавления в систему (в файл sources.list) получается такой:

rpm http://IP/ x86_64 classic

Вариант II

Например, вы опубликовали данный каталог (x86_64) на http сервере по адресу IP/altlinux/p10/x86_64

Там путь:

├── base
│   ├── pkglist* <- в этих файлах список пакетов
│   └── release* <- в этих файлах информация о репозиториях
└── RPMS.classic <- в этом каталоге лежат rpm-пакеты

Полный путь для добавления в систему (в файл sources.list) получается такой:

rpm http://IP/altlinux/p10 x86_64 classic