Распространение в linux программ на FPC

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Ответить
grot
новенький
Сообщения: 82
Зарегистрирован: 13.02.2010 15:33:03

Распространение в linux программ на FPC

Сообщение grot »

Всем привет !

Кто-нибудь пробовал распространять откомпилированные программы на FPC для linux ?

Помнится лет 10 назад мне удавалось успешно запускать консольные приложения ( статически скомпилированные или с минимальными зависимостями ).
Компилировал на AspLinux(RedHat compatible) 32-bit - успешно запускал на Debian !

Сейчас откомпилировал на 64-bit CentOS 7 (статически) простое консольное 64-bit "Hello, World !" -
на 64-bit Debian не запускается с какой-то абсолютно невнятной Run-time error...

Что делать и кто виноват ?
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Сообщение Ichthyander »

Компилировал на 64-битном убунту и запускал на 64-битном Debian сервере. ТАкже делал кросс-компиляцию на Linux из Windows и также запускал на десктопах Ubuntu и серверах Debian.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

В последней бубунте не пробовал. Но года назад собранные бинарнике в федоре прекрасно работали в бубнте.
wavebvg
постоялец
Сообщения: 355
Зарегистрирован: 28.02.2008 03:57:35

Сообщение wavebvg »

grot писал(а):Сейчас откомпилировал на 64-bit CentOS 7 (статически) простое консольное 64-bit "Hello, World !" -
на 64-bit Debian не запускается с какой-то абсолютно невнятной Run-time error...
Транк? Не удивляйтесь, там часто ломают и быстро ремонтируют. Да, привязки к libc нет, можно, при желании, и на системе 2001 года запустить...
grot
новенький
Сообщения: 82
Зарегистрирован: 13.02.2010 15:33:03

Сообщение grot »

wavebvg писал(а):
grot писал(а):Сейчас откомпилировал на 64-bit CentOS 7 (статически) простое консольное 64-bit "Hello, World !" -
на 64-bit Debian не запускается с какой-то абсолютно невнятной Run-time error...
Транк? Не удивляйтесь, там часто ломают и быстро ремонтируют. Да, привязки к libc нет, можно, при желании, и на системе 2001 года запустить...

Нет, это на старом-добром fpc 2.6.4

А пытаюсь запустить у "хостера" - это откомпилированный cgi-bin модуль.
Сильно подозреваю, что там "закручена" безопасность "на выполнение" приложения ...
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Сообщение Ichthyander »

Там еще может быть много чего... Права на исполняемый файл не так прописали. Расширение не то. К примеру, когда я пробовал запустить fast-cgi на сервере, то выяснилось, что апач нельзя запускать в режиме mpm-itk, как я привык это делать всегда до этого. Попробуйте запускать любое другое приложение CGI, которое гарантировано должно на этом сервере запустится или попробуйте запустить на сервере, на котором точно запустится Ваше cgi-приложение. Скорее всего дело не в компиляторе. Да, и у Вас случайно не виртуальный shared-хостинг? Тогда точно не будет запускаться
grot
новенький
Сообщения: 82
Зарегистрирован: 13.02.2010 15:33:03

Сообщение grot »

Ichthyander писал(а):...Да, и у Вас случайно не виртуальный shared-хостинг? Тогда точно не будет запускаться


Да, это shared-хостинг ...

Помимо cgi-bin модуля, пробовал и обычное консольное "Hello, World !"
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Сообщение Ichthyander »

На виртуальных хостингах из соображений безопасности бинарники, как минимум, не будут работать. Скипты CGI только на некоторых будут запускаться после соответствующих настроек.
Просто арендуйте виртуальный или выделенный сервер. Они по цене как виртуальные хостинги. Я к примеру, на Hetzner беру, там дешевеле всего, дешевле чем у нас в РФ виртуальные shared хостинги и при этом нагрузку держат.
olegy123
долгожитель
Сообщения: 1643
Зарегистрирован: 25.02.2016 11:10:20

Сообщение olegy123 »

grot писал(а):Сейчас откомпилировал на 64-bit CentOS 7 (статически) простое консольное 64-bit "Hello, World !" -
на 64-bit Debian не запускается с какой-то абсолютно невнятной Run-time error...

Что делать и кто виноват ?
Линух 8) гарантирует что вызовы ядра будут общими.. Все. Остальное как в игре выживалки, как жить в этом мире зависит от вас.

Сейчас ходил к одним, они спрашивали меня как так производитель дает сырое ядро.. куча скриптов которые не работают. На что я сказал, что они выполнили пункт об GPL. Дальше вы берете "руки в ноги" и клепаете на свой страх и риск. Ну либо ищите специалистов здесь или там..

Вот такие "страх и ненависть" в корпоративной среде с OpenSource.
grot
новенький
Сообщения: 82
Зарегистрирован: 13.02.2010 15:33:03

Сообщение grot »

Ichthyander писал(а):...Просто арендуйте виртуальный или выделенный сервер...


Да есть у меня своих несколько VPS...

Просто прощупываю почву для некого решения для широких слоев пользователей, сидящих, обычно, на shared-hosting ...
olegy123
долгожитель
Сообщения: 1643
Зарегистрирован: 25.02.2016 11:10:20

Сообщение olegy123 »

grot писал(а):Просто прощупываю почву для некого решения для широких слоев пользователей, сидящих, обычно, на shared-hosting ...
тогда имеет смысл линковать библиотеки статически.
Когда все будет находится в exe-нике.
Аватара пользователя
wofs
постоялец
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань
Контактная информация:

Сообщение wofs »

На самом деле варианта 2 - один тру, другой не очень тру :)
Вариант 1 (тру). Собрать пакет под целевую систему. В нем вы пропишете все требуемые зависимости и установщик автоматически все подтянет и поставит.
Вариант 2 (не очень тру). Создать .sh скрипт. Нечто вроде конфигурационного скрипта, который при первом запуске будет проверять наличие требуемых зависимостей и доставлять (или предупреждать) отсутствующие.

Первый вариант для Linux предпочтителен. Тем более, что собрать пакет не так уж и сложно.
Из опыта пользования Linux скажу, что сколь-нибудь сложные приложения не стоит распространять в так называемом portable варианте (читай вариант 3) - зачастую вместо двойного клика на пакете (или $sudo dpkg -i myprogram.deb) приходится плясать с бубном для запуска приложения.
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Сообщение Ichthyander »

Вставлю свою копейку )
По поводу 3-ех вариантов: с библиотеками или без, на виртуальном shared хостинге у него бинарники не запустятся. Скорее всего без вариантов.
А на сервере запустятся, думаю без проблем. Для широких слоев населения бинарник на сервер не лучшее решение. Если же эти "слои" пользователей достаточно продвинутые, то они могут поднять и админить виртуальный, как минимум, сервер.
Ответить