Автор Тема: Пишем патчи на minimal-ы , или поделись своим дистрибутивом !  (Прочитано 15728 раз)

Оффлайн swordrex

  • Участник
  • *
  • Сообщений: 403
    • Pínus
туда еще можно вот этот фм включить(в базовый патч) сборка - NotHAM, удобный, быстрый.
« Последнее редактирование: 25.02.2010 00:11:41 от swordrex »
there is no truth outside of our own awareness

kostyalamer

  • Гость
swordrex. твои замечательные идеи не пропали даром, в новой версии скрипта кроме локальной репы будет следуещее : каталог Arhiv, куда из хомяка пользователя  вручную копируются необходимые папки и файлы ( в том числе и скрытые с настройками ), Каталог System. куда из корня копируются необходимые каталоги/файлы c настройками, например /etc/бла-бла или /user/share/все_что_надо. Во время установки setup-ом вся эта радость занимает свои исходные места. Теперь все что ты делал вручную при резервировании делается  на полу-автомате ( сохранять надо самому, а обратно  ставится автоматом ). Так же доработал идею с сохранением списка пакетов и заодно сделал автонаименование iso-хи ( в имя прописывается, число и время создания ). Все это сейчас проверяю в разных режимах, перепишу встроенную справку, и надеюсь в воскресенье поместить сюда. Так что если есть еще какие полезные идеи то давай пока скрипт еще не закончен.
Как закончу скрипт, сделаю с ним очередной базовый патч,заодно и этот фм посмотрю ( как там с монтированием ? ).
В таком варианте Apt_On_CD, мы совместными усилиями переплюнули  ;)

Оффлайн swordrex

  • Участник
  • *
  • Сообщений: 403
    • Pínus
Tux Commander берет настройки монтирования из fstab, но можно задать и в ручную. при запуске через sudo или из-под root-а размонтировать локальный диск по кнопке не хочет -
Цитировать
mount point /mnt/sda9 is not below /media/
Вот описание (несколько старое :) ), а вот сайт. добавлю что сборка NotHAM - полностью русифицирована и версия новейшая.

есть еще muСommander - Portable version - нормально работает и сетью и вообще. посмотри может подойдет.

« Последнее редактирование: 26.02.2010 00:15:27 от swordrex »
there is no truth outside of our own awareness

kostyalamer

  • Гость
Все готово, новая версия скрипта здесь: http://kostyalamer.narod.ru/patch_creator/patch_creator.html
Скачиваем, распаковываем и собираем свои дистрибутивы ( патчи ).
Вставляю сюда краткую справку из самого скрипта:
----------------------------------------------------------------------------------------------------------------------------
                                 Patch_Create v0.2 beta

 Эта прога. предназначена для создания установочного патча
на минимальные сборки ALTLinux (или других сборок Альта) , который представляет
собой локальный репозитарий из скачанных пакетов и текстовой файл setup.
Так же есть и другие интересные возможности, которые описаны ниже.
Очень неплохо программа справляется с бэкапом небольшой системы.
В результате работы создается iso-образа диска с патчем, для последующей
записи на болванку
Примерный алгоритм действия такой:
1) На установленный минимал, ставите необходимые Вам пакеты
(собираете свой дистрибутив).Обязательно надо установить пакеты
            apt-repo-tools  и  genisoimage
2) Запускаете этот скрипт и копируете пакеты из кэша Apt-а.
3) Копируете все что необходимо для работы в новой системе
в папку /Repa_Local/local/Arhiv ( например скрытые системные каталоги ./ или
файлы, а можно и весь свой домашний каталог туда записать и заархивировать
таким способом практически всю систему ). Все это автоматически будет
скопировано обратно в новый домашний каталог при установке патча.
Копируете все необходимые папки с настройками ( например если необходимо
создать на разных компах одинаковых пользователей:
/etc/passwd, /etc/shadow, /etc/group ) в папку /Repa_Local/local/System.
Все содержимое этого каталога будет автоматически скопировано в корневой
каталог новой системы. ВНИМАНИЕ !!! Пользуйтесь этой возможностью осторожно
бездумное ковыряние системных каталогов под root-ом убивает пингвина :-) 
Вы можете из программы сохранять список пакетов в файл ( в его названии
автоматически прописываются дата и время создания ) Периодически это
полезно делать для сохранения особо удачных пакетных конфигураций системы.
4) Готовите iso для записи на диск. Готовое iso находится в Вашем домашнем
каталоге и в его названии автоматически прописывается дата и время создания.
5) Выходите из этой программы и записываете iso-образ на болванку.
Вы можете редактировать репу и добавлять пакеты из других источников
при помощи mc (2-ой пункт меню ) но при этом необходимо следить
за зависимостями пакетов вручную.
Устанавливается патч на новый минимал так:
Вставляется диск, после чего для первого CD/DVD-ROM-а (master, а не slave)
в терминале под обычным пользователем набираем:  mount /dev/hdc
потом либо набираем  там же  sh /media/cdrom/setup
либо в mc под пользователем входим в каталог /media/cdrom/ и там набираем
команду sh setup, как кому удобнее.
Для полного счастья в терминале под отмонтируем
диск umount /dev/hdc ( можно этого не делать, при перезагрузке
все будет отмонтировано автоматически )
В общем, счастливого хака, собирайте свои патчи и делитесь ими, или
бэкапьте свои системы этой программой и живите спокойно!

Все что скопируете в каталог /Repa_local/local/ и ниже будет записано в iso
( но только из папок Arhiv и System копируется автоматом при установке патча
смотри 3-ий пункт этой справки ),
т.е. можете делать папки с обоями, закатывать туда
разные хелпы , вместо моего Setup-а закатать собственный инсталятор, который
кроме установки пакетов будет править разные конфиги и т.д.
---------------------------------------------------------------------------------------------------------------------
Вот и сам скрипт для любителей Bash-а:

#!/bin/sh
# RPM_On_Disk_PathCreator v0.2 beta kostyalamer 02/2010
#------------------------------
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/null
mkdir ~/Repa_Local/local/.disk 2>/dev/null
mkdir ~/Repa_Local/local/Arhiv 2>/dev/null
mkdir ~/Repa_Local/local/System 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 -h
echo ""
}
#------------------------------
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
cd ~/Repa_Local/local/i586/RPMS.local/
ls -1 > ../pkg.list
echo "Alt Repa `date +%d/%m/%y_%H:%M`" >~/Repa_Local/local/.disk/info
echo '
<--- работает 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 2
fi;

}
#------------------------------
function rpm_to_repa ()
{
clear
echo -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

statistic
echo ""
echo -e "\033[1m ----- Введите нужную цифру ! ----- \033[0m"
echo ""
echo "1) Копировать rpm-ы из кеша Apt-а."
echo "2) Редактировать репу при помощи mc."
echo "3) Приготовить iso для записи диск."
echo "4) Удалить все пакеты из репы."
echo "5) Удалить пакеты из кеша Apt-а."
echo "6) Справка."
echo "7) Сохранить список пакетов репы в файл."
echo "8) Выход."
}

# ---------- Программа  ----------
clear
echo " Подождите, комп. думает ! "
proverka "apt-repo-tools"
 if [ $? -eq 1 ]; then
  exit
 fi
 create_dir;
 genbase;
 clear
statistic
echo ""
echo -e "\033[1m ----- Введите нужную цифру ! ----- \033[0m"

echo ""
select punkt in "Копировать rpm-ы из кеша Apt-а." "Редактировать репу при помощи mc." "Приготовить iso для записи диск." "Удалить все пакеты из репы." "Удалить пакеты из кеша Apt-а." "Справка." "Сохранить список пакетов репы в файл." "Выход."
do
case $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
;;
 "Приготовить iso для записи диск.")
   clear
   proverka "genisoimage"
   if [ $? -eq 0 ]; then
    echo "Записываем образ диска."
   
    echo "su -c 'apt-cdrom add ;mount /dev/hdc ;cp -v /media/cdrom/i586/RPMS.local/*.rpm /var/cache/apt/archives ;
    apt-get install /media/cdrom/i586/RPMS.local/*.rpm ; cp -r /media/cdrom/System/* /';
    cp -r /media/cdrom/Arhiv/* /media/cdrom/Arhiv/.[a-zA-Z0-9]* ~ " > $HOME/Repa_Local/local/setup
    #chmod 711 $HOME/Repa_Local/local/setup
   
    genisoimage -r -v -J -l -o ~/patch.iso ~/Repa_Local/local
    mv -f ~/patch.iso ~/patch`date +%d%m_20%y_%H%M`.iso
   
       clear
       echo " файл .iso для записи готов !!! ";
       sleep 2
     
   
   else echo -e "\033[1m Установите пакет genisoimage ! \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 "           Patch_Create v0.2 beta"
   echo ""
   echo '  Эта прога. предназначена для создания установочного патча
на минимальные сборки ALTLinux (или других сборок Альта) , который представляет
собой локальный репозитарий из скачанных пакетов и текстовой файл setup.
Так же есть и другие интересные возможности, которые описаны ниже.
Очень неплохо программа справляется с бэкапом небольшой системы.
В результате работы создается iso-образа диска с патчем, для последующей
записи на болванку
Примерный алгоритм действия такой:
1) На установленный минимал, ставите необходимые Вам пакеты
(собираете свой дистрибутив).Обязательно надо установить пакеты
            apt-repo-tools  и  genisoimage
2) Запускаете этот скрипт и копируете пакеты из кэша Apt-а.
3) Копируете все что необходимо для работы в новой системе
в папку /Repa_Local/local/Arhiv ( например скрытые системные каталоги ./ или
файлы, а можно и весь свой домашний каталог туда записать и заархивировать
таким способом практически всю систему ). Все это автоматически будет
скопировано обратно в новый домашний каталог при установке патча.
Копируете все необходимые папки с настройками ( например если необходимо
создать на разных компах одинаковых пользователей:
/etc/passwd, /etc/shadow, /etc/group ) в папку /Repa_Local/local/System.
Все содержимое этого каталога будет автоматически скопировано в корневой
каталог новой системы. ВНИМАНИЕ !!! Пользуйтесь этой возможностью осторожно
бездумное ковыряние системных каталогов под root-ом убивает пингвина :-) 
Вы можете из программы сохранять список пакетов в файл ( в его названии
автоматически прописываются дата и время создания ) Периодически это
полезно делать для сохранения особо удачных пакетных конфигураций системы.
4) Готовите iso для записи на диск. Готовое iso находится в Вашем домашнем
каталоге и в его названии автоматически прописывается дата и время создания.
5) Выходите из этой программы и записываете iso-образ на болванку.
Вы можете редактировать репу и добавлять пакеты из других источников
при помощи mc (2-ой пункт меню ) но при этом необходимо следить
за зависимостями пакетов вручную.
Устанавливается патч на новый минимал так:
Вставляется диск, после чего для первого CD/DVD-ROM-а (master, а не slave)
в терминале под обычным пользователем набираем:  mount /dev/hdc
потом либо набираем  там же  sh /media/cdrom/setup
либо в mc под пользователем входим в каталог /media/cdrom/ и там набираем
команду sh setup, как кому удобнее.
Для полного счастья в терминале под отмонтируем
диск umount /dev/hdc ( можно этого не делать, при перезагрузке
все будет отмонтировано автоматически )
В общем, счастливого хака, собирайте свои патчи и делитесь ими, или
бэкапьте свои системы этой программой и живите спокойно!

Все что скопируете в каталог /Repa_local/local/ и ниже будет записано в iso
( но только из папок Arhiv и System копируется автоматом при установке патча
смотри 3-ий пункт этой справки ),
т.е. можете делать папки с обоями, закатывать туда
разные хелпы , вместо моего Setup-а закатать собственный инсталятор, который
кроме установки пакетов будет править разные конфиги и т.д.
----------------------------------------------------------------------------
О всех замеченных багах, а так же пожеланиях по работе программы
просьба писать в раздел разработка форума AltLinux
или в гостевую книгу моего сайта http://kostyalamer.narod.ru .
Благодарности: автору genbasedir - а , NotHAM-у за его минимальные сборки
Drool-у за его help о том как создавать локальную репу, swordrex-у за его
интересные идеи, которые я использовал в этой версии скрипта.

   Лицензия: ДЧХ - делай что хочешь.
   P.S. Spectrum forever !              '
 
   pause
   menu
;;
 "Сохранить список пакетов репы в файл.")
   cd ~/Repa_Local/local/i586/RPMS.local/
   ls -1 > ~/Repa_Local/pkg.list
   mv -f ~/Repa_Local/pkg.list ~/Repa_Local/pkg`date +%d%m_20%y_%H%M`.list
   clear
   echo " Список пакетов сохранен !!! "
   sleep 2
   menu
   
;;
 "Выход.")
   break
;;
 *)
  echo " Ошибка выбора !"
  sleep 3
  menu
;;
esac
done

Используя новые возможности скрипта я сразу (для проверки) накатил на minimal  antico с кучей иконок от старой системы и настроенный bmp. Очень рекомендую пользоваться при установке патчей sh setup и забыть про установку патчей через Synaptic.
  В общем, собираем свои патчи, обсуждаем их состав, делимся самыми удачными. Теперь каждый , более-менее грамотный пользователь Альта может почувствовать себя разработчиком  ;)
Счастливого хака ( Р.Столмен)!!!
PS Вопросы по скрипту будем обсуждать в этой теме, а где обсуждать патчи надо определиться .


kostyalamer

  • Гость
Tux Commander берет настройки монтирования из fstab, но можно задать и в ручную. при запуске через sudo или из-под root-а размонтировать локальный диск по кнопке не хочет -
Цитировать
mount point /mnt/sda9 is not below /media/
Вот описание (несколько старое :) ), а вот сайт. добавлю что сборка NotHAM - полностью русифицирована и версия новейшая.

есть еще muСommander - Portable version - нормально работает и сетью и вообще. посмотри может подойдет.

Поставил Tux Commander - то что нужно и  решает проблемы с монтированием CD/DVD.
Браузер Chromium из него и пишу.
Редактор medit
и само собой antico.
Думаю для базового патча достаточно ?
Ссылка тут: http://narod.ru/disk/18318183000/patch2702_2010_2335.iso.html
скорее всего это последний базовый патч,
теперь можно и собственно сборкой заняться  ;)
« Последнее редактирование: 27.02.2010 23:43:45 от kostyalamer »

NotHAM

  • Гость
To kostyalamer, в ответ на запрос.
память для минималки:
...$ free
             total       used       free     shared    buffers     cached
Mem:       1019040     187896     831144          0      13648     133252
-/+ buffers/cache:      40996     978044

Это  сразу после установки, а далее зависит от того что запущено.
Сколько памяти нужно инсталлеру - не знаю (штатный Альтовский),
никогда не заморачивался этим вопросом.

Ещё можете попробовать в антико редактор juffed - лежит там-же где и
tuxcmd (рядом), прошлым летом собирал как раз для антико
(он маленький лёгкий и на Qt), вроде нормально работал.
Если будет нужно - обновлю.

kostyalamer

  • Гость

Оффлайн Roader

  • Участник
  • *
  • Сообщений: 14
Tux Commander берет настройки монтирования из fstab, но можно задать и в ручную. при запуске через sudo или из-под root-а размонтировать локальный диск по кнопке не хочет -
Цитировать
mount point /mnt/sda9 is not below /media/
Вот описание (несколько старое :) ), а вот сайт. добавлю что сборка NotHAM - полностью русифицирована и версия новейшая.

есть еще muСommander - Portable version - нормально работает и сетью и вообще. посмотри может подойдет.

Поставил Tux Commander - то что нужно и  решает проблемы с монтированием CD/DVD.
Браузер Chromium из него и пишу.
Редактор medit
и само собой antico.
Думаю для базового патча достаточно ?
Ссылка тут: http://narod.ru/disk/18318183000/patch2702_2010_2335.iso.html
скорее всего это последний базовый патч,
теперь можно и собственно сборкой заняться  ;)



Спасибо за работу - действительно хорошая замена AptOnCD в Debiane. Правда на сборке от Diora c KDE. при запуске из меню Tux  вываливается. Некритично, т.к. есть krusader. Просто к  вопросу о выборе фм. А в остальном...Я думаю что многие избавятся от больших головных болей. Еще раз thanks/

kostyalamer

  • Гость
Всегда пожалуйста. С фм-ом я сам еще не определился, но здесь выбор то есть у каждого. Можно взять сам скрипт, накатить в систему apt-repo-tools и genisoimage и дальше строить все что душе угодно  ;)

kostyalamer

  • Гость
Друзья, нужна ли эта прога в виде rpm-а ? Так как основной двигатель прогресса swordrex куда то пропал, не понятно нужна такая софтина кому-нибудь еще или нет. Если нужна пакетик я соберу,
 но тратить время впустую совсем не хочется  ;)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Я вам советую собрать. Если она будет в виде готового rpm, пересобрать её будет не так сложно. Если-же она будет лежать просто в виде "россыпи", то через некоторое время, даже вам будет сложно вспомнить как её настроить.

kostyalamer

  • Гость
Тогда соберу, заодно писать спеки немного потренируюсь  :)

Оффлайн Roader

  • Участник
  • *
  • Сообщений: 14
Друзья, нужна ли эта прога в виде rpm-а ? Так как основной двигатель прогресса swordrex куда то пропал, не понятно нужна такая софтина кому-нибудь еще или нет. Если нужна пакетик я соберу,
 но тратить время впустую совсем не хочется  ;)

Установил и пользуюсь. Устраивает полностью. Поэтому и вопросов нет. Ну а насчет rpm - идея, имхо, неплохая.

kostyalamer

  • Гость
Ну вот и обещанные мной rpm-ы, немного задержался, так как нашел один маленький баг в скрипте и долго думал, как от него избавиться  ;)

RPM          : http://kostyalamer.narod.ru/patch_creator/patchcr-1.0-alt1.noarch.rpm
SRC.RPM   : http://kostyalamer.narod.ru/patch_creator/patchcr-1.0-alt1.src.rpm
« Последнее редактирование: 14.04.2010 21:39:51 от kostyalamer »

Оффлайн Balbes

  • alt linux team
  • ***
  • Сообщений: 915
Будем попробовать.  ;)