2013-08-29 3 views
0

Я создаю приложение, которое будет работать в системе Linux. В настоящее время процесс сборки состоит из простого Makefile, который уже слишком сложный.Основы разработки и развертывания приложения Linux

Теперь я догадываюсь, что мне не хватает базового понимания того, как правильно разработать приложение Linux. Информация Я нашел:

  • Приложение должно каким-то образом иметь цель make install, которая перемещает все файлы в нужное место.
  • Обычные места для установки приложения: /usr/bin или /usr/local/bin.
  • Файлы данных должны быть помещены в /usr/share или /usr/local/share соответственно. Нужно иметь возможность настроить префикс пути где-то в процессе сборки.

Имея эту информацию, я теперь интересно:

  • Как настроить префикс правильно: Если процесс сборки взять путь в качестве параметра и жёстко, что в коде? Это также жизненно важно для тестирования - я должен каким-то образом создать исполняемый двоичный файл, который просто использует файлы данных из исходной папки, не требуя, чтобы все было установлено где-то.
  • Должен ли я использовать autotools или cmake или что-то еще? autotools по крайней мере, кажется, не просто система сборки, но также обрабатывает конфигурацию префикса и т. д. Это верно? Как сравнивать cmake?
  • Это контрактная работа, должен ли я действительно заботиться об этих вещах? Приложение будет работать только в системах клиента, которые четко определены, поэтому я мог бы избавиться от предоставления папки, содержащей все необходимые файлы, и приложение могло быть выполнено из этой папки.

Таким образом, я в основном ищу хорошие ресурсы, которые дают мне обзор возможностей и общей практики, а также позволяют мне принять обоснованное решение о том, как и как настроить процесс сборки и развертывания.

+0

Использование autotools/cmake/etc. значительно упрощает часть вашего процесса и включает флаги, чтобы помочь с установкой инсталляционных префиксов. Какая система для использования в значительной степени зависит от личного вкуса. Я использовал как autotools, так и cmake, и нашел их в значительной степени эквивалентными по функциональности. –

ответ

1

У вас обычно есть сценарий ./configure для запуска до его создания. Этот скрипт предназначен для проверки зависимостей. Установка времени компиляции для изменения конкретных проектов и т. Д. Это также место, где можно установить префикс, обычно вы должны установить его в/usr/local, если префикс не указан.

Если вы позже создали пакеты (* .rpm, * .deb ...) для некоторых дистрибутивов, вы обычно используете префикс/usr/as.

Как безумно писать полную ./configure вручную, широко используются gnu autotools. Они немного напуганы некоторой болью в начале, но делают действительно хорошую работу.

Вы могли бы взглянуть на некоторые учебники, как: http://markuskimius.wikidot.com/programming:tut:autotools/

Я ничего не могу сказать о CMake, так как у меня нет никакого опыта с этим.

Что касается последнего вопроса:

Это рабочий контракт, я должен действительно заботиться об этих вещах?Приложение будет работать только в системах клиента, которые четко определены, поэтому я мог бы избавиться от предоставления папки, содержащей все необходимые файлы, и приложение могло быть выполнено из этой папки.

ДА, вы должны заботиться об этом. В случае обновлений и обновления это упростит вашу жизнь.

+0

Я закончил тем, что написал собственный скрипт configure в Python по нескольким причинам, в основном по гибкости. Посмотрев как на autotools, так и на cmake, они оба не сделали впечатление, чтобы оно соответствовало моим потребностям. – flyx

Смежные вопросы