Страница 1 из 1
Скрипт обновления MSE
Добавлено: 24.03.2007 10:23:45
Alexander
Вот написал скрипт. Когда МСЕ нет - он его скачивает,
когда есть - обновляет, затем компилирует и стрипает.
Также создаёт симлинк. Предложения по усовершенствованию
с радостью принимаются. Первые воросы такие: нужно ли что то
вроде su root или всё вручную ? Не нужно ли при создании директории
специально задавать какие либо права. Я к ужасу многих до сих пор
работаю под рутом и по этому проблем с правами нет
Скрипт называется mseideupdate
Код: Выделить всё
#! /bin/bash
mseroot=/usr/local/lib/mseide
ln -s $mseroot/apps/ide/mseide /usr/local/bin/mseide
mkdir -p -v $mseroot
if [ "$?" != "0" ]
then
echo 'Create MSE root directory FAILED :('
exit
fi
svn co https://mseide-msegui.svn.sourceforge.net/svnroot/mseide-msegui/trunk/ $mseroot
if [ "$?" != "0" ]
then
echo 'Update from SVN FAILED :('
exit
else
echo 'Update from SVN OK :)'
fpc -Fu$mseroot/lib/common/* -Fu$mseroot/lib/common/kernel/i386-linux -Xs $mseroot/apps/ide/mseide.pas
if [ "$?" != "0" ]
then
echo 'Compiling error - update FAILED :('
exit
fi
fi
echo 'All OK :)'
Добавлено: 25.03.2007 00:19:54
debi12345
Alexander писал(а):Вот написал скрипт. Когда МСЕ нет - он его скачивает,
когда есть - обновляет, затем компилирует и стрипает.
Также создаёт симлинк. Предложения по усовершенствованию
с радостью принимаются. Первые воросы такие: нужно ли что то
вроде su root или всё вручную ? Не нужно ли при создании директории
специально задавать какие либо права. Я к ужасу многих до сих пор
работаю под рутом и по этому проблем с правами нет

Спасибо ! После вылизывания можно будет засунуть с подкаталог "/tools/*".
"su" - не надо. Разработка - именно тот случай, когда нужно отказываться от рута. Исключение - "kernel". Потому что MSE* программы могут собираться (build - значит и перекомпилируя MSEgui ) любым пользователем. То есть каталогом MSE* должна владеть вся ГРУППА разработчиков, и также эта группа должна "смогти" записывать в его подкаталоги.
"svn co {from where} {what}" - это первичное скачивание ВСЕГО дерева исходников. Если таковое уже разок сделано ( отработало до конца ) - то далее нужно вызывать "svn update" из верхнего каталога этого дерева.
Добавлено: 25.03.2007 17:42:40
Alexander
Вторая попытка. Если надо компилировать то может не в /lib/ а в /src/ ?
И группу тоже - src. Только не уверен что без рута будет возможно сменить
группу.
Касаемо ключа со - у меня он прекрасно забрал вначале, а теперь
нормально обновляет. Не знаю уж что это за check out такой.
Код: Выделить всё
#! /bin/bash
mseroot=/usr/src/mseide
ln -s -f -n $mseroot/apps/ide/mseide /usr/local/bin/mseide
mkdir -p -v -m 02775 $mseroot
if [ "$?" != "0" ]
then
echo 'Create MSE root directory FAILED :('
exit
fi
chgrp src $mseroot
if [ "$?" != "0" ]
then
echo 'Change MSE root directory group FAILED :('
exit
fi
svn co https://mseide-msegui.svn.sourceforge.net/svnroot/mseide-msegui/trunk/ $mseroot
if [ "$?" != "0" ]
then
echo 'Update from SVN FAILED :('
exit
else
echo 'Update from SVN OK :)'
fpc -Fu$mseroot/lib/common/* -Fu$mseroot/lib/common/kernel/i386-linux -Xs $mseroot/apps/ide/mseide.pas
if [ "$?" != "0" ]
then
echo 'Compiling error - update FAILED :('
exit
fi
fi
echo 'All OK :)'
Добавлено: 25.03.2007 22:27:12
Alexander
debi12345 писал(а): то далее нужно вызывать "svn update" из верхнего каталога этого дерева.
То есть чем со хуже update ?
Добавлено: 26.03.2007 15:00:28
Attid
То есть чем со хуже update ?
наверно ничем =) просто "svn up" короче чем полный путь
а вскипте это все равно.
по поводу прав: такие вот программы вроде лазаря или mse я ставлю в свою директорию и правами не заморачиваюсь.поэтому симлинки это лишнее, а расположение в разных дистрибутивах по разному.
это тогда надо в svn\на сайт наработать скрипты типа
mseideupdate_ubuntu,mseideupdate_arh . . . . .
Добавлено: 27.03.2007 14:35:52
Alexander
Снова модифицировал скрипт. Убрал -Xs поставил просто strip
не знаю почему так не сработал. Добавил ключ -B его отсутствие
было упущением. Интересно будет если кто нибудь попробует его
из под пользователя.
Код: Выделить всё
#! /bin/bash
mseroot=/usr/src/mseide
ln -s -f -n $mseroot/apps/ide/mseide /usr/local/bin/mseide
mkdir -p -v -m 02775 $mseroot
if [ "$?" != "0" ]
then
echo 'Create MSE root directory FAILED :('
exit
fi
chgrp src $mseroot
if [ "$?" != "0" ]
then
echo 'Change MSE root directory group FAILED :('
exit
fi
svn co https://mseide-msegui.svn.sourceforge.net/svnroot/mseide-msegui/trunk/ $mseroot
if [ "$?" != "0" ]
then
echo 'Update from SVN FAILED :('
exit
else
echo 'Update from SVN OK :)'
fpc -Fu$mseroot/lib/common/* -Fu$mseroot/lib/common/kernel/i386-linux -B $mseroot/apps/ide/mseide.pas
if [ "$?" != "0" ]
then
echo 'Compiling error - update FAILED :('
exit
fi
strip $mseroot/apps/ide/mseide
fi
echo 'All OK :)'
Добавлено: 27.03.2007 16:37:52
Attid
Alexander вот что будет =)
Код: Выделить всё
./update2.sh
ln: создание символьной ссылки с `/usr/local/bin/mseide' на `/at/msegui/apps/ide/mseide': Permission denied
chgrp: изменение группы для `/at/msegui': Operation not permitted
Change MSE root directory group FAILED :(
так что я все ln\mkdir\chgrp
вырезал и все работает =)
теперь по поводу развития:
повторюсь очень не хватает нормального автодополнения и справки =) та подсказка что есть например совершенно не работает с "canvas"
НОВОЕ: заметил что очень не хватает отмены по ctrl+z и сохранения по ctrl+S
список форм по ctrl+S радует, но огорчает что только открытых а не в проэкте.
еще былобы замечательно иметь Procedure List
пример эксперта
Добавлено: 27.03.2007 17:31:40
Alexander
Я понимаю скепсис насчёт размещения МСЕ - на своей системе
мы все руты. Но во первых МСЕ может применяться не только как
среда, но и как библиотека для программ с открытыми исходниками,
которые её используют. Во вторых неплохо и защитить МСЕ
от пользователя, лишённого прав на разработку.
Ведь Линукс многопользовательская система.
А вот где разместить, какими правами наделить и
к какой группе отнести - вопрос.
Добавлено: 27.03.2007 18:08:20
Attid
об этом будут заботится сборщики пакетов под свои дистры.
данный скрипт вполне хорошь, можно смело его держать в FAQ или даже на сайте mSE с название install.sh =) так как он полностью избавляет пользователя думать что и где будет находится и как потом обновлять.
только вот
Код: Выделить всё
ln -s -f -n $mseroot/apps/ide/mseide /usr/local/bin/mseide
перед компиляцией не хорошо, его может еще не быть =)
Добавлено: 27.03.2007 18:29:55
Alexander
Да не, нормально. Это ж симлинк.
Добавлено: 16.05.2007 01:09:35
Attid
на венду еще скриптик сделайте, я тему приклею. или в фак вынесу.