Локальный репозиторий (overlay)

Всем привет.

Подскажите как можно сделать следующее:

В первом приближении. Делается копия ВСЕГО текущего репозитория Gentoo, подключается как оверлей (или любым другим путем), и при следующей установке программы emerge ищет соответствующую версию пакета/зависимостей в официальном источнике + в локальном оверлее. Соответственно мне доступны все вресии офф. источника и все версии скачанные на мой компьютер когда-то, а там я уже решу что именно я хочу установить. При отсутствии Интернета ищется только в локальном оверлее.

Во втором приближении. Копия делается только избранных пакетов, например, установленных в моей системе, и, по моему запросу (например emerge --fetchonly ), каких-то еще. Далее - все как в предыдущем варианте.

Заранее благодарю!

Бессмысленно. Попробуете

Бессмысленно.
Попробуете обрисовать ситуацию, когда это нужно.

2 _SerEga_: Попробуете

2 _SerEga_:
Попробуете обрисовать ситуацию, когда это нужно.

Ситуация 1: у сестры слабый компьютер (какой-то Pentium 600GHz и 256RAM). Понадобилось установить cups. До этого система 1.5 года не обновлялась. Матерился я долго. Если бы я тогда скачал все ebuild то нужно было бы просто доустановить пакеты, а так старые пакеты недоступны, пришлось обновлять пол системы.

Ситуация 2: У меня есть установленная система, она меня устраивает на 100%. Через год я куплю новый компьютер и захочу переустановить туда такую же систему, может что-то добавить. Я могу автоматизировать все скриптами, но если будут обновляться программы, будут меняться формат кофнигов, будут вылезать баги при инсталляции и скриптами автоматизировать работу не получится. Копировать 1:1 тоже не хочется, ибо старая система может быть немного замусорена или новая система будет иметь некоторые ньюансы в конфигурации (например добавить/убрать USE-флаг), которые легко подправить в скрипте.

Ситуация 3: У меня несколько компьютеров не подключенных в Сеть. Вариант "скачай диск Gentoo" не предлагать, предположим я сам хочу сделать такой диск.

Если не делать emerge --sync

Если не делать emerge --sync то ebuildы останутся в неприкосновенности и через 1.5 года. ))
вам надо не ebuildы(сейчас не помню точно, но есть место где хранятся все версии ебилдов) сохранять, а исходники(это гигов 60), хотя их тоже как правило можно найти

чем система может быть замусорена?

ps у меня возникает подозрение, что вы вместо distfiles пишете ebuild

Много ж раз похожее

Много ж раз похожее обсуждалось.

Я делаю так.
Для друга скачиваю весь distfiles со всех возможных зеркал (у немцев более полные зеркала и чаще добавляют новые версии)
Скачиваю все (добавленные в систему) overlay-и.
У него AMD64 у меня Intel32 платформа.
Поэтому, приходится "бежать" по каждому ebuild. Скачивать его. Если скачалось не успешно, занести в log файл (чтобы потом скачать ручками, по возможности)

файлы: (там все понятно)
http://paste.pocoo.org/show/311588/ - mirror_distfiles.sh
http://paste.pocoo.org/show/311589/ - mirror_distfiles_overlay.sh
http://paste.pocoo.org/show/311590/ - get_ebuild.sh

2 sasaimns: Это уже

2 sasaimns: Это уже интересно!

Пару вопросов:
1. А дальше что? Я так понял, что скачанные файлы (а точнее каталог distfiles) нужно положить в /usr/portage и тогда без Интернета все работает.
Или оставлять это в отдельном каталоге (в /mnt/big_WD/mirr в вашем скрипте ) и дальше сделать его как MIRROR? Только вот MIRROR, как я понял, предполагает скачивание через wget, а значит это http или ftp. Впринципе ftp-сервер поднять не проблема...
P. S. Понравилось решение по ограничению колличества wget и python тредов.

2. Я так понял что это было решение задачи "скачать все и заморозить". А теперь как сделать вторую задачу: доступны все старые (допустим скачанные в предыдущем случае) плюс новые. portage при обновлении удаляет старые ebuild'ы. То есть, как я понял, должно быть два источника: последний/current/актуальный и замороженный, и emerge должен видеть оба. Как оверлеи. Как?

Впринципе, уже первый вариант много чего дает, но хотелось бы чтобы совсем идеально было.

1) поскольку это у меня

1) поскольку это у меня отдельный диск

"что скачанные файлы (а точнее каталог distfiles) нужно положить в /usr/portage" - у меня сразу направлен куда мне нужен.
cat /etc/make.conf | grep -i mirr
DISTDIR=/mnt/big_WD/mirr/distfiles

2) заморозить? - ну скачай старые портежи с билдами и положи в свой локальный реп. С текущими размерами дисков 42 метра портежа у тебя много места не съест.

cat /etc/make.conf | grep -i my

PORTDIR_OVERLAY="/pub/Linux/overlay/my_portage/

MIRROR? для кого? для своего

MIRROR? для кого? для своего хоста? или для другого компа в сети?

иногда для себя делаю так (все тот же make.conf)

GENTOO_MIRRORS="
/pub/Downloads
file:///pub/Downloads
file://localhost/pub/Downloads"

Для другого компа? можно NFS, можно http (полет фантазии)

"предположим я сам хочу

"предположим я сам хочу сделать такой диск." - есть же :) Только что обновление скачал systemrescuecd-x86-1.6.4 :):):):)

Забыл добавить: Я

Забыл добавить:
Я периодически "чищу" дистфайлы.
Раньше (со времен 2005 года) дисты занимали около 220 гигов.

На текущий момент:
du -h /mnt/big_WD/mirr/
162G /mnt/big_WD/mirr/

2 sasaimns Спасибо огромное!

2 sasaimns

Спасибо огромное! Буду эксперементировать.

P. S. С наступающим 2011 годом! (:

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".