Какую технологию выбрать для создания приложения не зависящего (почти) от окружения? | |
---|---|
Flatpack | |
Snap | |
Appimage | |
Виртуальная машина | |
Docker контейнер | |
LXC контейнер | |
Пересобирать по необходмости | |
Другое |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
redix, да, про программистов он сморозил... исключение только платные программисты, которые хотят получить халявных
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
redix |
|
Темы:
34
Сообщения:
3432
Участник с: 11 марта 2013
|
nafanja, пробовал когда то pc-bsd (лет десять назад), там было так называемое app-cafe, которое ставило софт в подобном формате(pbi), второй скайп со всеми зависимостями весил ~ 450 метров, с тех пор я "полюбил" подобные форматы. )
In Tux We Trust
|
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
redix, это чистый виндовс вей.... у виндовс программистов, другие запросы... меньше работы, а бабла побольше. а вот линукс это чистый коммунизм, от каждого по возможностям, каждому по потребностям...
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
redix |
|
Темы:
34
Сообщения:
3432
Участник с: 11 марта 2013
|
nafanjaСтопудово, а Ubuntu как пример со своими снапами.
In Tux We Trust
|
iradia |
|
Темы:
6
Сообщения:
85
Участник с: 02 марта 2019
|
vasekМожно поподробнее? У меня заморожен thunderbird версии 52.9.1. |
vasek |
|
Темы:
47
Сообщения:
11842
Участник с: 17 февраля 2013
|
iradiaКак то описывал в этом топике, но обычно перед заморозкой желательно сделать анализ применения динамических библиотек, зависимость от других пакетов и др. Полный список динамических библиотек можно узнать из вывода ldd или используя strace. Можно и сохранить все эти библиотеки, а при необходимости подсунуть их, но многое зависит от конкретной ситуации. Однозначного рещения нет и, главное, вечно это продолжаться тоже не может ... нюансов много и все не распишешь.
Ошибки не исчезают с опытом - они просто умнеют
|
iradia |
|
Темы:
6
Сообщения:
85
Участник с: 02 марта 2019
|
vasekЧитаю. Интересно. |
archevator |
|
Темы:
5
Сообщения:
32
Участник с: 01 августа 2018
|
sfsИнтересный вариант, спасибо, надо будет попробовать. Как я понимаю нужно будет сделать скрипт-обёртку над нужным файлом и всё разместить в отдельной папке. vasekНе будут ли со временем свои симлинки в системных папках причиной трудно отслеживаемых проблем? Как я понял, если есть возможность оставить работу с системными файлами менеджеру пакетов, надо её оставить ему. Упоминание в одном месте flatpak, snap, appimage и остальных неизменно вызывает обсуждение, не ожидал увидеть столько комментариев. Также нашлось одно из готовых решений - образ docker с нужным сервисом внутри. Правда в этом случае нужно будет еще разбираться с доступом к фс контейнера или доступом из контейнера к фс системы, думаю решаемо |
vasek |
|
Темы:
47
Сообщения:
11842
Участник с: 17 февраля 2013
|
archevatorПросто эти симлинки в один момент могут не сработать для данного приложения, но вреда системе не будет - данная библиотека не принадлежит ни одному пакету в системе. И разумеется нужно все фиксировать, чтобы знать, что менял, где менял, а при необходимости и удалить. Пример ls -l /usr/lib/libhunspell-1.6.so.0 lrwxrwxrwx 1 root root 33 ноя 22 2018 /usr/lib/libhunspell-1.6.so.0 -> /usr/lib/libhunspell-1.7.so.0.0.1 pacman -Qo /usr/lib/libhunspell-1.6.so.0 ошибка: Ни один пакет не содержит '/usr/lib/libhunspell-1.6.so.0' pacman -Qo /usr/lib/libhunspell-1.7.so.0 /usr/lib/libhunspell-1.7.so.0 принадлежит hunspell 1.7.0-2 и в тоже время readelf -d /usr/lib/firefox/libxul.so | grep NEEDED | grep libhunspell 0x0000000000000001 (NEEDED) Совм. исп. библиотека: [libhunspell-1.6.so.0] EDIT 1 - и разумеется, что проблемная библиотека должна использоваться только одним проблемным приложением ... а потому и нужен анализ, на основании которого и применяется тот или иной способ.... и лучше, конечно, заранее сохранить копии нужных библиотек. И приходилось иногда и менять несколько байт, чтобы решить проблему. EDIT 2 - При отладке загрузки библиотек рекомендую использовать LD_DEBUG, что позволит получить полную отладочную информацию. EDIT 3 - Немного о номерах версий динамических библиотек и их влиянии на совместимость. Действует следующая схема нумерации библиотек - lib.so.x.y.z x – мажорный выпуск - мажорная версия библиотеки изменяется всякий раз, когда у неё меняется ABI и, как правило, совместимость при этом изменении не обеспечивается. y – минорный выпуск - минорная версия библиотеки изменяется при добавлении в библиотеку новой функциональности без изменения ABI и, как правило, совместимость при изменении обеспечивается (новые функции и типы данных добавляются, но старые при этом должны сохраняться). z – багофикс - багофикс изменяется при устранени ошибок (без добавления новой функциональности) и естественно на совместимость не влияет. Разработчики библиотеки стараются поддерживать ABI стабильным - изменение затратно.
Ошибки не исчезают с опытом - они просто умнеют
|
archevator |
|
Темы:
5
Сообщения:
32
Участник с: 01 августа 2018
|
Пробую сделать так: создал папку рядом с исполняемым файлом, скопировал туда библиотеки: Создал скрипт для запуска: После запуска смотрю в proc/<pid процесса>/maps и вижу что пути к библиотекам не изменились. Наверно нужно что-то еще указать (править ld.so.conf.d/*, запустить ldconfig)?У меня конечно эксперимент не совсем чистый, т.к. нужная библиотека есть и в системно каталоге и в созданном мной. Но, как я понял, через LD_LIBRARY_PATH можно явно указать каталог для поиска библиотек. |