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

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

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

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

Сообщение Sharfik » 26.01.2016 13:52:52

Все время на глаза попадались исходники программ под linux, которые собирались непосредственно на месте. При возникновении желания разрабатывать под linux ПО, программист в linux системах вообще может один раз скомпилировать ПО и распространять или под каждый дистрибутив, под каждое оконное решение надо делать свою копию?
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 763
Зарегистрирован: 20.07.2013 01:04:30

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

Сообщение pupsik » 26.01.2016 14:55:08

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

Можно воспользоваться mseide. Один бинарник в лине. Отрисовка не системная.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение Sharfik » 26.01.2016 15:26:08

ок, спасибо.
А отладка и компиляция в случае нашем требует работы под linux, да?
Последний раз редактировалось Sharfik 26.01.2016 15:32:33, всего редактировалось 1 раз.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 763
Зарегистрирован: 20.07.2013 01:04:30

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

Сообщение Mirage » 26.01.2016 15:32:30

Необязательно MSE. fpGUI тоже сам рисует.
А между дистрибутивами у FPC совместимость хорошая.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

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

Сообщение pupsik » 26.01.2016 17:15:39

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

Sharfik если не ошибаюсь: существует кросс-компиляция (не пробовал).
Можно под виртуалкой запускать (бывают артефакты).
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение McLion » 26.01.2016 18:56:53

Открыл Lazarus, написал программу и радуйся. В чем проблема, не пойму вопрос.
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

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

Сообщение Дож » 26.01.2016 19:29:16

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

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

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

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

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

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

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

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

Где отлаживаться зависит от того, что отлаживать. Ясно, что, например, узнать «а программа вообще запустится ли» можно только попытавшись это сделать на настоящем линуксе.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

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

Сообщение slyubez » 26.01.2016 21:32:29

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

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

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

Причем перед релизом правильнее запустить прогу на виртуалке со свежеустановленным пингвином, чтобы не облажаться из-за отсутствия в установочном пакете тех или иных блюмблятек.
slyubez
постоялец
 
Сообщения: 173
Зарегистрирован: 31.03.2015 08:44:07

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

Сообщение Mirage » 27.01.2016 00:47:28

Можно грузиться с live cd в виртуалке. И ставить не надо и дистрибутивов на одну виртуалку много. Но для автотестов лучше виртуалки настроить.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

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

Сообщение Sharfik » 27.01.2016 11:50:30

Авто тесты вообще делать не умею)
В остальном спасибо)
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 763
Зарегистрирован: 20.07.2013 01:04:30

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

Сообщение Лапчатый » 12.02.2016 01:20:18

И ещё один вопрос в тему.
Сварганил я для себя небольшую консольную утилиту. Ни от чего не зависит.
Распространять пока не планирую.
Поэтому просто скопировал бинарь в /usr/local/bin. Посредством sudo, есссно.
Во всяком случае, так работает.
Но правильно ли это? Если нет, то как надо правильно?
Аватара пользователя
Лапчатый
незнакомец
 
Сообщения: 7
Зарегистрирован: 10.01.2016 01:02:14

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

Сообщение Дож » 12.02.2016 12:16:12

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

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

Если предполагается, что пользоваться бинарём будут многие пользователи (реальные или системные), то, действительно, стоит класть в глобальное место, но наиболее предусмотренное для этого места, мне кажется, может варироваться от одного дистрибутива линукса к другому. Я бы просто создал свою корневую директорию /doj/bin/ и туда складывал бы всё своё глобальное.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

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

Сообщение Лапчатый » 12.02.2016 14:01:56

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

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

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

Сообщение bormant » 13.02.2016 18:28:49

Дож,
это плохой совет, он целиком поперек FHS -- filesystem hierarchy standard.
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

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

Сообщение Sharfik » 13.02.2016 23:14:40

Когда разбирался в первый раз с линуксом, то что то вроде такого списка находил.
Ясно и понятно, что куда и зачем. Потом оказалось, что разработчикам дистрибутивов на систематизацию подобную плевать, и на дистрибутивах, кто я пробовал ставить это выполнялось условно. mnt черти где был в ASP :(
Я так понимаю путь один следует рассматривать - /usr/bin/
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 763
Зарегистрирован: 20.07.2013 01:04:30

След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28

Рейтинг@Mail.ru