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

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

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

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

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

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

Сообщение Serg »

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

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

Сообщение Kost_irk »

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

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

Сообщение Serg »

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

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

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

Сообщение Kost_irk »

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

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

Сообщение Kost_irk »

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

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

Сообщение Serg »

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

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

Сообщение ex71 »

Kost_irk писал(а): Я так понимаю, в линуксе основная проблема с запуском левых приложений - именно несоответствие системного окружения между компами на которых происходила сборка и запуск.
это зависит от дистрибутива, а не от левости компа. Во-первых есть два вида дистрибутивов: RPM и DEB. Все остальное - производные от них.
Есть основное ядро системы, оно не зависит от окружения библиотек или софта. Собственно дистрибутив это обертка вокруг ядра.
Поставил ты кеды или гном - никакой разницы для ядра не будет. Для софта - да, потому что будет либо GTK либо Qt (библиотеки графики).
Менеджер пакетов это опять же определенный софт с определенными конфигами где лежат либы, а где конфиги.

а в остальном если закинешь библиотеки в нужные места то даже можно тупо пакет собранные для deb запустить в rpm дистрибутивах. Все равно что софт собранный под XP запускать в 7 - косяки могут быть, но работать будет.

Есть build.opensuse.org который позволяет в окружении заданного дистрибутива собрать пакет "в облаке" с твоим кодом и твоими конфигами. На выходе получишь один пакет который будет согласно конфигам требовать для установки нужные пакеты в свое окружение. В итоге, при установке "своего" пакета будешь получать список зависимостей типа:
Screenshot_20210710_002944.jpg (3263 просмотра) <a class='original' href='./download/file.php?id=196581&mode=view' target=_blank>Загрузить оригинал (65.14 КБ)</a>
Ответить

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