Название: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: xintrea от Сентябрь 10, 2008, 20:45 Здравствуйте!
Имею Linux систему, в которой в данный момент установлена Qt 4.3.0. Решил установить Qt 4.4.1, но этого пакета нет в репозитарии. Выкачал с официального сайта Qt 4.4.1 и решил его установить из исходников. Для configure никаких опций не задавал, компилировал как есть. Согласно Readme, после установки, Qt 4.4.1 должен был разместиться в /usr/local/Trolltech/Qt-4.4.1. Именно туда он и установился. Код: # ls -1 /usr/local/Trolltech/Qt-4.4.1 Пакет Qt 4.3.0 из системы не удалял, основываясь на том, что Qt вроде как для каждой версии библиотеки держит отдельную папку с либами. Пакет Qt 4.3.0 у меня разложен так /usr/share/qt4 - основная директория библиотеки, включает bin, doc, include... /usr/lib - туда положены файлы вида libQtCore.so.4, libQtCore.so.4.3, libQtCore.so.4.3.0, libQtXml.so.4, libQtXml.so.4.3, libQtXml.so.4.3.0 ... /usr/bin - туда помещен только файл qdbus Вопрос такой - что теперь нужно сделать, чтобы заработала либа 4.4.1? Хочу обойтись только созданием симлинков. Дополнительные вопросы 1. А надо ли удалять пакеты с qt 4.3.0 ? 2. А если удалить 4.3.0, будут ли работать программы, собранные под 4.3.0 с либой 4.4.1 (после того как размещу ее канадо)? Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: ритт от Сентябрь 10, 2008, 21:59 1) какой дистрибутив linux? /* почему все так попривыкали писать winxp sp2, но linux - просто linux. linux - это вообще ядро! */
2) стоят ли dev-пакеты? > Вопрос такой - что теперь нужно сделать, чтобы заработала либа 4.4.1? делать ничего не надо - кутэ уже фунциклирует в большинстве случаев все программы, собранные с более ранней версией Qt, будут работать с более новой версией (в большинстве, но не во всех - хоть тролли и сохраняют бинарную совместимость между минорками, при некорректной настройке/сборке всегда можно отправить совместимость под хвост коту) если стоят все необходимые dev-пакеты, думаю, лучшим выбором будет полностью заменить 4.3.0 на 4.4.1 (если, конечно, 4.3.0 не нужна для разработки или ещё зачем) - можно просто заменить оригинальные файлы/папки от 4.3.0 симлинками на соответствующие файлы/папки от 4.4.1 Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: ритт от Сентябрь 10, 2008, 22:04 я не настаиваю на этом способе установки, но мне он нравится больше (чем установка в /usr/local или /usr, зачастую проводимая в распространённых дистрибутивах) - сам его и использую:
Цитировать == Dependencies == === Required === * X Window System === Optional === * Xinerama provided by and X Window System * Xfixes provided by and X Window System * Glib2 * FreeType * FontConfig * D-BUS * OpenSSL * LibTIFF * libjpeg * libmng * NAS * CUPS * MySQL * PostgreSQL * unixODBC * SQLite * SQLite3 * Firebird == Configuration Information == If you would like to compile with MySQL support add the following to the configure command: -plugin-sql-mysql -I/usr/include/mysql If you would like to compile with PostgreSQL support add the following to the configure command: -plugin-sql-psql -I/usr/include/postgresql/server If you would like to compile with SQLite support add the following to the configure command: -plugin-sql-sqlite2 -system-sqlite If you would like to compile with SQLite3 support add the following to the configure command: -plugin-sql-sqlite -system-sqlite If you would like to compile with unixODBC support add the following to the configure command: -plugin-sql-odbc If you would like to compile with NAS support add the following to the configure command: -system-nas-sound If you would like to disable Qt 3 support functionality add the following to the configure command: -no-qt3support If your X Window System is NOT Xorg, then add to configure: -no-xfixes If you want optimized qmake tool add the following to the configure command: -optimized-qmake If you would like to disable GLib event loop add the following to the configure command: -no-glib Compile the package: mkdir -v /opt/qt-4.4.1 && ln -v -sfn qt-4.4.1 /opt/qt4 && ./configure -prefix /opt/qt4 \ -libdir /opt/qt4/lib \ -plugindir /opt/qt4/lib/plugins \ -headerdir /opt/qt4/include \ -datadir /opt/qt4/share \ -translationdir /opt/qt4/share/translations \ -docdir /opt/qt4/share/doc/qt \ -demosdir /opt/qt4/share/demos \ -examplesdir /opt/qt4/share/examples \ -sysconfdir /etc/qt4 \ -L/usr/lib \ -qt-gif \ -system-zlib \ -system-libtiff \ -system-libpng \ -system-libmng \ -system-libjpeg \ -no-exceptions \ -openssl \ -opengl \ -glib \ -release && make Install the package make install Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: xintrea от Сентябрь 10, 2008, 22:54 1) какой дистрибутив linux? /* почему все так попривыкали писать winxp sp2, но linux - просто linux. linux - это вообще ядро! */ А я привык скрывать какой дистриб линуха у меня потому, что все сразу начинают советовать обновляться. И мне приходится долго объяснять почему я это делать не могу (это связано с разработкой под конкретное железо). У меня Ubuntu 7.04. 2) стоят ли dev-пакеты? Да, стоят. libqt4-dev 4.3.0-4ubuntu1~fiesty1 > Вопрос такой - что теперь нужно сделать, чтобы заработала либа 4.4.1? делать ничего не надо - кутэ уже фунциклирует в большинстве случаев все программы, собранные с более ранней версией Qt, будут работать с более новой версией (в большинстве, но не во всех - хоть тролли и сохраняют бинарную совместимость между минорками, при некорректной настройке/сборке всегда можно отправить совместимость под хвост коту) если стоят все необходимые dev-пакеты, думаю, лучшим выбором будет полностью заменить 4.3.0 на 4.4.1 (если, конечно, 4.3.0 не нужна для разработки или ещё зачем) - можно просто заменить оригинальные файлы/папки от 4.3.0 симлинками на соответствующие файлы/папки от 4.4.1 Мда, попытался удалить пакет libqt4-core (4.3.0), вместе с пакетом будет удалено половина системы. Придется вручную заменять и распихивать. Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: ритт от Сентябрь 11, 2008, 10:48 по ушам надо стучать тем, кто советует обновиться :)
7.04 - тоже неплохой дистр был про dev-пакеты: я спрашивал не про кутёвые dev-пакеты, а про dev-пакеты, от которых зависит корректная сборка самой кутэ. к примеру, если 4.3.0 была собрана с полной поддержкой иксов, а теперь соберём 4.4.1 с частичной (поддержкой иксов) и заменим ею 4.3.0, многие программы не смогут корректно работать...а то и вооще запускаться удалять libqt4-core (4.3.0) не нужно. я советовал просто забэкапить оригинальные файлы и заменить их симлинками на соответствующие от 4.4.1 ...и на всякий случай можно прописать /usr/local/Trolltech/Qt-4.4.1/lib в /etc/ld.so.conf Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, k Отправлено: Пантер от Сентябрь 11, 2008, 12:23 Да ничего вообще делать не нужно. Просто делаешь симлинк
ln -s /usr/local/Trolltech/Qt-4.4.1/bin/qmake /usr/bin/qmake_4.4.1 и все. Проверено временем. Можно так хоть 10 разных сборок кути держать. Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: ритт от Сентябрь 11, 2008, 12:28 это чтобы собирать - qmake знает все пути и сам всё разрулит...
а чтобы старые проги работали с новым Qt...qmake'а будет мало Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: Пантер от Сентябрь 11, 2008, 12:55 Старые проги будут работать со старой кутей, пока их не перекомпилировать.
Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: ритт от Сентябрь 11, 2008, 13:54 я так понял, что старая версия не нужна для разработки - в таком случае не вижу смысла оставлять её, если можно перейти на более новую...
Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: vaprele07 от Сентябрь 11, 2008, 14:04 в убунту есть /etc/alternatives где живет линка на qmake обычно меняют ее
Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: Admin от Сентябрь 11, 2008, 14:45 мне кажется нужно играться с переменными среды
ставим qt в папку /home/user/local набираем Цитировать env и видим типа Цитировать PATH=/opt/intel/cc/9.1.047/bin:/usr/local/bin:/usr/bin:/bin:/usr/games LD_LIBRARY_PATH=/home/eugene/local/lib нужно изменить для запуска программы переменные среды PATH и LD_LIBRARY_PATH ( возможно еще что -то) Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: Пантер от Сентябрь 11, 2008, 16:38 У меня кути вообще нет в PATH и LD_LIBRARY_PATH. Я уже говорил, от какой кути используешь qmake, с той и будет работать. Как мне кажется, где-то в исполняемом файле это завязано.
Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: Admin от Сентябрь 11, 2008, 18:11 переменные среды относятся к вашему шелу - это или bash или zsh
так что если вы работает в консолке - переменные есть подробнее тут http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D1%80 %D0%B5%D0%B4%D1%8B Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: Пантер от Сентябрь 11, 2008, 18:18 Если все таки переменные среды, то объясни такой момент. У меня стоит 2 кути:
1. /opt/qt/4.3.0 2. /opt/qt/4.4.1 Если я компилирую с использованием qmake от 1, то приложение выдает aboutQt() 4.3.0, и соответственно от 2 4.4.1. Переменные среды не трогаю. Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: Admin от Сентябрь 11, 2008, 18:24 ты правильно выставляешь переменные среды
QTDIR и QTMAKESPEC Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, k Отправлено: Пантер от Сентябрь 11, 2008, 18:28 Я вообще их не трогал и не трогаю.
Вот мой env Код: CPLUS_INCLUDE_PATH=/usr/lib/qt/include:/usr/lib/qt/include А вот что я нашел в скомпилированной проге: Код: /opt/qt/4.4.1/lib.GCC_3.0.GLIBC_2.0.GLIBC_2.1.3.CXXABI_1.3.GLIBCXX_3.4 Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: xintrea от Сентябрь 12, 2008, 00:18 Фух, ну вроде установил, и даже работает.
Вначале собрал в файлик все названия файлов либ и бинарей, которые принадлежали установленным пакетам версии 4.3.0 Потом скриптик написал чтоб они в бекаповую директорию перенеслись на всякий случай. Сделал линки /ust/lib/qt4 -> /usr/local/Trolltech/Qt-4.4.1/ и /usr/include/qt4 -> /usr/local/Trolltech/Qt-4.4.1/include Потом написал скриптик, который создает линки в директории /usr/bin на все файлы директории /usr/local/Trolltech/Qt-4.4.1/bin Потом в /etc/ld.so.conf прописал директории /usr/include/qt4 и /usr/include/qt4/lib (так как незнаю, обходятся ли директории рекурсивно). Потом дал команду ldconfig. Ну и после этого qt-бинари стали использовать новую библиотеку. Конечно, такой метод установки библиотеки меня не радует, но в свете того, что удалилась бы половина системы пакетным менеджером... Даже была мысля удалить либу через пакетный менеджер, записав, какие проги были в зависимостях... Но они бы потом не устанавливались, пока я бы не поставил ненужную мне либу 4.3.0.. Прогресс идет явно не в том направлении! Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: Admin от Сентябрь 12, 2008, 00:40 по мне так ты пол системы хакнул ))
ну работает и ладно)) Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: ритт от Сентябрь 12, 2008, 02:30 а в чём хак, если бинарная совместимость? под вендой же мы не боимся бинарные обновления ставить...
/usr/include/qt4 в /etc/ld.so.conf явно лишнее Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: Пантер от Сентябрь 12, 2008, 08:35 Ппц. Ну ты и намудрил. ;)
Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: Admin от Сентябрь 12, 2008, 09:18 все решилось бы установкой переменных среды - запуск программы в некотором окружении
нада как нить фак на это написать - если лень позволит Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: xintrea от Сентябрь 12, 2008, 18:08 /usr/include/qt4 в /etc/ld.so.conf явно лишнее Скорее всего. И всеже нигде найти не могу, обрабатываются ли рекурсивно директории, прописанные в /etc/ld.so.conf ? Как-то странно, механизм древний как пятый редхат, а подробности его работы не разглашаются. Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: ритт от Сентябрь 12, 2008, 19:26 механизм древнее, чем ты думаешь :)
за два дня уже выяснил бы эмпирическим путём... но инклюды прописывать в лд.со.конф точно не нужно! Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: Пантер от Сентябрь 13, 2008, 00:03 Млин, неужели я такие тупые вещи говорю??? Попробуйте поставить под Линухом себе 2 версии кути и компильте через разные кумэйки. Проги соответственно будут пользоваться разными версиями. Не нужно никаких env или ld.so.conf. Проверьте и попробуйте опровергнуть. И не нужно велосипеды изобретать. :(
Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: ритт от Сентябрь 13, 2008, 02:22 никто и не говорит про тупые вещи.
опровергать как бы и нечего - да, по умолчанию вкомпиливает пути в бинарники (смотреть mkspecs/common/g++.conf) но цель ведь была безболезненно заменить старую версию на новую, да с возможностью отката. xintrea в итоге этого и добился, правда, черезчур уж намудрив... Название: Re: Установка QT 4.4.1 из исходников под Linux в системе, где уже есть QT 4.3.0 Отправлено: Admin от Сентябрь 13, 2008, 07:25 ладна - чел задачу решил
не так как мы - но решил ) тему закрою |