LINUX.ORG.RU

Как сделать свой репозиторий?

 , ,


0

1

Все говорят - запили свой репозиторий и пиши в него билды. Как-то я спрашивал, а как к своему репозиторию сделать зеркало архивов с исходниками (здесь под «архивами исходников» понимаются тарболы с исходными текстами опакечиваемых программ, а не исходные тексты ebuild-файлов). Неоспоримо взрослые участники LOR изошли на говно, но ответить по-существу не смогли.

https://wiki.gentoo.org/wiki/Local_Mirror
здесь описывается, как сделать зеркало для rsync для основного дерева. Если вкратце, то настроить серверную часть RSYNC и записи для неё в DNS. Что если это дерево синхронизируется не через rsync, а через git? Что делать для деревьев оверлеев? Нет информации про это на этой странице.

кеширование distfiles
https://wiki.gentoo.org/wiki/Local_distfiles_cache
предлагается использовать http-прокси (почему-то от debian, хотя в генте вроде бы был свой собственный, обосновывалось, что собственный лучше учитывает специфику gentoo чем squid).
Совершенно ничего не сказано про то, как настраивать такой же кеш для файлов оверлея.

Что мешает просто дописать адрес web-сервера в переменную GENTOO_MIRRORS? https://wiki.gentoo.org/wiki/GENTOO_MIRRORS ну, на той странице ничего не написано про добавление зеркал (source mirrors) для оверлеев таким способом.

Может быть дело в том, что глобальная система зеркал зеркалит не только основное дерево, но и оверлеи?
прочитаем доку медленно и внимательно:
https://www.gentoo.org/downloads/mirrors/
нет про оверлеи ни слова.

Почему вообще надо править GENTOO_MIRRORS=, а не SYNC=
(SYNC has been deprecated - https://wiki.gentoo.org/wiki/SYNC)
см. также GENTOO_MIRRORS и локальный каталог

Во всём виноват Pinkbyte, я считаю.

Ответ на: комментарий от Zlogene

Дальше объяснять?

да.

Какие сценарии использования обслуживает gitweb? Он даёт возможность быстренько посмотреть на текст билда, чтобы решить стоит ли возиться с подключением репозитория. Точно такую же воозможность даёт gpo.zugaina.org безо всякого gitweb.

Позволяет ли gitweb подключаться к git scc через https?
читаем страницы:
https://git.wiki.kernel.org/index.php/Gitweb
https://wiki.archlinux.org/index.php/Gitweb
и там это не написано!

Einstok_Fair ★★ ()
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от xaTa

А подключать как?

Какая связь между тем, что написано в SRC_URI и тем, с какого зеркала portage будет скачивать tarball?

Почему бы не сделать на wiki страницу: «делаем зеркало исходников для оверлея», в котором написать, что нужно сделать зеркало тарболов, как его подключить в gentoo_mirrors, как это зеркало будет обновляться (надо ли туда файлы помещать руками или оно как-нибудь само через http-replicator получит новые тарболы)

Einstok_Fair ★★ ()
Ответ на: комментарий от xaTa

Можно ли, кстати, указывать fallback-вариант URL-а в .ebuild-е, и как это делать. Если нельзя, то почему?

Идея в том, чтобы указать сначала исходное положение тарбола, а в качестве fallback-варианта - положение тарбола на «зеркале».

Сейчас ведь получается, что нужно указывать только исходное месторасположение файла, и если пользователь у себя зеркало не прописал, то при пропадании исходного источника у него всё сломается (а зеркало останется стоять в стороне)

Einstok_Fair ★★ ()
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от xaTa

получается, что вообще есть два вида файлов - те, которые приходят из внешних источников, и те, которые прилагаются к билду. Вторые с локального web-сервера, а первые через кеширующий http-прокси. Но тогда получается дублирование файлов на локальном диске (локальные файлы тоже закешируются)

Einstok_Fair ★★ ()
Ответ на: комментарий от Einstok_Fair

Какая связь между тем, что написано в SRC_URI и тем, с какого зеркала portage будет скачивать tarball?

Что напишеш в SRC_URI своего ебилда - оттуда и будет тянуть нужную тебе версию с нужного тебе сервера.

xaTa ★★ ()
Ответ на: комментарий от xaTa

указывай сразу зеркало.

Нежелательно делать так, потому что потеряется информация о том, откуда tarball скачивался изначально. Потом зеркало навернётся (ну мало ли что - потоп, ураган, извержение или метеорит), и восстановить содержимое зеркала будет нельзя (т.к. не ясно откуда и как скачивались тарболы).

Einstok_Fair ★★ ()
Последнее исправление: Einstok_Fair (всего исправлений: 1)

Gentoo не стоит потраченного на неё времени.

Как сделать свой репозиторий?

Все говорят - запили свой репозиторий и пиши в него билды.

Сие именуется оверлей. man portage и дальше по непонятному. wiki на эту тему было чуть менее чем дохрена.

Как-то я спрашивал, а как к своему репозиторию сделать зеркало архивов с исходниками

Локальный ftp/http сервер. Там выкладываешь исходники. Свой сервер прописываешь как зеркало в настройках профиля в оверлее.

init_6 ★★★★★ ()
Ответ на: комментарий от Einstok_Fair

Я уже несколько лет (как арчик обосрался и слился в говно) использую генту. Но для своих велосипедов (коих множество) так и не смог написать даже элементарных ебилдов ([censored] я в рот тех [censored], которые вообще на пхытоне написали portage, а также придумали такую наркоманскую систему ебилдописания, хотя можно было бы просто указать, от чего пакет зависит, откуда взять исходники и как их скомпилять — три строчки на баше!!!). Приходится каждый раз после обновления зависимостей моих велосипедов собирать их и устанавливать вручную...

anonymous ()
Ответ на: комментарий от anonymous

Если дело только в формате ебилдов, то, по идее, можно накостылить прослойку между твоим идеальным 3-х строчным форматом пакета и ebuild.

firefox-61.0.anonpkg

DEPS="..."
SOURCE="..."
BUILD="..."

anonymous@lor ~/anon-overlay/www-client/firefox $ anonpkg2ebuild firefox-61.0.anonpkg firefox-61.0.ebuild
anonymous ()

Я не понимаю проблемы, ну хочешь ты зеркалировать оверлей, ну подними ты себе rsync master где нибудь, который будет ходить по твоему оверлею, сканить SRC_URI и складывать из тебе на сервер с которого ты будешь синкаться.

Zlogene ()
Ответ на: комментарий от Zlogene

мне кажется, что такая задача должна быть уже решена. Оверлеев многие сотни, наверняка у них всё без зеркал разъезжается. Так что кто-то уже должен был технологию проработать.

вот это «сканить SRC_URI» - оно не нужно, если использовать http-replicator, например.

Einstok_Fair ★★ ()
Ответ на: комментарий от Zlogene

В соседнем топике ты дал интересную сслыку, в которой есть слово "thirdpartymirrors"

Это, похоже, то, что мне надо, но я не понимаю как его использовать.
Если я в SRC_URI буду прописывать mirror://mytech/distfiles то у меня потеряется информация о том, какой исходный URL был у тарбола
Если я в SRC_URI буду прописывать исходный URL, то не ясно - будет ли portage использовать mirror://mytech/distfiles и если да, то почему. Нужно ли его для этого прописывать в GENTOO_MIRRORS?

Einstok_Fair ★★ ()
Ответ на: комментарий от Einstok_Fair

нет, thridpartymirrors тебе совсем не нужен, он содержит в себе шорткаты популярных хостингсервисов, чтобы сокращать ссылки для SRC_URI, например чтобы не писать долго:

SRC_URI="https://jp.sourforge.net/foobar/${PN}/${P}.tgz"

можно было написать:

SRC_URI="mirror://sourceforge/${PN}/${P}.tgz"
Zlogene ()
Ответ на: комментарий от Zlogene

Ну а чем плохо-то? Чем зеркало к моему оверлею хуже чем зеркало sourceforge? Будет у оверлея свой шорткат.

Но меня в этом вопросе смущает, почему зеркало прописывают в SRC_URI (вместо того, чтобы прописывать его в GENTOO_MIRRORS)

Einstok_Fair ★★ ()
Ответ на: комментарий от Einstok_Fair

потому что то что ты прописываешь в SRC_URI это конкретная ссылка к конкретному пакету, а GENTOO_MIRRORS содержит ссылки на ftp/http со всеми нынешними пакетами в дистрибутиве

Zlogene ()
Ответ на: комментарий от Zlogene

А мне нужно ни то и ни другое, а третье.

Мне не подходит ссылка на http со всеми нынешними пакетами, потому что там пакеты только из основного дерева. А мне нужны другие пакеты, из оверлея.

Если я пропишу алиас в GENTOO_MIRRORS, он будет превращаться в полный адрес зеркала с использованием файла thirdpartymirrors из оверлея?

Einstok_Fair ★★ ()
Ответ на: комментарий от Zlogene

а что тогда хотел сказать init_6 в этом комментарии - Как сделать свой репозиторий? (комментарий) ?

«Свой сервер прописываешь как зеркало в настройках профиля в оверлее.»

Einstok_Fair ★★ ()
Последнее исправление: Einstok_Fair (всего исправлений: 1)