Ты можешь сделать spec файл для собрки rpm пакета для федоры ???
Запихивать в rpm или сочинять spec нет смысла, ибо сборки бинарные и, скорее всего, со статически вкомпиленными библиотеками (за исключением QT3). протсо все это запихивается по адресам.
Достаточно сделать слдедующее:
- Код: Выделить всё
yum install qt3 postgresql-server postgresql.
Далее выдираем настройки Postgres и засыпаем их в отдельный скрипт:
- Код: Выделить всё
$ cat dnc_kassa/dnc_kassa/scripts/setup_dnc_postgresql_fedora
#!/bin/bash
# configuring Postgresql ....
Ну, думаю, мы это сделаем сами... ибо в противном случае каждый раз настраиваь нет смысла.- Код: Выделить всё
.......#echo 'Настраиваем Postgres...' >> /tmp/dnc_setup.log
# echo "15"
# ln -s /etc/rc.d/init.d/postgresql /etc/rc.d/rc0.d/K15postgresql
#ln -s /etc/rc.d/init.d/postgresql /etc/rc.d/rc1.d/K15postgresql
#ln -s /etc/rc.d/init.d/postgresql /etc/rc.d/rc2.d/K15postgresql
#ln -s /etc/rc.d/init.d/postgresql /etc/rc.d/rc3.d/S52postgresql
#ln -s /etc/rc.d/init.d/postgresql /etc/rc.d/rc4.d/S52postgresql
#ln -s /etc/rc.d/init.d/postgresql /etc/rc.d/rc5.d/S52postgresql
# ln -s /etc/rc.d/init.d/postgresql /etc/rc.d/rc6.d/K15postgresql
#starting Postgresql#
# echo 'Запускаем PostgreSQL...' >> /tmp/dnc_setup.log
# echo "20"
#/etc/rc.d/init.d/postgresql start
#creating roles and databases
echo 'Создаём пользователей и базы данных...' >> /tmp/dnc_setup.log
echo "85"
на sudo забиваем, ибо в федоре это не "TRUE"- Код: Выделить всё
#sudo -u postgres
createuser -s kassir
#sudo -u postgres
createdb LinCash -E UTF8
#sudo -u postgres
createdb Transaction -E UTF8
#sudo -u postgres
psql LinCash < ../db/LinCash/create_tables.sql
#sudo -u postgres
psql LinCash < ../db/LinCash/InsertParam.sql
#sudo -u postgres
psql Transaction < ../db/Transaction/CreateTable.sql
#sudo -u postgres
psql Transaction < ../db/Transaction/inserts_into_trbase.sql
chkconfig -add 35 postgresql
service postgresql restart
#SIG! psql должен быть той же версии, что и сервер, то есть psql версии 8.4 можно применять к серверу 8.3, но не наоборот. Ну, и в PATH должно быть прописано, дабы не писать полный путь до psql.#рекомендую сделать тут же psql_dump и даелть его регулярно, настолько реглярно, чтобы быть уверенным в непроивречивости данных. Дальше средствами операционной системы рекомендую делать мультиверсионый инкрементный бекап.далее запускаем скрипт установки собсно касовой прраммы:
( я убрал оттуда прописывание стартовых настроек из /etc/rc.sysinit и переместил их в rc.local.local, чтобы сделать эти настройки уже после того, как запустится все то, что хранится в rc.local.)
Я закоментировал все упоминания о самбе, ибо этот сплойт нам в сситеме не нужен. Юникс онли = ."Тру".
Для красивости надо наладить синтаксический разбор rc.sysinit и rc.local, rc.local.local, дабы исключить необдуманное добавление туда строк из скрипта. Скорости запуска это не прибавит. Мне после пятикратного запуска базового пришлось выпиливать напильником оттуда лишние строки.
Надо будет наладить разбор настроек, зиписанных в /etc/ и диалог с администратором, чтобы случайно не перезаписать свой же тюнинг.
Но пока оставляем так как есть.
Скрипт модифицирован для запуска из той же дирректории, что
- Код: Выделить всё
$ cat dnc_kassa/dnc_kassa/scripts/setup_dnc_fedora
#!/bin/bash -i
#set -x -n
CHPST=`uname -m`
echo $CHPST
#cd /media/cdrom/dnc_kassa
case "$CHPST" in
x86_64) BIN='../bin_64'
LIBS='../libs_64'
LDES='/usr/lib64'
;;
*) BIN='../bin'
LIBS='../libs'
LDES='/usr/lib'
;;
esac
echo "Начинаем установку" > /tmp/dnc_setup.log
echo "5"
# rm -f /etc/sysconfig/autologin Это лишняя строчка.
# echo 'AUTOLOGIN=yes' > /etc/sysconfig/autologin
# echo 'USER='$USER >> /etc/sysconfig/autologin
# echo 'EXEC=/usr/bin/startx.autologin' >> /etc/sysconfig/autologin
# chown root.root /etc/sysconfig/autologin
# chmod 644 /etc/sysconfig/autologin
# // у нас таки-федора!!! Никаких аффталогинов!!!
# rm -f /etc/sysconfig/speedboot Нафик не надо. И так шустро стартует.
# echo 'SPEEDBOOT=no' > /etc/sysconfig/speedboot
# chown root.root /etc/sysconfig/speedboot
# chmod 644 /etc/sysconfig/speedboot
# installing configuration files
# echo 'Копируем конфигурационные файлы...' >> ~/tmp/dnc_setup.log
# echo "25"
mkdir /etc/dancy
chmod 777 /etc/dancy
cp -v ../etc/dancy/* /etc/dancy
chmod 666 /etc/dancy/*
mkdir /etc/hwsrv
chmod 777 /etc/hwsrv
cp -v ../etc/hwsrv/* /etc/hwsrv
chmod 666 /etc/hwsrv/*
mkdir /tmp/dancy
chmod 777 /tmp/dancy
mkdir /tmp/dancy/upload_log
chmod 777 /tmp/dancy/upload_log
mkdir /tmp/dancy/unload_log
chmod 777 /tmp/dancy/unload_log
mkdir /tmp/dancy/postgres_log
chmod 777 /tmp/dancy/postgres_log
mkdir /tmp/dancy/conf
chmod 777 /tmp/dancy/conf
mkdir /usr/share/dnc
mkdir /usr/share/dnc/movie
chmod 777 /usr/share/dnc/movie
cp -v ../movie/* /usr/share/dnc/movie
# installing binary programs and scripts
#echo 'Устанавливаем программы...' >> /tmp/dnc_setup.log
#echo "30"
cp -v $BIN/Display /usr/bin
chmod 755 /usr/bin/Display
cp -v $BIN/RMK /usr/bin
chmod 755 /usr/bin/RMK
cp -v $BIN/SetupLoadUnload /usr/bin
chmod 755 /usr/bin/SetupLoadUnload
cp -v $BIN/WareProject /usr/bin
chmod 755 /usr/bin/WareProject
cp -v $BIN/AccessRights /usr/bin
chmod 755 /usr/bin/AccessRights
cp -v $BIN/confGUI /usr/bin
chmod 755 /usr/bin/confGUI
cp -v $BIN/daemon_unload /usr/bin
chmod 755 /usr/bin/daemon_unload
cp -v $BIN/reshka /usr/bin
chmod 755 /usr/bin/reshka
cp -v $BIN/upload /usr/bin
chmod 755 /usr/bin/upload
cp -v $BIN/run_reshka /usr/bin
chmod 755 /usr/bin/run_reshka
cp -v $BIN/FindHardPath /usr/bin
chmod 755 /usr/bin/FindHardPath
cp -v $BIN/dnc_update /usr/bin
chmod 755 /usr/bin/dnc_update
cp -v $BIN/update_from_cd /usr/bin
chmod 755 /usr/bin/update_from_cd
# installing share loaded libraries
echo 'Устанавливаем библиотеки...' >> /tmp/dnc_setup.log
echo "50"
cp -v $LIBS/libdncaddonfunc.so $LDES
chmod 755 $LDES/libdncaddonfunc.so
cp -v $LIBS/libdncaddwarecontroller.so $LDES
chmod 755 $LDES/libdncaddwarecontroller.so
cp -v $LIBS/libdncauthform.so $LDES
chmod 755 $LDES/libdncauthform.so
cp -v $LIBS/libdncauthobj.so $LDES
chmod 755 $LDES/libdncauthobj.so
cp -v $LIBS/libdncblocktimer.so $LDES
chmod 755 $LDES/libdncblocktimer.so
cp -v $LIBS/libdnccdspview.so $LDES
chmod 755 $LDES/libdnccdspview.so
cp -v $LIBS/libdncdedicationcombobox.so $LDES
chmod 755 $LDES/libdncdedicationcombobox.so
cp -v $LIBS/libdncdialognewscheme.so $LDES
chmod 755 $LDES/libdncdialognewscheme.so
cp -v $LIBS/libdncdkbforrussymbol.so $LDES
chmod 755 $LDES/libdncdkbforrussymbol.so
cp -v $LIBS/libdncdkbinput.so $LDES
chmod 755 $LDES/libdncdkbinput.so
cp -v $LIBS/libdncdllog.so $LDES
chmod 755 $LDES/libdncdllog.so
cp -v $LIBS/libdncencoding.so $LDES
chmod 755 $LDES/libdncencoding.so
cp -v $LIBS/libdnchwsigcontroller.so $LDES
chmod 755 $LDES/libdnchwsigcontroller.so
cp -v $LIBS/libdncmessages.so $LDES
chmod 755 $LDES/libdncmessages.so
cp -v $LIBS/libdncinserttransaction.so $LDES
chmod 755 $LDES/libdncinserttransaction.so
cp -v $LIBS/libdncnewschemeperec.so $LDES
chmod 755 $LDES/libdncnewschemeperec.so
cp -v $LIBS/libdncpgsql.so $LDES
chmod 755 $LDES/libdncpgsql.so
cp -v $LIBS/libdncreadconf.so $LDES
chmod 755 $LDES/libdncreadconf.so
cp -v $LIBS/libdncreceipt.so $LDES
chmod 755 $LDES/libdncreceipt.so
cp -v $LIBS/libdncsetupparam.so $LDES
chmod 755 $LDES/libdncsetupparam.so
cp -v $LIBS/libdncstatestore.so $LDES
chmod 755 $LDES/libdncstatestore.so
cp -v $LIBS/libdncstriketabitm.so $LDES
chmod 755 $LDES/libdncstriketabitm.so
cp -v $LIBS/libhwsrv.so $LDES
chmod 755 $LDES/libhwsrv.so
cp -v $LIBS/libdnckkmregistration.so $LDES
chmod 755 $LDES/libdnckkmregistration.so
cp -v $LIBS/libdnctimedate.so $LDES
chmod 755 $LDES/libdnctimedate.so
cp -v $LIBS/libdncservice.so $LDES
chmod 755 $LDES/libdncservice.so
cp -v $LIBS/libdncsetup.so $LDES
chmod 755 $LDES/libdncsetup.so
# making symlinks
echo "Создаем symlinks..." >> /tmp/dnc_setup.log
echo "70"
link $LDES/libpq.so.5 $LDES/libpq.so.4
ln -s /etc/rc.d/rc.local /etc/rc.d/rc5.d/S53local
echo 'Устанавливаем права доступа к устройствам...' >> /tmp/dnc_setup.log
echo "80"
#здесь надо органиовать проверку наличия (парсинг) секции модификации rc.local.local, сделанной программой установки.
echo '______________________modified by dnc_setup script______________________ > /etc/rc.d/rc.local.locall
echo 'chmod 644 `FindHardPath`' >> /etc/rc.d/rc.local.locall
echo 'chmod 666 /dev/ttyS*' >> /etc/rc.d/rc.local.local
echo '/usr/bin/dnc_update' >> /etc/rc.d/rc.local.local
echo '/usr/bin/upload > /tmp/upload_daemon.out' >> /etc/rc.d/rc.local.local
echo '/usr/bin/daemon_unload > /tmp/unload_daemon.out' >> /etc/rc.d/rc.local.local
echo '/usr/bin/Display > /tmp/display_daemon.out' >> /etc/rc.d/rc.local.local
echo "sed -i 's/smbfs[ ]/cifs iocharset=utf8,/g' /etc/fstab" >> /etc/rc.d/rc.local.local
echo 'find /home -iname .Xauth* -exec rm -f {} \;' >> /etc/rc.d/rc.local.local
sed -i '\"action \"Setting default font ($SYSFONT): \" /sbin/setsysfont"a\if [ -x /bin/setfont ]; then\n/bin/setfont $SYSFONT\nfi' "/etc/rc.d/rc.local.local
echo '______________________end-section modified by dnc_setup script______________________ > /etc/rc.d/rc.local.locall
echo 'Последние настройки...' >> /tmp/dnc_setup.log
echo "90"
# configuring samba server
mkdir /var/Exchange
chmod 777 /var/Exchange
# нафик самбу!!! - мы ведь в линуксе!!!
# cp /etc/samba/smb.conf /etc/samba/smb.conf.dnc
# cp ../addon_conf/smb.conf /etc/samba/smb.conf
# configuring icewm Не айс. Нам пофигу какой клиент. Хоть во фреймбуфере.
# mkdir /etc/icewm
# chmod 777 /etc/icewm
# cp -v ../addon_conf/icewm/* /etc/icewm
# chmod 666 /etc/icewm/*
# chmod 777 /etc/icewm/startup
# configuring Qt
cp -v ../addon_conf/qtrc /etc/qtrc
# making update system for DNC project
mkdir /dnc_update
mkdir /dnc_update/bin
mkdir /dnc_update/libs
mkdir /dnc_update/libs64
chmod 777 /dnc_update
chmod 777 /dnc_update/bin
chmod 777 /dnc_update/libs
chmod 777 /dnc_update/libs64
# making archdb system for DNC project
mkdir /dnc_arch
chmod 777 /dnc_arch
# making dnc_menu
#cd /boot
#mkdir /tmp/dnc_menu
#cp ../gfxmenu /tmp/dnc_menu ; cd /tmp/dnc_menu
#cpio -idmv <gfxmenu
#rm -f ../gfxmenu
#ls > 111
#sed -i '1d' ../111
#rm -f ../back.jpg
##
#cp /media/cdrom/i586/isolinux/back.jpg /tmp/dnc_menu/
#cpio -of < 111 > dnc_menu
#cp ../dnc_menu /boot/
#cd /boot/grub
#sed -i 's/\(.*\)gfxmenu/\1dnc_menu/' "../menu.lst"
#rm -fr /tmp/dnc_menu/
echo "100"
echo "Установка завершена" >> /tmp/dnc_setup.log
запускаем $/usr/bin/reshka
работаем.