пʼятниця, 3 серпня 2007 р.

Debian: Как собрать все пакеты, установленные в системе, и перенести их на другой комп

Несколько раз собирался написать этот пост да все терпения не хватало, теперь все таки сохраню, чтобы не пришлось опять собирать эти рецепты по всему инету :)

Значит так: есть компьютер с Дебом подключенный к интернету, и есть в другом месте компьютер не подключенный к инету. Нужно: поставить на не подключенный комп все те же программы, которые есть на продвинутом.

Шаг первый: собираем все пакеты в одном месте
В этом нам поможет простенький скрипт

dpkg --get-selections | \
grep -v "deinstall" | \
awk '{print $1}' | \
xargs dpkg-repack


Запаситесь терпением, ибо это процесс не мгновенный. По крайней мере можно сделать себе кофе :)

Шаг второй: Теперь нам предстоит из всей этой купы файлов сделать образ диска, который будет воспринят программой apt-cdrom для этого делаем так:

1. Создаем каталоги: pool/main/ и dists/etch/main/binary-i386/
2. Все файлы *.deb перемещаем в каталог pool/main/
3. Делаем так: apt-ftparchive packages pool/main/ | gzip -9c > dists/etch/main/binary-i386/Packages.gz
4. Создаем файл ~/myapt.conf такого вида:

APT::FTPArchive::Release {
Origin "APT-Move";
Label "APT-Move";
Suite "etch";
Codename "etch";
Architectures "i386";
Components "main";
Description "Etch Updates CD";
};


5. Потом так: apt-ftparchive -c ~/myapt.conf release dists/dapper/ > dists/etch/Release
6. Создаем файл info:

mkdir .disk
echo Etch-Updates `date +%Y-%m-%d` > .disk/info


7. Вот и все, осталось создать из этого iso-образ и зажечь его на диск (не забудьте перед этим убрать все ограничения доступа к файлам, иначе потом не сможете диск открыть)

mkisofs -r -A "Etch Updates `date +%Y%m%d`" -o etch-updates.iso /mirrors/debian

Ссылки:
Хорошая статья по теме управления пакетами в Debian лежит здесь

Немає коментарів: