Прога по сабжу - ценная!Когда её в официальные репы добавят?
#!/bin/sh# RPM_On_Disk v0.1 beta kostyalamer 08/2009#------------------------------function proverka (){if [ `rpm -qa | grep -c $1` -eq 0 ]; then echo '<--- установите пакет ' $1 ' !!! --->'; read ; exit 1 ;fi}#------------------------------function create_dir (){mkdir -p ~/Repa_Local/local/i586/ 2>/dev/nullmkdir ~/Repa_Local/local/.disk 2>/dev/null cd ~/Repa_Local/local/i586/mkdir base RPMS.local SRPMS.local 2>/dev/null}#------------------------------function pause (){echo ""echo -e "\033[1m Нажмите Enter !!! \033[0m"read bred}#------------------------------function statistic (){a=`ls $HOME/Repa_Local/local/i586/RPMS.local/ *.rpm 2>/dev/null | wc -l`b=`ls $HOME/Repa_Local/local/i586/SRPMS.local/ *.rpm 2>/dev/null | wc -l`c=`expr $a + $b - 2`cd $HOME/Repa_Local/local/i586/echo " В вашем репозитарии " $c " RPM "echo -n " Занимаемый объем на винте: ";du -s -hecho "" }#------------------------------function genbase (){rm -f $HOME/Repa_Local/local/i586/base/*;a=`ls $HOME/Repa_Local/local/i586/RPMS.local/ *.rpm 2>/dev/null | wc -l`b=`ls $HOME/Repa_Local/local/i586/SRPMS.local/ *.rpm 2>/dev/null | wc -l`c=`expr $a + $b`if [ `expr $c` -gt 2 ]; then echo "Alt Repa `date +%d/%m/%y_%H:%M`" >~/Repa_Local/local/.disk/infoecho '<--- работает genbasedir --->'genbasedir --progress --label="Repa `date +%d/%m/%y_%H:%M`" --origin="ALT Linux" --topdir=$HOME/Repa_Local/local/ i586 local echo $'\a'echo 'Репозитарий с пакетами успешно создан и находитсяв папке /Repa_Local вашего домашнего каталога,теперьвам осталось записать этот каталог на диск !'sleep 2fi;}#------------------------------function rpm_to_repa (){clearecho -e "\033[1m--- Копируем пакеты, введите пароль root-а ---\033[0m"su -c 'if [ `ls /var/cache/apt/archives/*.rpm | wc -l` -eq 1 ]; then echo " в кэш-е Apt-а нет скачанных rpm-ов !!! "; pause; exit;fi;cp -v /var/cache/apt/archives/*.rpm $HOME/Repa_Local/local/i586/RPMS.local;cp -v /var/cache/apt/archives/*.src.rpm $HOME/Repa_Local/local/i586/SRPMS.local';rm -f $HOME/Repa_Local/local/i586/RPMS.local/*.src.rpm;sleep 1}function menu (){clear statisticecho ""echo -e "\033[1m ----- Введите нужную цифру ! ----- \033[0m"echo ""echo "1) Копировать rpm-ы из кеша Apt-а."echo "2) Редактировать репу при помощи mc."echo "3) Записать репу на диск."echo "4) Удалить все пакеты из репы."echo "5) Удалить пакеты из кеша Apt-а."echo "6) Справка."echo "7) Выход."}# ---------- Программа ----------clearecho " Подождите, комп. думает ! "proverka "apt-repo-tools" if [ $? -eq 1 ]; then exit fi create_dir; genbase; clearstatisticecho ""echo -e "\033[1m ----- Введите нужную цифру ! ----- \033[0m"echo ""select punkt in "Копировать rpm-ы из кеша Apt-а." "Редактировать репу при помощи mc." "Записать репу на диск." "Удалить все пакеты из репы." "Удалить пакеты из кеша Apt-а." "Справка." "Выход."docase $punkt in "Копировать rpm-ы из кеша Apt-а.") clear rpm_to_repa genbase menu;; "Редактировать репу при помощи mc.") clear proverka "mc" if [ $? -eq 0 ]; then echo "Редактирование репозитария в mc !" echo "Можно удалить лишние пакеты илидобавить пакеты вручную из другихисточников " echo "" echo "Выход из mc по F10 " pause mc -U $HOME/Repa_Local/local/i586/ genbase else echo " Установите пакет mc ! "; pause fi menu;; "Записать репу на диск.") clear proverka "genisoimage" if [ $? -eq 0 ]; then echo "Записываем образ диска." sleep 1 genisoimage -r -v -J -l -o ~/tmp/repa.iso ~/Repa_Local/local proverka "k3b" if [ $? -eq 0 ]; then k3b ~/tmp/repa.iso 2>/dev/null; sleep 10 clear echo "После записи удаляем iso-образ диска !!! "; pause rm ~/tmp/repa.iso else clear echo -e "\033[1m Установите пакет k3b или запишитеобраз диска в другой программе выйдя из скриптаобраз: " ~ "/tmp/repa.iso \033[0m" pause fi else echo -e "\033[1m Установите пакет mkisofs ! \033[0m"; pause fi menu;; "Удалить все пакеты из репы.") clear echo "Удалить все пакеты из репы." cd $HOME/Repa_Local/local/i586/ rm -f RPMS.local/* SRPMS.local/* base/* sleep 1 menu;; "Удалить пакеты из кеша Apt-а.") clear echo -e "\033[1m Если вы действительно хотите удалитьвсе скачанные пакеты введите Y, если нетпросто нажмите на Enter ! \033[0m" echo "" read l if [ $l = "Y" -o $l = "y" ]; then echo -e "\033[1m Для удаления пакетов введите пароль root ! \033[0m" su -c 'apt-get clean' fi menu;; "Справка.") clear echo " Справка:" echo "" echo " Rpm On Disk v0.1 beta" echo "" echo ' Эта прога. предназначена для создания локальногорепозитария из скачанных пакетов и записи его на диски является надстройкой над программой genbasedir. Вы можете редактировать репу и добавлять пакеты издругих источников при помощи mc (2-ой пункт меню ) изаписать репу на диск при помощи k3b ( либо взятьобраз диска и записать его внешней программой приотсутствии k3b ). О всех замеченных багах, а так жепожеланиях по работе программы просьба писать наkostyalamer@yandex.ru или в гостевую книгу моего сайта http://kostyalamer.narod.ru , на сайте же планируюпоместить более подробное описание работы с программой. Благодарности: автору genbasedir - а , Drool-у за его help о том как создавать локальную репу,Александру за его замечательный скрипт на ту же тему (скриптом не пользовался но кое-что стибрил ) Лицензия: ДЧХ - делай что хочешь. P.S. Spectrum forever ! ' pause menu;; "Выход.") break;; *) echo " Ошибка выбора !" sleep 3 menu;;esacdone