Является ли общепринятой практикой размещение заголовков в /usr/include и помещение кода, созданного иностранным пользователем, в /usr/local/lib, когда кто-то хочет написать набор инструментов?
Другими словами: нужно ли создавать статическую / разделяемую библиотеку для каждого инструмента, который я пишу, помещать эту библиотеку в один из путей по умолчанию для библиотеки и ее заголовки в путь по умолчанию для включения?
В его нынешнем виде у меня есть заголовки в пути включения по умолчанию, а также исходные файлы.
Я прошу прощения, если это глупый вопрос, но я новичок в этой среде, но, посмотрев на некоторые из моих пакетов дистрибутивов, похоже, что это так.
1 ответ
Вы должны изучить стандарт иерархии файловой системы (FHS). В частности, раздел о /usr/local
иерархия. Т.е. ваша система сборки должна установить
- заголовки где-то под
/usr/local/include
- библиотеки в
/usr/local/lib
- публичные двоичные файлы в
/usr/local/bin
- системные двоичные файлы в
/usr/local/sbin
(обычно только программы, которые требуют административных привилегий) - конфигурационные файлы в
/usr/local/etc
- независимые от архитектуры данные в
/usr/local/share
- man-страницы в
/usr/local/man
ИМХО, наиболее полезно следовать соглашениям GNU Makefile при создании системы сборки, позволяя пользователям согласованно настраивать каталоги установки. Кроме того, ваша система сборки должна поддерживать DESTDIR
переменная, позволяющая пользователю выполнять установку в зоне подготовки (например, для целей упаковки).