[РЕШЕНО] Кнопка запуска VS терминал, и глобальные переменные

Автор su16, 06 октября 2015, 00:15:38

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

su16

Добра!

Qt5 установлен в /opt  с сайта, стендэлон. в ~/bashrc дописал:
Открыть содержимое (спойлер)
export PATH=/opt/qt/qt5.5/5.5/gcc_64/bin/:/opt/qt/qt5.5/Tools/QtCreator/bin/:$PATH

export LD_LIBRARY_PATH=/opt/qt/qt5.5/5.5/gcc_64/lib/:$LD_LIBRARY_PATH
export LDFLAGS=-L/opt/qt/qt5.5/5.5/gcc_64/lib/:$LDFLAGS


export CPPFLAGS=-I/opt/qt/qt5.5/5.5/gcc_64/include/:$CPPFLAGS
export C_INCLUDE_PATH=/opt/qt/qt5.5/5.5/gcc_64/include/:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/opt/qt/qt5.5/5.5/gcc_64/include/:$CPLUS_INCLUDE_PATH
[свернуть]

теперь пытаюсь из консоли запустить апликуху, которая жаждит либы QT5  - работает!
создаю кнопку запуска на панели XFCE- не работает. дбойной щелчок по апликухе тоже не работает.
похоже, консоль подхватила либы, а система нет.
как оповестить систему о местонахождении либ?

Cообщение объединено 06 октября 2015, 19:49:51

как ошибки посмотреть, почему приложение с кнопки не стартонуло? в /var/log ничего в глаза не бросилось, куда это логируется?
Если вам дают бесплатное, то, скорее всего, товар - это вы.
https://occupyflash.org/

su16

попробовал &> ~/errors.txt дописать в конце команды - не помогло
Если вам дают бесплатное, то, скорее всего, товар - это вы.
https://occupyflash.org/

mrgoodvin

Желательно помещать такое в $HOME/.profile, после строки PATH="/usr/local/sbin:/usr/sbin:/sbin:$PATH" или в конец. Для всех пользователей в /etc/profile. Как вариант, в настройках кнопки есть выбор запустить из под терминала, и уведомление о запуске.
Нашел это http://askubuntu.com/questions/435564/qt5-installation-and-path-configuration, может поможет.
~$ qtchooser -print-env:
Открыть содержимое (спойлер)
QT_SELECT="default"
QTTOOLDIR="/usr/lib/x86_64-linux-gnu/qt4/bin"
QTLIBDIR="/usr/lib/x86_64-linux-gnu"
[свернуть]
Соответственно можно поправить как по ссылке выше.

su16

#3
mrgoodvin, спасибо!

сделал так:
Открыть содержимое (спойлер)

user@test:~$ qtchooser -print-env
QT_SELECT="default"
QTTOOLDIR="/opt/qt/qt5.5/5.5/gcc_64/bin"
QTLIBDIR="/opt/qt/qt5.5/5.5/gcc_64/lib"
[свернуть]
не помогло.
из терминала апликуха по-прежнему стартует без проблем, по двойному щелчку из папки - нет. на кнопке выставлены уведомления и запуск в терминале, терминал при щелчке по кнопке открывается и тутже закрывается, не успев отрисоваться на экране.

я создал рабочий sh скрипт рядом с апликухой, с выводом переменных окружения в файл - оказалось, что все переменные окружения дефолтные.
скрипт как скрипт, ничего волшебного:
Открыть содержимое (спойлер)

#!/bin/bash
echo "starting..." > ~/test.txt
echo LD_LIBRARY_PATH=$LD_LIBRARY_PATH >> ~/test.txt
echo PATH=$PATH >> ~/test.txt
echo -------------------------- >> ~/test.txt
/opt/tea/tea &> ~/errors.txt
echo -------------------------- >> ~/test.txt
echo "done!" >> ~/test.txt
[свернуть]

пробовал прописывать PATH и LD_LIBRARY_PATH в
~/.bashrc
~/l.profile
/etc/bash.bashrc
.pam_environment и environment - тоже не помогло, возможно сказывается баг
аналогично с ~/.config/xfce4/xinitrc :-[

похоже, крыса запускает приложения в каком-то своём шелле, не юзает системный баш и даже собственные конфиги... ???


Cообщение объединено 12 октября 2015, 06:10:04

=================================================================
Победа!!! разобрался!!! 8)  ;D

LD_LIBRARY_PATH можно совсем убрать из ~/.bashrc, ибо эту переменную в линуксе принято использовать для временных экспериментов, поэтому она всегда пуста по умолчанию. там для терминала на самом деле надо оставить только одну строку
Цитироватьexport PATH=/opt/qt/qt5.5/5.5/gcc_64/bin/:/opt/qt/qt5.5/Tools/QtCreator/bin/:$PATH
правильно либы добавлять через утилиту ldconfig. Эта утилита читает файл
/etc/ld.so.conf
и создаёт необходимые линки в системе. в дебиане и в большинстве линуксов в этом файле только ссылка на папку
/etc/ld.so.conf.d/
в сей папке надо создать какой-нибудь текстовый файл и записать в него ссылку на папку с кутешными либами:
sudo echo /opt/qt/qt5.5/5.5/gcc_64/lib > /etc/ld.so.conf.d/libc.qt5.conf
далее обновляем сустему командой
sudo ldconfig -v > ~/my_libs_info.txt
и всё! далее можно почитать что получилось командой
sudo ldconfig -p | grep Qt5 | more
Открыть содержимое (спойлер)

вообще, таким образом можно держать линк на пустую папку /opt/lib и подбрасывать туда только нужные либы, подсматривая их например так:
ldd [ваша/прога] | grep Qt5 | more
[свернуть]

вторая проблема - крыса не видит PATH.
но это уже не так критично... если что создам отдельную тему. ;D
Если вам дают бесплатное, то, скорее всего, товар - это вы.
https://occupyflash.org/