Сайт | Скачать | Видео | Wiki

Автор Тема: portable софт ("портирование"). Использование динамических библиотек  (Прочитано 18491 раз)

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 19708
  • Репутация: +147/-0
    • PuppyRus-A
ПЫ.СЫ. Интересно, как люди делают portable софт.
http://wiki.puppyrus.org/setups/portable

папки с подлибами типа /usr/lib/imagination
« Последнее редактирование: 03 Февраль 2016, 16:55:27 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 19708
  • Репутация: +147/-0
    • PuppyRus-A

Оффлайн rodocop

  • Постоялец
  • ***
  • Сообщений: 162
  • Репутация: +2/-0
Кстати, о птичках.
У юзера shinobar из Японии в репозитории есть некоторое количество портабельного софта, который можно использовать практически в любых паппиках.
В списке есть:


Для большинства программ портабельный исполняемый файл - это оболочка, скачивающая актуальную версию программы для вашего установленного языка, осуществляющая минимальную настройку (для браузеров - импорт закладок), а затем служащая лончером.
Портабельная программа может храниться на любом примонтированном диске (а не обязательно внутри сохранялки), но при этом будет иметь постоянный ярлык в меню и регистрацию в Менеджере пакетов и может быть удалена - правда при этом удаляется лишь оболочка, а скачанное остается на месте (папка требует ручного удаления).

Единожды установленная портабельная программа будет автоматом обновляться или ее можно обновить вручную, распаковав архив с нужной версией (иногда требуется более старая версия для работы в том или ином паппике).

Установленная программа может легко переноситься в другой паплет, для чего у лончера есть команда, регистрирующая пакет в меню новой системы.

Подробности можно прочитать в типичном readme на примере firefox (англ.).

P.S. Не уверен, что это правильная ветка форума для этой темы, но вроде все же близко. Можно перенести в "программы", но там нет единой подходящей ветки.

Оффлайн for_wov

  • Ветеран
  • *****
  • Сообщений: 464
  • Репутация: +13/-0
  • TRUE
Для большинства программ портабельный исполняемый файл - это оболочка, скачивающая актуальную версию программы для вашего установленного языка, осуществляющая минимальную настройку (для браузеров - импорт закладок), а затем служащая лончером.
тогда большинство оболочек станут скриптами и для запуска нужной проги нужно специально отведенное в системе место (для бинарников уже определено). Возможным решением станет добавление спец. ПУТИ для портативных прог (на уровне системы, а не самих пакетов).
Цитировать
Единожды установленная портабельная программа будет автоматом обновляться или ее можно обновить вручную, распаковав архив с нужной версией (иногда требуется более старая версия для работы в том или ином паппике).
Хорошо бы при этом сохранить пользовательские настройки да еще и для разных версий. (есть прототипы для наследования?)
Цитировать
Установленная программа может легко переноситься в другой паплет, для чего у лончера есть команда, регистрирующая пакет в меню новой системы.
пока меню новой системы не будет унифицированным [утопия](имхо, вряд ли это вообще возможно) "попадать на свое место" программа вряд ли будет, пока меню не будет четко определено (возможно фактическим наличием модулей в папках системы с нужной сортировкой) и поддерживаемо всеми заинтересованными лицами (все ли в этом заинтересованы?). Опять же вариант для консолидации - ПУТЬ(PATH) опять же на уровне системы (заложенный в процессе разработки) для каждого дистра.
Цитировать
Портабельная программа может храниться на любом примонтированном диске (а не обязательно внутри сохранялки), но при этом будет иметь постоянный ярлык в меню и регистрацию в Менеджере пакетов и может быть удалена - правда при этом удаляется лишь оболочка, а скачанное остается на месте (папка требует ручного удаления).
Смотрите пункт выше. Возможно потребуется консолидация (имя может быть разным путь желательно один) в наименовании модуля(групы модулей)
« Последнее редактирование: 12 Март 2015, 15:42:26 от for_wov »
Опыт увеличивает нашу мудрость, но не уменьшает нашей глупости.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 19708
  • Репутация: +147/-0
    • PuppyRus-A
Напишу здесь... Поскольку моё представление о портированности, соответствует ссылке на хакер из вики.
to sfs Скорее всего под портированные модули, вы подразумеваете, портированность в ПРА64?
Посмотрел модули  firefox-light-39.0-s01_64.pfs и firefox_37.0.1_64.pfs, там как и в ПРА симлинки на либы, а это ведь уже не портебл софт, так как без этих либ в другом дистре работать не будет.
Как раз, сегодня собирался, делать SeaMonkey x86_64 и создавать симлинки на либы, так делать это?
Или нужно создать, как у японского товарища (или использовать его), оболочку для запуска бинарной сборки с mozilla.org?
Смысл портирования (называйте это как хотите) в ПРА -
1. не убить систему . Если в /lib одна версия из Вашего среза арчрепы, а Вы засунете туда другую - проги у которых в зависимостях родная либа могут перестать работать. Многое зависит от того какая именно либа
2. не обновлять модуль после обновления базы. В базе /lib либы обновились - а портированная прога продолжает работать со своим /opt/../lib

Касаемо всех клонов мозилы - они из коробки портированные
Либы на которые делаются симлинки - нужны всем браузерам - поэтому они в базе. Дубли не нужны
Как сделано у японца не смотрел. Тут ничего нового не придумать
« Последнее редактирование: 12 Ноябрь 2015, 16:33:58 от sfs »

Оффлайн Satevis

  • Старожил
  • ****
  • Сообщений: 230
  • Репутация: +6/-0
2. не обновлять модуль после обновления базы. В базе /lib либы обновились - а портированная прога продолжает работать со своим /opt/../lib
Вот это портебл софт.

по первому пункту
Цитировать
Смысл портирования (называйте это как хотите) в ПРА -
вот и нужно название придумать или уточнять, поскольку к этой теме отношения мало.
Цитировать
Как сделано у японца не смотрел.
а даёте ссылку на эту тему, а здесь такое, что ничего общего...
имхо темв с портебл софтом для puppy не актуальна, т.к. он сам портебл, и решается в других темах, поэтому здесь и тишина...

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 19708
  • Репутация: +147/-0
    • PuppyRus-A
В моем понимании - если либы не в /lib /usr/lib - портировано. Стандартное место для п. софта - /opt. Можно портировать в любое место
Японца имел ввиду
У юзера shinobar из Японии
Название - придумывайте  ;)
ИМХО и далее - не понял смысл фразы
И чего Вы от меня по итогу хотите - тоже  :)
Посмотрите любой *-p-*.pfs из PRA и делайте так же скриптом mkport. Называть полученное можете как хотите
« Последнее редактирование: 12 Ноябрь 2015, 17:06:09 от sfs »

Оффлайн Satevis

  • Старожил
  • ****
  • Сообщений: 230
  • Репутация: +6/-0
И чего Вы от меня по итогу хотите - тоже  :)
Убрать ссылку на эту тему
- актуальны только портированные модули
и просто указать портированные для ПРА64. (все кто в теме и так поймут, а кто нет голову забивать не будут "в теме про SeaMonkey, мне доступно объяснили, что нужно", а сюда пришёл чуть голову не сломал).

Ну, а кто после сюда заглянет, сам разберётся...

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 19708
  • Репутация: +147/-0
    • PuppyRus-A

Оффлайн Satevis

  • Старожил
  • ****
  • Сообщений: 230
  • Репутация: +6/-0
поправил
Уж если оставлять ссылку
портированные  методом
тогда уж прямую на вики http://wiki.puppyrus.org/setups/portable не смотря на то что вторая ссылка ведёт на середину того же текста (сами же говорите "ссылки нужно на доку, а обсуждать на форуме" в вики есть ссылка на эту тему в форуме) да и вики нужно поправить указать, что такое портированность в ПРА. А то в доке тож больше про портебл софт и ни слова , что достоинство портированных для ПРА модулей, уменьшение размера. (Если хотите, чтобы новичку стало понятно, если нет, то просто удалите ссылку, как предложил ранее)

P.S. А голова ломается, потому что изначально противоречие:
портебл софт - всё с собой - увеличение размера модуля!
портированность ПРА - либы уже в ОС - создание симлинков - уменьшение размера модуля!
ну, наверное как так, по простому в вики нужно...

P.P.S. А пример портебл в ПРА - это как раз, когда либы (старые или новые, которые нельзя менять в системе) находятся внутри каталога проги (или монтируются в /опт). Вспомнил статью в арчвики, там про виндовс софт, но как раз объясняется понимание того, что portable софт и ("портирование") - это противоположные вещи.
« Последнее редактирование: 13 Ноябрь 2015, 05:12:42 от Satevis »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 19708
  • Репутация: +147/-0
    • PuppyRus-A
Убрал ссылку на форум, в вики в выводах добавил про ПРА
В вики - обзор всех методов и выводы, а не инструкция для ПРА по изготовлению модулей
Если разобрались - напишите статью для новичков
Хотя не думаю , что портирование - для них

Оффлайн viktor_ja

  • Пользователь
  • **
  • Сообщений: 46
  • Репутация: +1/-0
Случайно наткнулся на это сообщение:
http://forum.puppyrus.org/index.php/topic,16173.msg101252.html#msg101252
Проверил установку портабельного браузера Opera в PuppyRus-13.12-XFCE-remix от Lego, установленного на флешку. Браузер скачался и установился.  В меню появился ярлык, при перезагрузке не пропадает. Папку с распаковкой архива следует помещать в /mnt/home. Туда же, в создающуюся по ходу дела папку "Opera", скачивается и сам браузер. Запуск процесса установки производится щелчком по файлу AppRun в папке. Локализация установилась – русская.

Olej

  • Гость
Доработал и перенес http://wiki.puppyrus.org/setups/portable
По поводу библиотек: там (в wiki) слишком ограничено.
Возможностей с библиотеками существенно больше.

Если разобрались - напишите статью для новичков
Интересующиеся новички могут почитать здесь: Разработка программных проектов в Linux.
Пересказывать не стану, потому что там только про библиотеки - больше 20 стр. описания.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 19708
  • Репутация: +147/-0
    • PuppyRus-A
Совсем глубоко влезать в теорию не хотелось бы
Можете обозначить какие еще есть возможности применимые на практике?
Из имеющихся проблем - либы, имеющие зависимые либы в дополнительной папке. Например /usr/lib/imlib2
Не нашел других решений кроме перекомпиляции с измением /usr/lib на /opt/прога/lib

Olej

  • Гость
Совсем глубоко влезать в теорию не хотелось бы
Там по ссылке, где я дал, нет никакой глубокой теории, там именно практика "от сохи", из опыта программной разработки... Набор скольки-то-там правил где ищутся и где размещать динамические библиотеки.
Почему-то в народе бытует мнение, что это или /lib + /usr/lib, или LD_LIBRARY_PATH. На самом деле та правил поиска (мест) библиоек заметно больше. И это имеет пользу для подготовки более-или менее переносимых программных проектов.

Можете обозначить какие еще есть возможности применимые на практике?
По свободе выберу время, и сделаю выжимки на 1 страницу. ;)