Всем привет. Пытаюсь разобраться, как изменить зеркало на локальное. С готовыми пакетами все понятно. Качаешь, меняешь. Но вот больше всего вопросов возникает с тем, как изолировать сборку из исходников. Я нашел правила, по которым Calculate собирает пакеты, но не смог найти сами оригиналы, которые, по логике, должны (но не обызаны) храниться на серверах Calculate. Так то в самих правилах были ссылки на оригиналы, но этор сайты производителей, а хотелось бы иметь копии на отдельном сервере, или многого хочу?
Может кто то с таким уже сталкивался и сможет направить на нужное русло. По итогу имею набор из готовых пакетов, правила сборки и не имею понятия где отыскать пакеты с исходниками.
Я имею в веду создание сервера с установочными пакетами. На оф.странице Calculate есть ссылки на зеркала https://wiki.calculate-linux.org/ru/mirrors. Я так понял, там хранятся фалы готовых для установки пакетов, а именно в папке grp/x86_64/. Этот сервер я дублирую к себе на локальный диск и меняю путь в файле /etc/portage/make.conf/binhost на собственный сервер.
Под “Изолировать”, я подразумеваю, скачать архив всех исходных файлов, что используются при сборке и указать пукть к этим самым пакетам в ebuild. Но я нашел только файл zz-calculate.conf в /etc/portage/repos.conf/ в котором указаны git репозитории с этими самыми ebuild файлами.
Это я понял, но хотелось бы знать, там на всех файлах указаны разные источники или все-же есть один какой то общий ресурс, на котором собраны, пусть и не все, но хотя бы часть исходных файлов, указанных в git репозитории.
Это зеркала образов/ пакетов “Calculate Linux”, а не всего репозитория пакетов, которые используются/ могут использоваться/ могут быть установлены в системе;
При сборке чего? Большая часть пакетов/ исходного кода загружается с официальных серверов, например:
И так. Я копировал зеркало Calculate и Gentoo. После обновил binhost командой cl-update -m "Локальный адрес" .
Зеркало Calculate поменялось, но теперь не могу найти команду для изменения сервера Gentoo. GENTOO_MIRRORS - Gentoo wiki Тут сказано, что можно добавить запись в make.conf файл, но это не работает. А менять параметр в /usr/share/portage/config/make.globals не очень хочется. Может знает кто-то, есть ли вообще команда, для смены зеркала от Gentoo?
Зачем дублировать весь бинхост локально? Если так уж хочеться, ну сделайте кэширующий прокси и пусть все компы, кроме первого в цепочке, берут пакеты уже из кэша.
Но, если мы говорим о собранных, именно из сырцов пакетах, то не нужны тут кальковские бинари, тут нужны именно сырцы, их точно так же можно получать на первом сборочном компе, который будет их качать и ложить в расшаренную папку с дистфайлами. Папку с пакетами, тоже стоти расшарить в сети и примонтировать на все компы. Так у вас будет и копия дистфайлов, которые нужны именно и только для сырцовых пакетов и копия бинарей именно этих пакетов, которые были собраны из сырцов.
С копией дерева портажей можно поступить точно так же - расшаренная и примонтированная папка.
Столкнулся с другой проблемой. В папке /etc/portage менял зеркало в файле make.conf. Сервер обновлений поменялся. Так-же менял и сервера git в repos.conf/zz-calculate.conf, но при перезапуске настройки в этом файле сбрасываются. Вопрос, откуда эти сервера git прописываются?
Спасибо за подсказку. В моём случае необходимо продублировать именно весь бинхост, полностью.
Потому что стоит задача полностью отвязаться от внешних серверов.
Интересный трюк, спасибо.
Вопрос всё-таки следующий, может кто-то может помочь:
Я меняю адреса к репозитариям git в файле /etc/portage/repos.conf/zz-calculate.conf - ставлю там свои серверы.
Если после этого запускаю команду cl-update, то адреса в файле /etc/portage/repos.conf/zz-calculate.conf снова автоматически сбрасываются на сервера по-умолчанию.
Буду признателен за подсказку как сделать так, чтобы сервера не сбрасывались при запуске cl-update.
Это плохой вариант, т.к. этот файл перезвапишется при обновлении репы. cl-update --help
Нужно добавить своё зеркало, переключиться на него и запретить его менять.
Копать нужно в сторону изменения переменных для калькоутилит, какая-то из этих: cl-core-variables-show --filter binhost
Но, нужно учитывать, что состояние бинхоста жёстко привязано к срезу дерева портажей, которое на гите, если они не будут совпадать, то система будет пытаться искать новое дерево и\или бинхост.
Как мне видится, для вашего случая, проще всего один комп наружу, он синкает дерево, скачивает бинари и\или собирает то, что изменено локально, качает нужные дистфайлы и делает это всё в общей папке, которая примонтирована на все компы в сети.
Полная копия бинхоста ничего вам не даст без точного соответствия дереву, даже если вы сделаете зеркало гита локально, то номер среза не будет совпадать с копией бинхоста, что вы скачали.
Если у вас корпоративная сеть с множеством компов, то у кальки есть пара отличных вариантов для массированного обновления всех компов, это cl-builder и обновлени во второй рут через iso.