Как делать программы под Linux?

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Аватара пользователя
Sharfik
энтузиаст
Сообщения: 836
Зарегистрирован: 20.07.2013 01:04:30

Как делать программы под Linux?

Сообщение Sharfik »

Все время на глаза попадались исходники программ под linux, которые собирались непосредственно на месте. При возникновении желания разрабатывать под linux ПО, программист в linux системах вообще может один раз скомпилировать ПО и распространять или под каждый дистрибутив, под каждое оконное решение надо делать свою копию?
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Re: Как делать программы под Linux?

Сообщение pupsik »

в лине два варианта: qt и gtk.
Отсюда вывод: пишем или под то, или под другое, или 2 бинарника под оба ДЕ.
Дистры не сильно влияют. Правда, иногда, бывают казусы.

Можно воспользоваться mseide. Один бинарник в лине. Отрисовка не системная.
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 836
Зарегистрирован: 20.07.2013 01:04:30

Re: Как делать программы под Linux?

Сообщение Sharfik »

ок, спасибо.
А отладка и компиляция в случае нашем требует работы под linux, да?
Последний раз редактировалось Sharfik 26.01.2016 14:32:33, всего редактировалось 1 раз.
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Re: Как делать программы под Linux?

Сообщение Mirage »

Необязательно MSE. fpGUI тоже сам рисует.
А между дистрибутивами у FPC совместимость хорошая.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Re: Как делать программы под Linux?

Сообщение pupsik »

Mirage пробовал я fpGUI.... Уж не знаю откуда у меня руки. МСЕ - более адекватен. Поэтому и не написал о нем.

Sharfik если не ошибаюсь: существует кросс-компиляция (не пробовал).
Можно под виртуалкой запускать (бывают артефакты).
Аватара пользователя
McLion
постоялец
Сообщения: 332
Зарегистрирован: 06.02.2015 17:41:00

Re: Как делать программы под Linux?

Сообщение McLion »

Открыл Lazarus, написал программу и радуйся. В чем проблема, не пойму вопрос.
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Re: Как делать программы под Linux?

Сообщение Дож »

Sharfik писал(а):Все время на глаза попадались исходники программ под linux, которые собирались непосредственно на месте. При возникновении желания разрабатывать под linux ПО, программист в linux системах вообще может один раз скомпилировать ПО и распространять или под каждый дистрибутив, под каждое оконное решение надо делать свою копию?

В линуксе всё довольно хитро с этим. Нужно учитывать архитектуру процессора, зависимость от внешних библиотек, версии ядра и т.д.

Отдельный бинарь скомпилирован под определённую архитектуру (intel/arm, 32/64), под непредназначенной не запустится. Если 64битный линукс донастроить, то в нём можно запустить 32битное приложение, но просто так не получится.

На тему зависимостей — лучше вообще не зависить от внешних библиотек и всё носить в себе, это даст максимально возможную переносимость. (Но это недостижимый идеал.) Иначе нужно следить за тем, чтобы используемые библиотеки были установлены в системе, они были правильно версии, всегда и везде правильно доступны из программы и т.д.

С версией ядра всё понятно — нужно по-максимуму соблюдать стандарты и не использовать особенности конкретных дистрибутивов.

Если аккуратно учесть все эти факторы, то можно получить переносимый между машинами одной архитектуры бинарь.

А отладка и компиляция в случае нашем требует работы под linux, да?

Скомпилировать бинарь можно где угодно («кросскомпиляция»). Мне кажется, что уже сам факт того, что бинарь собран кросскомпилятором говорит о том, что бинарь не привязан к чему-то совсем специфичному.

Где отлаживаться зависит от того, что отлаживать. Ясно, что, например, узнать «а программа вообще запустится ли» можно только попытавшись это сделать на настоящем линуксе.
slyubez
постоялец
Сообщения: 185
Зарегистрирован: 31.03.2015 07:44:07

Re: Как делать программы под Linux?

Сообщение slyubez »

в лине два варианта: qt и gtk.

Побольше, учитывая разность в версиях QT и GTK.

Ясно, что, например, узнать «а программа вообще запустится ли» можно только попытавшись это сделать на настоящем линуксе.

Причем перед релизом правильнее запустить прогу на виртуалке со свежеустановленным пингвином, чтобы не облажаться из-за отсутствия в установочном пакете тех или иных блюмблятек.
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Re: Как делать программы под Linux?

Сообщение Mirage »

Можно грузиться с live cd в виртуалке. И ставить не надо и дистрибутивов на одну виртуалку много. Но для автотестов лучше виртуалки настроить.
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 836
Зарегистрирован: 20.07.2013 01:04:30

Re: Как делать программы под Linux?

Сообщение Sharfik »

Авто тесты вообще делать не умею)
В остальном спасибо)
Аватара пользователя
Лапчатый
незнакомец
Сообщения: 7
Зарегистрирован: 10.01.2016 00:02:14

Re: Как делать программы под Linux?

Сообщение Лапчатый »

И ещё один вопрос в тему.
Сварганил я для себя небольшую консольную утилиту. Ни от чего не зависит.
Распространять пока не планирую.
Поэтому просто скопировал бинарь в /usr/local/bin. Посредством sudo, есссно.
Во всяком случае, так работает.
Но правильно ли это? Если нет, то как надо правильно?
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Re: Как делать программы под Linux?

Сообщение Дож »

Тут лучше мыслить категориями удобно/неудобно (исходя из задачи) и принято/не принято.

Если пользоваться программой будет только один пользователь (Вы), то обычно принято класть бинарь себе в $HOME/bin/ — тут и с правами всё ок, и вызываться будет для данного пользователя, и нигде в конфликт с установленными из пакетов бинарями не войдёт.

Если предполагается, что пользоваться бинарём будут многие пользователи (реальные или системные), то, действительно, стоит класть в глобальное место, но наиболее предусмотренное для этого места, мне кажется, может варироваться от одного дистрибутива линукса к другому. Я бы просто создал свою корневую директорию /doj/bin/ и туда складывал бы всё своё глобальное.
Аватара пользователя
Лапчатый
незнакомец
Сообщения: 7
Зарегистрирован: 10.01.2016 00:02:14

Re: Как делать программы под Linux?

Сообщение Лапчатый »

Дож писал(а):Я бы просто создал свою корневую директорию /doj/bin/ и туда складывал бы всё своё глобальное.

Спасибо.
Может, я бы так и сделал, но тогда пришлось бы добавлять каталог в переменную окружения PATH.
Стрёмно, так как не настолько хорошо пока освоил администрирование Линуха.
Да, кстати. Моя самодельная утилита предназначена для пользования всеми юзерами компутера.
Аватара пользователя
bormant
постоялец
Сообщения: 408
Зарегистрирован: 21.03.2012 11:26:01

Re: Как делать программы под Linux?

Сообщение bormant »

Дож,
это плохой совет, он целиком поперек FHS -- filesystem hierarchy standard.
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 836
Зарегистрирован: 20.07.2013 01:04:30

Re: Как делать программы под Linux?

Сообщение Sharfik »

Когда разбирался в первый раз с линуксом, то что то вроде такого списка находил.
Ясно и понятно, что куда и зачем. Потом оказалось, что разработчикам дистрибутивов на систематизацию подобную плевать, и на дистрибутивах, кто я пробовал ставить это выполнялось условно. mnt черти где был в ASP :(
Я так понимаю путь один следует рассматривать - /usr/bin/
Ответить