Подскажите что неправильно делаю:
вот например программу я запускаю через bash скрипт. Если через терминал захожу в папку где он лежит, вбиваю ./maya --то все ок запускается. Но вот решил я создать себе пункт меню, создал его и в поле "команда" указал путь к скрипту. Теперь при запуске в тасбаре сначала появляется это окно, потом пропадает и все. Я гимп тоже запускаю через скрипт, так же к нему путь указан - и все ок работает.
И еще вопрос возник: вот скачал я например какой-нибудь deb-пакет, установил - а в меню егон не появилось. Через терминал нормально можно запустить, а вот хотелось бы чтоб и там был. Вообще почему так происходит? Если через репозиторий ее же ставил, то в меню все пункты нормально прописались.
Приведите пожалуйста текст скрипта, которым Вы программу запускаете.
#!/bin/bash
source ./setup_maya.sh
${MAYA_EXEC} $*
А права на исполнение прописаны?
Ну вообще я из консоли без sudo просто запускаю. Если тут не все так просто подскажите.
Народ, я знаю вы это можете! :) Погите создать пункт меню или хотя бы иконку на рабочем столе.
А если без "промежуточного скрипта"? Прямо в диалоге "создания пункта меню" прописать что-нить типа:
source /home/your_nick/setup_maya.sh && ${MAYA_EXEC}
Нет, к сожалению то же самое(
А что в этом скрипте, который обозван "setup_maya.sh"?
Там вот это:
#!/bin/bash
export CGRU_LOCATION=${CG_TOOLS}/cgru
source $CGRU_LOCATION/bin/afenv.sh
export MAYA_VERSION=2009
export MAYA_ARCH=-x64
# For 32bit Maya uncomment next line
# export MAYA_ARCH=
export MAYA_LOCATION=${CG_SOFT}/maya${MAYA_VERSION}${MAYA_ARCH}
export MAYA_EXEC=${MAYA_LOCATION}/bin/maya${MAYA_VERSION}
export MAYA_CGRU_LOCATION=${CGRU_LOCATION}/maya
export TMPDIR=/tmp
export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.5/site-packages
export MAYA_CGRU_MENUS_NAME="CGRU"
# path to modeling, animation, rendering ... menu items
# if not sel defaut MAYA_CGRU_LOCATION/mel will be used
#export MAYA_CGRU_MENUS_LOCATION="/cg/tools/maya/settings"
export XBMLANGPATH=${MAYA_CGRU_LOCATION}/icons/%B
#export XBMLANGPATH=${XBMLANGPATH}:${MAYA_LOCATION}/icons/%B
#:${MAYA_LOCATION}/icons/paintEffects/%B:${MAYA_LOCATION}/icons/cloth/%B:${MAYA_LOCATION}/icons/live/%B:${MAYA_LOCATION}/icons/fur/%B
# automatically load plugins located in MAYA_CGRU_LOCATION/mll/MAYA_VERSION directory
export MAYA_CGRU_PLUG_INS_AUTOLOAD=1
# use cgru to generate mentalray rayrc and place into MAYA_CGRU_MENTAL_RAYRC_DIR directory
export MAYA_CGRU_MENTAL=1
# if not set user temp directory will be used
export MAYA_CGRU_MENTAL_RAYRC_DIR=${HOME}/maya/${MAYA_VERSION}
# if not set "mayacgru" name will be used
export MAYA_CGRU_MENTAL_RAYRC_NAME=my_maya.rayrc
# if set uniquie name for rayrc will be generated `[MAYA_CGRU_MENTAL_RAYRC_NAME].[HOSTMANE].[pid].rayrc`
#export MAYA_CGRU_MENTAL_RAYRC_UNIQUE=1
export MI_CUSTOM_SHADER_PATH=${MAYA_CGRU_LOCATION}/mentalray/include
# not supported now
export MAYA_CGRU_RENDERMAN=0
# replace default maya filebrowser with a standart QT filebrowser with bookmarks
#export MAYA_CGRU_FILEBROWSER_QT=1
# set folders were restore MAYA_CGRU_FILEBROWSER bookmarks
# if not set MAYA_APP_DIR will be used
#export MAYA_CGRU_FILEBROWSER_GLOBAL="${HOME}/maya/file_bkmrk.global"
#export MAYA_CGRU_FILEBROWSER_PROJECT="${HOME}/maya/file_bkmrk.project"
#export MAYA_CGRU_FILEBROWSER_USER="${HOME}/maya/file_bkmrk.user"
#export MAYA_CGRU_FILEBROWSER_RECENT="${HOME}/maya/file_bkmrk.recent"
# overrides (set custom values there):
[ -f overrides.sh ] && source overrides.sh
MAYA_LD_LIBRARY_PATH=$MAYA_LOCATION/lib
if [ "$LD_LIBRARY_PATH" != "" ]; then
export LD_LIBRARY_PATH="${MAYA_LD_LIBRARY_PATH}:${LD_LIBRARY_PATH}"
else
export LD_LIBRARY_PATH="${MAYA_LD_LIBRARY_PATH}"
fi
export PATH=${MAYA_LOCATION}/bin:${PATH}
export MAYA_SCRIPT_PATH=${MAYA_CGRU_LOCATION}/mel/AETemplates:${MAYA_CGRU_LOCATION}/mel/override/${MAYA_VERSION}:${MAYA_SCRIPT_PATH}
export MAYA_PLUG_IN_PATH=${MAYA_CGRU_LOCATION}/mll/${MAYA_VERSION}${MAYA_ARCH}:${MAYA_PLUG_IN_PATH}
Вот нашел две переменные, источник значений для которых не совсем понятен...:
- CG_TOOLS
- CG_SOFT
Есть вероятность, что они задаются в каком-нибудь ~/.bashrc или ~/.profile (если не в более глобальных "инициализаторах", лежащих в /etc/ или /usr/..), которые, в свою очередь, исполняются для каждой терминальной сессии, и потому ты можешь запускать Maya через терминал, но не можешь из меню..
Во общем, попробуй в самое начало скрипта засунуть:
#!/bin/bash
export CG_TOOLS={значение получи в запущеном терминале, с пом. "echo $CG_TOOLS"}
export CG_SOFT={значение получи в запущеном терминале, с пом. "echo $CG_CGSOFT"}
... дальше все оставь как есть, но не повторяй "#!/bin/bash" еще раз ;-)
Да, на самом деле эти переменные определяются в /etc/bash.bashrc
Попробовал как выше написал, указал явно значение этих переменных - то же самое(
Может я невозможного хочу?)
Ну не то чтобы прямо совсем невозможно... Но как мнимум там еще $PATH, $PYTHONPATH и $LD_LIBRARY_PATH (не могу сказать, существуют ли они "вне терминала").
Плюс, там еще пара .sh скриптов по ходу подрубается (про этих я вообще не знаю что там внутри).
Я бы вот еще такой ход попробовал, если честно:
#!/bin/bash
source /etc/bash.bashrc
source /home/your_nick/.bashrc # или что там у тебя еще подрубается при старте терминальной сессии..
# и далее по тексту. как было в самом начале:
export CGRU_LOCATION=${CG_TOOLS}/cgru
...
, если не прокатит -- см. перечисленные в самом начале $PATH, $PYTHONPATH и $LD_LIBRARY_PATH, а также переменные в подрубаемых скриптах ($CGRU_LOCATION/bin/afenv.sh, overrides.sh)..
Других ричин не вижу. Может быть еще что-то с "областью видимости" экспортируемых скриптами переменных: например, ${MAYA_EXEC} определяется в скрипте инициализации, но по выходе из него обнуляется... Здесь я уже не помощник -- так глубоко не копал никогда.
Отправить комментарий