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

Материал из ALT Linux Wiki
 
(не показано 28 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{Stub}}
{{Note|Данная статья создана для организаций, которые хотят создать собственный репозиторий с ПО для ALT Linux, совместимый с APT-RPM, который используется в данной системе.}}
{{Note|Данная статья создана для организаций, которые хотят создать собственный репозиторий с ПО для ALT Linux, совместимый с APT-RPM, который используется в данной системе.}}
{{Note|Короткая ссылка сюда - https://www.altlinux.org/Ownrepo}}


Рпозиторий ALT Linux состоит из двух компонетов:
Репозиторий ALT Linux состоит из двух компонентов:
*индексов - где описаны все пакеты, ссылки на них и их версии
*индексов - где описаны все пакеты, ссылки на них и их версии
*самих пакетов (в формате *.rpm)
*самих пакетов (в формате *.rpm)
Строка 9: Строка 9:
Первым делом нужно создать каталог репозитория.
Первым делом нужно создать каталог репозитория.
{{Note|Вы можете создать репозиторий в любом месте файловой системы}}
{{Note|Вы можете создать репозиторий в любом месте файловой системы}}
$ su -


Общий пример:
Создание каталога для репозитория, в общем примере, выглядит так:
  # mkdir путь/где/вы/хотите/создать/репозиторий
  # mkdir путь/где/вы/хотите/создать/репозиторий
  # cd путь/где/вы/хотите/создать/репозиторий
  # cd путь/где/вы/хотите/создать/репозиторий
Строка 21: Строка 20:


Например:
Например:
  # mkdir ~/MyRepo
  $ mkdir ~/MyRepo
  # cd ~/MyRepo
  $ cd ~/MyRepo
  # mkdir -p x86_64/RPMS.classic
  $ mkdir -p x86_64/RPMS.classic


В новосозданном пути обратите внимание на следующие моменты:
В новосозданном пути обратите внимание на следующие моменты:
*x86_64 - архитектура пакетов
*x86_64 - архитектура пакетов (Возможные архитектуры: i586, i686, x86_64, noarch)
*RPMS.classic - каталог с пакетами. Обычно он имеет компонент classic, но можно указать любое имя компонента. (Компонент - последнее слово после "RPMS.")
*RPMS.classic - каталог с пакетами. Обычно он имеет компонент classic, но можно указать любое имя компонента.
 
{{Note|Компонент - последнее слово после "RPMS."}}


В этот каталог RPM.classic и нужно скопировать все ваши *.rpm пакеты.
В этот каталог RPM.classic и нужно скопировать все ваши *.rpm пакеты.
Строка 38: Строка 39:
Следующим шагом нам нужно создать индексы для репозитория.
Следующим шагом нам нужно создать индексы для репозитория.


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


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


Переходим в каталог с нашей созданной папкой x86_64 и оттуда выполняем команду:
Переходим в каталог с нашей созданной папкой {{path|x86_64}} и оттуда выполняем следующую команду:
# genbasedir --create --progress --topdir=. x86_64 classic
  # cd /home/user/MyRepo/
 
В нашем примере:
  # cd /opt/repos/MyRepo/
  # genbasedir --create --progress --topdir=. x86_64 classic
  # genbasedir --create --progress --topdir=. x86_64 classic


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


Получается путь:
Получается путь:
  /opt/repos/Myrepo/x86_64
  /home/user/MyRepo/x86_64
  ├── base
  ├── base
  │   ├── pkglist.classic
  │   ├── pkglist.classic
Строка 61: Строка 59:
  │   └── release.classic
  │   └── release.classic
  └── RPMS.classic
  └── RPMS.classic


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


Например, вы опубликовали данный каталог (x86_64) по {{path|IP/altlinux/P10/x86_64}}
===Публикация на Веб-сервере===
По статье [[Веб-сервер]]:
*Поставьте пакеты
*Запустите службу httpd2


Там путь:
Скопируйте каталоги репозитория в каталог Apache:
  ├── base
  cp -a /home/user/MyRepo /var/www/html/
  │   ├── pkglist<nowiki>*</nowiki> <- в этих файлах список пакетов
 
│   └── release<nowiki>*</nowiki> <- в этих файлах информация о репозиториях
Путь получится такой:
└── RPMS <- в этом каталоге лежат rpm-пакеты
  var
└── www
    └── html <- каталог Apache для веб-сайтов
        └── MyRepo <- каталог репозитория
            └── x86_64 <- подкаталог для архитектуры x86_64


Полный путь для добавления в систему (в файл sources.list) получается такой:
===Прописывание в системе===
{{path|rpm [p10] http://IP/altlinux p10/branch/x86_64 classic}}
Если вы опубликовали данный каталог (MyRepo) на веб-сервере по адресу {{path|MyRepo/x86_64}}, полный путь для добавления в систему (в файл sources.list) получается такой:
<syntaxhighlight lang="text">rpm http://IP/MyRepo x86_64 classic</syntaxhighlight>
{{Category navigation|title=Начинающему разработчику|category=Начинающему разработчику|sortkey={{SUBPAGENAME}}}}

Текущая версия от 21:55, 15 февраля 2024

Примечание: Данная статья создана для организаций, которые хотят создать собственный репозиторий с ПО для ALT Linux, совместимый с APT-RPM, который используется в данной системе.
Примечание: Короткая ссылка сюда - https://www.altlinux.org/Ownrepo


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

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

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

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

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


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

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

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

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


Например:

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

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

  • x86_64 - архитектура пакетов (Возможные архитектуры: i586, i686, x86_64, noarch)
  • 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 сервере.

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

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

  • Поставьте пакеты
  • Запустите службу httpd2

Скопируйте каталоги репозитория в каталог Apache:

cp -a /home/user/MyRepo /var/www/html/

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

var
└── www
    └── html <- каталог Apache для веб-сайтов
        └── MyRepo <- каталог репозитория
            └── x86_64 <- подкаталог для архитектуры x86_64

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

Если вы опубликовали данный каталог (MyRepo) на веб-сервере по адресу MyRepo/x86_64, полный путь для добавления в систему (в файл sources.list) получается такой:

rpm http://IP/MyRepo x86_64 classic