день добрый, усатые сородичи! :о)
какаши - это отсылка к понятию "
cанитайзер" (ну и на котофоруме - имеют значимость "
святого смысла")
собственно, я "свой код" при внутреннем использовании ни как, кроме как какаши и не называю!
+
далее, некоторое "видение" юникс-вей "методы" установки программ.
в общем, это "плюс/минус", но везде примерно так.
для установки программ используются каталоги
1. "системный" каталог:
Код:
/etc - системные настройки
/bin
/lib
/opt - альтернативный каталог для "блоб/все в одном" установок
2. каталог "пользователя" в корневой системе:
Код:
/usr/bin
/usr/lib
/usr/share - настройки/конфиги и прочее "нечто"
3. каталог "пользователя" в домашнем каталоге (ручной вариант):
Код:
~/ - дом.каталог
~/bin - бинарники и прочее
~/opt - альтернативный каталог для "блоб/все в одном" установок
~/.config - настройки/конфиги и прочее
при установке из пакета (администратором) - установка возможна в 1 и 2й (пункт)
зовисит от дистрибьютива/линукса/ментейнера и еще чего либо :о)
установка (пользователем) подразумевает 3й пункт
+
весь "замес", в нашем случае, из-за того, что мы используем "внешнюю" библиотеку
lib_qtX_pas.
при использовании "правильных" методов установки - неважно куда мы установим lib-qt-pas-библиотеку
Код:
/lib
/usr/lib
мы можем "случайно" переписать сверху "уже установленную" и ... далее ждем сюрпризов.
для разруливания данной ситуации "обычно" используют установку в каталог п.2 (каталог пользователя в корневой системе).
но и это "не всегда" спасает от "косяков и сюрпризов", например, если уже установлена в системе к.л. софтина, использующая
lib_qt_pas-библиотеку, какой-то своей версии/или еще чего, собранная со своими "особенностями" (а этого в линухе просто завались)...
далее углубляться не будем, надеюсь, смысл понятен?! :о)
в данном случае, единственно верный/безопасный и трушный метод - это установка в т.н. "кастомный" каталог, т.е.
- установить пакет в "свой собственный каталог"
- настроить окружение так, что-бы использовать именно этот каталог для работы (втч первичный поиск бинарников/библиотек, что-бы подключалась именно "наша" lib-qt-pas библиотека итд)
такой метод используется в
mac-osx: каталог
name.app - со всем необходимым "барахлом": бинарники, библиотеки, пр.файлы
итак, будем использовать один из 2х каталогов:
Код:
~/opt/app-name
~/bin/app-name
opt-каталог хорош для тех софтин, кот. используются "как есть", без "шаловливых ручек разработчика", типа
gimp/firefox итд
в данном случае мы/вы рассматриваем программу как непосредственно
dev/tool/инструментарий, с кот. придется сталкиваться непосредственно, что-то дорихтовывать в "ini-настроках"/shell-скриптах или просто, "разраб" будет дорабатывать/отлаживать программу... короче, лучше иметь "этот каталог" под рукой, поэтому выбираем каталог:
Код:
~/bin/app-name
итак
- копируем все файлы в данный каталог, если сильно надо, раскидываем по "своим" под-каталогам (bin/lib/txt/lang)
Код:
~/bin/app-name/bin
~/bin/app-name/lib
~/bin/app-name/lang
~/bin/app-name/etc
скрипт-обертка для запуска (помещается в стандартный ~/bin)
Цитата:
~/bin/app-name.sh
Код:
#!/bin/bash
P=~/bin/app-name/
BIN=$P/bin
LIB=$P/lib
LNG=$P/lng
export PATH="$BIN:${PATH}"
export LD_LIBRARY_PATH="${LIB}:${LD_LIBRARY_PATH}"
#
# etc set/cmd env... :o)
#
$BIN/app-name "$@"
естественно, не забываем добавить (если уже не сделано "по умолчанию") в файле/скрипте/настройки
(зовисит от текущих "хотелок" дистрибьютива, скрин с таблицей)
Код:
export PATH=~/bin:${PATH}
создаем
*desktop-файл и ву-а-ля!
доп:
очень давно пытался использовать что-то типа:
Код:
LD_LIBRARY_PATH="./:${LD_LIBRARY_PATH}"
несколько раз натыкался на какие-то траблы, так и повелось, что не использую
"."ИТОГО:
- мы устанавливаем приложение в тот каталог, кот. мы определим сами (кастом)
- не мусорим систему "инсталляторами"
- не перезаписываем уже установленные библиотеки
- не награмождаем окружение/environment наворотами, все настройки, сделанные в запускающем shell-скрипте будут действительны только внутри этого скрипта (ну и в вызывающих процессах)
- все в одном каталоге (все удобно/под рукой для разработки/доработки)
ну и таким образом, мы можем "настраивать" приложение "как нам заблагоразумится", в разумных пределах :о)
отсебятины еще немного:
- замечено, что
gtk-версии приложений (fpc/lazarus) - глючат значительно больше чем
qt- из
qt-версий глючит больше
qt4- и все
gui/toolkit-ы ведут себя немного "по своему" (как-бы не хотелось обратного)
поэтому (лично я) собираю все доступные gui и использую их в зов-ти от "обстоятельств".
в частности
gtk2/qt4/qt5 (поэтому я предлогал оставить один единственный lang-файл, уже предлагать отвязать имя-файла от имени-бинарника я не стал :о)
Спойлер
как разруливаю версии gtk2/qt4/qt5 - спрашивайте, если надо, могу описать в след. раз! 
спорить не буду и, надеюсь, смысл будет понятен. делюсь видением, если кому-то пригодится - то и замечательно.
на этом, всем удачи ну... и вообще!
p.s.
шкрябал по "ходу дела" и "черпал" из башки, поэтому могут быть неточности/опечатки, если что, тыкайте, испЫравим, пока есть "время" на редактирование
