+7 499 990-10-21

Денси касса на федоре и других..

Re: Денси касса на федоре и других..

Сообщение Alexander » 30 ноя 2009, 17:57

Да, надо озадачить вебмастера 8-)
Alexander
 
Постов: 4958
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: Денси касса на федоре и других..

Сообщение BigAndy » 20 дек 2009, 20:24

Немного допилил скрипты для Кассы 1.2.4
Прописал suid'ные биты для запуска кассы из-под простого пользователя. Возможно скрипты модифицировать таким образом, чтобы касса запускалась из-под специально созданного для этого пользователя.

Также можно запускать программу без "иксов", а вернее без DE, а также во фреймбуфере. При этом становится возможным держать запущенные в screen сессии с денси:кассами, а на рабочих местах держать лишь бездисковые терминалы, пробросив соответсвующие порты для оборудования через ssh. Достоинство данного решения - возможность администрирования одной машины вместо нескольких. Кроме того по расчетам достаточно будет канала связи в 2400 бод для работы с денси:кассой

Скрипт:
Код: Выделить всё
#!/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                             
  chmod u+s /usr/bin/Display                               
cp -v $BIN/RMK /usr/bin                                 
chmod 755 /usr/bin/RMK                                 
  chmod u+s  /usr/bin/RMK
cp -v $BIN/SetupLoadUnload /usr/bin                     
chmod 755 /usr/bin/SetupLoadUnload                     
  chmod u+s /usr/bin/SetupLoadUnload
cp -v $BIN/WareProject /usr/bin                         
chmod 755 /usr/bin/WareProject                         
  chmod u+s  /usr/bin/WareProject
cp -v $BIN/AccessRights /usr/bin                       
chmod 755 /usr/bin/AccessRights                         
  chmod u+s /usr/bin/AccessRights
cp -v $BIN/confGUI /usr/bin                             
chmod 755 /usr/bin/confGUI                             
  chmod u+s /usr/bin/confGUI
cp -v $BIN/daemon_unload /usr/bin                       
chmod 755 /usr/bin/daemon_unload                       
  chmod u+s /usr/bin/daemon_unloa
cp -v $BIN/reshka /usr/bin                             
chmod 755 /usr/bin/reshka                               
  chmod u+s /usr/bin/reshka
cp -v $BIN/upload /usr/bin                             
chmod 755 /usr/bin/upload                               
  chmod u+s /usr/bin/upload
cp -v $BIN/run_reshka /usr/bin                         
chmod 755 /usr/bin/run_reshka                           
  chmod u+s  /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                           
  chmod u+s  /usr/bin/dnc_update
cp -v $BIN/update_from_cd /usr/bin                     
chmod 755 /usr/bin/update_from_cd                       
  chmod u+s /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/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
cp -v $LIBS/libdncprintformlib.so $LDES
chmod 755 $LDES/libdncprintformlib.so
cp -v $LIBS/libdncinpas.so $LDES
chmod 755 $LDES/libdncinpas.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
ln -s /etc/rc.d/rc.local /etc/rc.d/rc3.d/S53local
echo 'Устанавливаем права доступа к устройствам...' >> /tmp/dnc_setup.log
echo "80"                                     
#здесь надо органиовать проверку наличия (парсинг) секции модификации rc.local.local, сделанной программой установки.
touch /etc/rc.d/rc.local.local
chmod +x /etc/rc.d/rc.local.local
echo '______________________modified by dnc_setup script______________________ '>> /etc/rc.d/rc.local.local                                               
echo 'chmod 644 `FindHardPath`' >> /etc/rc.d/rc.local.local                   
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.local


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
                                                                               
BigAndy
 
Постов: 461
Зарегистрирован: 29 ноя 2009, 17:11

Re: Денси касса на федоре и других..

Сообщение BigAndy » 21 дек 2009, 17:57

Выяснлась маленькая досадная особенность: При запуске без "иксов" не всегда можно выйти из Денси:касса и подчиненных форм, поскольку не на всех страницах есть Кнопка "Отменить" "cancel" (кстати, в разных формах у них разные названия) и "ВЫйти" из денси:кассы.
Кнопку "Выйти" хотелось бы иметь доступной только для администратора.


PS Кстати, ведь администратор может запустить другой экземпляр Денси:касса в другом терминале. Как в этом случае будет работать суперпозиция экземпляра с пользователем кассиром и экземпляра с пользователем-администратором?
BigAndy
 
Постов: 461
Зарегистрирован: 29 ноя 2009, 17:11

Re: Денси касса на федоре и других..

Сообщение BigAndy » 26 дек 2009, 03:29

Установив Postgresql из разных сборок (ванильных, бубнтовых , мандриво-и бубунтоообразныых) попробовал модифицировать скрипт иницииации БД, чтобы работало не только на сборках федоры.
ЗАпуск, ессно надо проводить от рута.
Запущен или нет postgresql не имеет значения, но лучше отсоединить сеансы пользователей, поскольку в скрипте сервер зачем-то перезапускается. Не значю тайных мыслей создателей -зачем, но все -таки сохранил эту строчку

Код: Выделить всё
#!/bin/bash
.......#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 -u postgres
su postgres -c "createuser -s kassir"
#sudo -u postgres
su postgres -c "createdb LinCash -E UTF8"
#sudo -u postgres
su postgres -c "createdb Transaction -E UTF8"
#sudo -u postgres
su postgres -c psql "LinCash < ../db/LinCash/create_tables.sql"
#sudo -u postgres
su postgres -c "psql LinCash < ../db/LinCash/InsertParam.sql"
#sudo -u postgres
su postgres -c "psql Transaction < ../db/Transaction/CreateTable.sql"
#sudo -u postgres
su postgres -c "psql Transaction < ../db/Transaction/inserts_into_trbase.sql"
chkconfig postgresql on
service postgresql restart

Если запускать не из-под рута, su запросит пароль пользователя postgres. Вы его можете установить самостоятельно, и даже отмапить системного пользователй postgres на postgres'овского postgres в hba.conf
BigAndy
 
Постов: 461
Зарегистрирован: 29 ноя 2009, 17:11

Пред.

Вернуться в Ваши предложения

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 3



Кто сейчас на конференции

Сейчас посетителей на конференции: 4, из них зарегистрированных: 1, скрытых: 0 и гостей: 3 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (170) здесь было 16 май 2020, 01:50

Сейчас этот форум просматривают: Bing [Bot] и гости: 3