Возникла необходимость воссоздать на второй машине набор установленных программ.Использую AltLinux. Как я понимаю, простым "rpm -q -a" и
"rpm -i --nodeps pkg.rpm" для каждого пакета на другой машине не обойтись, если нужно поставить более новые версии пакетов.У меня два вопроса:
Как грамотно сформировать список пакетов для установки, чтобы в нем были только названия пакетов, без версии, вывод "rpm -q -a" так просто не пропарсишь, у некоторых пакетов очень хитрые названия, по которым не понять после какого "-" резать.
Как после "rpm -i --nodeps" всех нужных пакетов, проверить каких зависимостей не хватает в базе и что нужно доустановить ?
Может apt как-то использовать ?
>Как грамотно сформировать список пакетов для установки, чтобы в нем были только
>названия пакетов,rpm -q -a --queryformat '%{NAME}\n'
>Как после "rpm -i --nodeps" всех нужных пакетов, проверить каких зависимостей не
>хватает в базе и что нужно доустановить ?Топорное решение:
rpm -q -a --queryformat '%{NAME}\n'|sort|uniq > list_inst.txt
cat list_inst.txt| xargs -l1 rpm -q -R |grep -E "[<=>]"| cut -d ' ' -f1| cut -d '(' -f1| sort| uniq > list_req.txt
diff list_inst.txt list_req.txt| grep '>' > missing.txt
>>Как грамотно сформировать список пакетов для установки, чтобы в нем были только
>>названия пакетов,
>
>rpm -q -a --queryformat '%{NAME}\n'
>
>
>>Как после "rpm -i --nodeps" всех нужных пакетов, проверить каких зависимостей не
>>хватает в базе и что нужно доустановить ?
>
>Топорное решение:
>rpm -q -a --queryformat '%{NAME}\n'|sort|uniq > list_inst.txt
>cat list_inst.txt| xargs -l1 rpm -q -R |grep -E "[<=>]"| cut -d ' ' -f1| cut -d '(' -f1| sort| uniq > list_req.txt
>diff list_inst.txt list_req.txt| grep '>' > missing.txtЕще более топорное - скопировать винты
dd if=/dev/hda of=/dev/hdc
Если не сильно большой винт, то 30-40 минут (иногда и в 15 укладывается) и клон готов.