как распространяемый пакет создать?

Общие вопросы по операционным системам семейства Linux.
Аватара пользователя
X-Ray
Мастер
Сообщения: 530
Зарегистрирован: 04 фев 2016, 23:06
Репутация: 234
Настоящее имя: Дамир
Контактная информация:

как распространяемый пакет создать?

Сообщение X-Ray »

Serg писал(а): В Linux нет .dll (Dynamic Link Librаry), в Linux .so - Shared Object (Code), т.е. единственный экземпляр этого объектного (скомпилированного) кода в памяти может одновременно использоваться несколькими приложениями. Можно начать с гугления "linux so".
Да это понятно (про PLT, GOT и всю эту машинерию я знаю), а как распространяемый пакет создать то? В linux я нуб, собрать и написать могу, а распространить нет.
Программа G2G (фрезеровка из гербера, производство ПП на ЧПУ) GERBER_X2/releases
Прежде чем писать о багах проверьте, является ли ваша версия последней!
Баги - глюки просьба писать сюда!!!
Багтрекер
Тестовая версия
Аватара пользователя
Serg
Мастер
Сообщения: 21868
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5134
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: как распространяемый пакет создать?

Сообщение Serg »

X-Ray писал(а): а как распространяемый пакет создать то?
Это зависит от целевого дистрибутива. В дистрибутивах есть "менджеры пакетов", которые ведают установкой, обновлением, удалением компонентов системы. В состав этих "менеджеров" обычно входит средство создания таких пакетов.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Kost_irk
Мастер
Сообщения: 296
Зарегистрирован: 19 июл 2018, 07:46
Репутация: 45
Откуда: Иркутск
Контактная информация:

Re: как распространяемый пакет создать?

Сообщение Kost_irk »

Я думаю автору проще состряпать .appimage, чтобы сильно не привязываться к дистрибутиву. Этот формат таскает свои библиотеки с собой. Я находил пару утилит для этого дела, вот только не понял, как их заставить работать. Я не программист, просто приходится иногда. Вкратце, там вроде проблема с версией системы, на которой собирается пакет.
Аватара пользователя
Serg
Мастер
Сообщения: 21868
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5134
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: как распространяемый пакет создать?

Сообщение Serg »

Kost_irk писал(а): Этот формат таскает свои библиотеки с собой.
Достаточно компилятору-линкеру указать опцию "-static" и все библиотеки чудесным образом окажутся внутри исполняемого файла.

В случае appimage (как впрочем и установки из исходников) все преимущества пакетных менеджеров сливаются в помойку, а это и контроль целостности файлов с цифровой подписью, и жёсткий учёт файлов (какой файл какому пакеты принадлежит, а какой "залётный") и компактный бэкап системных файлов (только каталог /etc и список установленных пакетов)...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Kost_irk
Мастер
Сообщения: 296
Зарегистрирован: 19 июл 2018, 07:46
Репутация: 45
Откуда: Иркутск
Контактная информация:

Re: как распространяемый пакет создать?

Сообщение Kost_irk »

Serg писал(а): Достаточно компилятору-линкеру указать опцию "-static" и все библиотеки чудесным образом окажутся внутри исполняемого файла
А можно поподробней? Я так понимаю, что таким образом можно включить свои библиотеки, а как быть с системными?
Я так понимаю, в линуксе основная проблема с запуском левых приложений - именно несоответствие системного окружения между компами на которых происходила сборка и запуск. Можно оставить эту проблему менеджеру пакетов, а можно сделать appimage по типу скачал-запустил. Мне например очень не нравится, когда какая-нибудь мелкая программулька собрана на самых распоследних библиотеках хз зачем, и просто чтобы запустить ее напосмотреть нужно обновлять систему. При этом никакой функционал свежих либ не используется, просто так сложилось, что они были на компе сборщика и их версии забиты гвоздями в приложение.
Kost_irk
Мастер
Сообщения: 296
Зарегистрирован: 19 июл 2018, 07:46
Репутация: 45
Откуда: Иркутск
Контактная информация:

Re: как распространяемый пакет создать?

Сообщение Kost_irk »

Почитал тут немного, тема очень холиварная. Вроде как на свежих дистрибутивах ветер дует в сторону snap.
Аватара пользователя
Serg
Мастер
Сообщения: 21868
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5134
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: как распространяемый пакет создать?

Сообщение Serg »

Kost_irk писал(а): Я так понимаю, что таким образом можно включить свои библиотеки, а как быть с системными?
Всё библиотеки.
Kost_irk писал(а): А можно поподробней?
В доках на конкретный компилятор.
Kost_irk писал(а): Я так понимаю, в линуксе основная проблема с запуском левых приложений - именно несоответствие системного окружения между компами на которых происходила сборка и запуск.
Это проблема не самого Linux, а отсутствие в нём диктатуры как в Windows/MacOS, т.е. любой желающий может выпустить свой собственный дистрибутив со своими особенностями, а пользователи и производители софта сами, без принуждения решают каким дистрибутивом пользоваться и какие дистрибутивы поддерживать в своём софте.
Kost_irk писал(а): Мне например очень не нравится, когда какая-нибудь мелкая программулька собрана на самых распоследних библиотеках хз зачем, и просто чтобы запустить ее напосмотреть нужно обновлять систему. При этом никакой функционал свежих либ не используется, просто так сложилось, что они были на компе сборщика и их версии забиты гвоздями в приложение.
Вам никто не мешает не пользоваться результатом труда такого сборщика и собрать пакет самостоятельно. :)
Ну или выбрать другой дистрибутив. Например RedHat прямым текстом гарантирует полную бинарную совместимость всех версий пакетов в пределах одной мажорной версии RHEL (и как следствие CentOS).
А для посмотреть можно воспользоваться контейнерами (docker).
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

Вернуться в «Прочие вопросы Linux»