LINUX.ORG.RU
решено ФорумAdmin

Как создать и настроиться на локальное зеркало?

 , ,


0

2

Всем доброго времени суток!

Хочу установить Calculate Linux нескольким пользователям, живущим вдали от хороших каналов интернета. Для чего хочу на внешнем диске создать зеркало пакетов, настроить систему на работу с ним и после установки системы доставлять пакеты (и обновления) оттуда. Что бы обращение к интернету вообще не требовалось.

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

★★★★★

Что бы обращение к интернету вообще не требовалось.

Здесь две подзадачи:
1) Gentoo local mirror - в гугле найдешь материалов массц
2) Выкачать все исходники
Второе потенциально можно реализовать, если рекурсивно пройтись по дереву портежа и для каждого ebuild'а индивидально (дабы избавиться от возможных конфликтов) сделать emerge --fetchonly. Но все равно результат будет не 100%, так как есть пакеты, которые emerge по некоторым соображениям попросит выкачивать самостоятельно (та же Oracle Java). Опять же, прийдется позаморачиваться с маскировками, keywords и т. п.; live пакеты, кстати, нужно отфильтровать. Времени займет массу, и размерчик получится очень и очень.

Как альтернативу я бы рекомендовал просто один раз хорошо настроить систему, а потом не обновлять. У меня есть несколько историй успеха на этот счёт, так что знаю о чем говорю. Самое сложное будет правильно поставить ТЗ.

P. S. Я в свете поставленной тобой задачи не уверен, что Gentoo (да и любой rolling-release дистрибутив) лучший выбор.

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

Он хочет чтобы еще и distfiles брались не из Интернета.

Да, вот это меня и смущает. Достаточно ли будет выкачать эти урлы?

http://mirror.yandex.ru/gentoo-distfiles/

http://mirror.yandex.ru/gentoo-portage/

Есть ли там исходники? Или бинарные пакеты?

Я точно знаю, что calculate использует бинарные пакеты, хотя бы частично. Но не настолько хорошо разбираюсь, чтобы понять, как их подсунуть локально.

Kroz, спасибо за подробное описание. Ты высказал моё главное опасение — исходники. Я так понимаю, в зеркалах gentoo их нет? Только ебилды? А что тогда в distfiles?

Самое сложное будет правильно поставить ТЗ.

Да, в этом-то и проблема. Хотелось бы сделать достаточно универсальное решение, поэтому и хочу все портежи. Места не жалко.

P. S. Я в свете поставленной тобой задачи не уверен, что Gentoo (да и любой rolling-release дистрибутив) лучший выбор.

Да, я тоже не уверен, но хочется посоветоваться, прежде чем отказываться от этой идеи. Хочется избежать зоопарка дистрибутивов м отдельно взятом мозгу :)

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

Да, нужен именно distfiles. И он с помощью emerge --sync не загружается (КО).
На зеркала Гентушные не заходил, но в ebuild-ы заглядывал, и там как правило ссылки на сайты создателей ПО. Поэтому что в http://mirror.yandex.ru/gentoo-distfiles/ сам бы хотел знать, хотя на первый взгляд - то, что нужно.

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

Да, вот это меня и смущает. Достаточно ли будет выкачать эти урлы?

В случае генты - да, для всех пакетов, в которых нет RESTRICT=fetch по лицензионным причинам(привет, oracle-jdk)

Но, как мне кажется, для Calculate будет актуальнее еще выкачать базу бинарных пакетов. Тут я подсказать что-то не могу, опыта эксплуатации Calculate у меня мало

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

Кстати, посчитал общий размер всех файлов на http://mirror.yandex.ru/gentoo-distfiles/distfiles ; получилось 184G.

Ничего, ради задуманной задачи меня это устраивает.

Pinkbyte:
Остался главный вопрос: что и куда прописывать в систему?
GENTOO_MIRRORS=«/run/media/DISK_1TB/gentoo/gentoo-distfiles»
Так?

Но, как мне кажется, для Calculate будет актуальнее еще выкачать базу бинарных пакетов. Тут я подсказать что-то не могу, опыта эксплуатации Calculate у меня мало

Да, я тоже об этом думал, только я опять не знаю, как это в систему включить. Ну выкачаю я файлы, но там не совсем очевидным образом связаны переменные шаблонов, переменная PORTAGE_BINHOST и оверлеи. Немного сложно для начала, а экспериментировать прям сейчас не хочется.

Пока выкачиваю distfiles потихоньку.

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

Остался главный вопрос: что и куда прописывать в систему?
GENTOO_MIRRORS

/etc/portage/mirrors. Правда не уверен, можно ли там указывать протоколы отличные от ftp и http(например file:///)

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

Правда не уверен, можно ли там указывать протоколы отличные от ftp и http(например file:///)

Поднять локальный http можно простым модулем python. Это не проблема.

Итак, первая установка прошла успешно.


Несмотря на то, что я не успел сделать зеркало, всё прошло гладко.

Пришлось, правда, доехать с ноутом до Интернета и доставить пару программ, включая исходники ядра, для небольшого тюнинга. Буду продолжать разбираться, потом отпишусь.

fractaler ★★★★★
() автор топика

Мне ответили в ВК Кальки:

Всё очень просто! Скачайте бинарные пакеты из одного из зеркал. RSYNC сервера можно увидеть здесь http://www.calculate-linux.ru/main/ru/download Затем пропишите в переменной cl_update_binhost например в файле /etc/calculate/calculate.env путь к вашему FTP или HTTP с зеркалом примерно так:

[update]
cl_update_binhost = ftp://192.168.0.1/pub/calculate
После этого пакеты будут скачиваться с вашего локального зеркала. Чтобы сканирование зеркал не сбросило его снова на другое при выполнении «cl-update —scan», вы можете указать его так же в переменной cl_update_binhost_list:
[update]
cl_update_binhost_list = ftp://192.168.0.1/pub/calculate
теперь при выполнении cl-update —scan всегда будет определяться ваше зеркало.

К сожалению запросов к Git пока не избежать, но они составляют значительно меньший трафик.

И ещё:

Git обновляется с git.calculate.ru. Безусловно это узкое место. Я думаю к следующему релизу мы добавим поддержку работы с разными репозиториями, в т.ч. для возможности создания локальной копии git.

Думаю, на этом тема решена. Приступаю к реализации :)

fractaler ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.