Да это понятно (про PLT, GOT и всю эту машинерию я знаю), а как распространяемый пакет создать то? В linux я нуб, собрать и написать могу, а распространить нет.
как распространяемый пакет создать?
-
- Мастер
- Сообщения: 598
- Зарегистрирован: 04 фев 2016, 23:06
- Репутация: 275
- Настоящее имя: Дамир
- Контактная информация:
как распространяемый пакет создать?
Программа GGEasy (фрезеровка из гербера, производство ПП на ЧПУ) GERBER_X3/releases
Прежде чем писать о багах проверьте, является ли ваша версия последней!
Баги - глюки и ПРЕДЛОЖЕНИЯ(Хотелки) писать СЮДА!!! Багтрекер
Тестовая версия
Прежде чем писать о багах проверьте, является ли ваша версия последней!
Баги - глюки и ПРЕДЛОЖЕНИЯ(Хотелки) писать СЮДА!!! Багтрекер
Тестовая версия
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: как распространяемый пакет создать?
Это зависит от целевого дистрибутива. В дистрибутивах есть "менджеры пакетов", которые ведают установкой, обновлением, удалением компонентов системы. В состав этих "менеджеров" обычно входит средство создания таких пакетов.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 999
- Зарегистрирован: 19 июл 2018, 07:46
- Репутация: 193
- Откуда: Иркутск
- Контактная информация:
Re: как распространяемый пакет создать?
Я думаю автору проще состряпать .appimage, чтобы сильно не привязываться к дистрибутиву. Этот формат таскает свои библиотеки с собой. Я находил пару утилит для этого дела, вот только не понял, как их заставить работать. Я не программист, просто приходится иногда. Вкратце, там вроде проблема с версией системы, на которой собирается пакет.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: как распространяемый пакет создать?
Достаточно компилятору-линкеру указать опцию "-static" и все библиотеки чудесным образом окажутся внутри исполняемого файла.
В случае appimage (как впрочем и установки из исходников) все преимущества пакетных менеджеров сливаются в помойку, а это и контроль целостности файлов с цифровой подписью, и жёсткий учёт файлов (какой файл какому пакеты принадлежит, а какой "залётный") и компактный бэкап системных файлов (только каталог /etc и список установленных пакетов)...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 999
- Зарегистрирован: 19 июл 2018, 07:46
- Репутация: 193
- Откуда: Иркутск
- Контактная информация:
Re: как распространяемый пакет создать?
А можно поподробней? Я так понимаю, что таким образом можно включить свои библиотеки, а как быть с системными?
Я так понимаю, в линуксе основная проблема с запуском левых приложений - именно несоответствие системного окружения между компами на которых происходила сборка и запуск. Можно оставить эту проблему менеджеру пакетов, а можно сделать appimage по типу скачал-запустил. Мне например очень не нравится, когда какая-нибудь мелкая программулька собрана на самых распоследних библиотеках хз зачем, и просто чтобы запустить ее напосмотреть нужно обновлять систему. При этом никакой функционал свежих либ не используется, просто так сложилось, что они были на компе сборщика и их версии забиты гвоздями в приложение.
-
- Мастер
- Сообщения: 999
- Зарегистрирован: 19 июл 2018, 07:46
- Репутация: 193
- Откуда: Иркутск
- Контактная информация:
Re: как распространяемый пакет создать?
Почитал тут немного, тема очень холиварная. Вроде как на свежих дистрибутивах ветер дует в сторону snap.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: как распространяемый пакет создать?
Всё библиотеки.
В доках на конкретный компилятор.
Это проблема не самого Linux, а отсутствие в нём диктатуры как в Windows/MacOS, т.е. любой желающий может выпустить свой собственный дистрибутив со своими особенностями, а пользователи и производители софта сами, без принуждения решают каким дистрибутивом пользоваться и какие дистрибутивы поддерживать в своём софте.
Вам никто не мешает не пользоваться результатом труда такого сборщика и собрать пакет самостоятельно.Kost_irk писал(а): ↑ Мне например очень не нравится, когда какая-нибудь мелкая программулька собрана на самых распоследних библиотеках хз зачем, и просто чтобы запустить ее напосмотреть нужно обновлять систему. При этом никакой функционал свежих либ не используется, просто так сложилось, что они были на компе сборщика и их версии забиты гвоздями в приложение.
Ну или выбрать другой дистрибутив. Например RedHat прямым текстом гарантирует полную бинарную совместимость всех версий пакетов в пределах одной мажорной версии RHEL (и как следствие CentOS).
А для посмотреть можно воспользоваться контейнерами (docker).
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 727
- Зарегистрирован: 18 май 2019, 13:23
- Репутация: 96
- Настоящее имя: Андрей
- Контактная информация:
Re: как распространяемый пакет создать?
это зависит от дистрибутива, а не от левости компа. Во-первых есть два вида дистрибутивов: RPM и DEB. Все остальное - производные от них.
Есть основное ядро системы, оно не зависит от окружения библиотек или софта. Собственно дистрибутив это обертка вокруг ядра.
Поставил ты кеды или гном - никакой разницы для ядра не будет. Для софта - да, потому что будет либо GTK либо Qt (библиотеки графики).
Менеджер пакетов это опять же определенный софт с определенными конфигами где лежат либы, а где конфиги.
а в остальном если закинешь библиотеки в нужные места то даже можно тупо пакет собранные для deb запустить в rpm дистрибутивах. Все равно что софт собранный под XP запускать в 7 - косяки могут быть, но работать будет.
Есть build.opensuse.org который позволяет в окружении заданного дистрибутива собрать пакет "в облаке" с твоим кодом и твоими конфигами. На выходе получишь один пакет который будет согласно конфигам требовать для установки нужные пакеты в свое окружение. В итоге, при установке "своего" пакета будешь получать список зависимостей типа: