
Если бы мне пришлось писать библиотеку для языка, несовместимого с C (например, D), где лучше всего установить мои «заголовочные файлы»?
usr/include
Кажется, это плохая идея, поскольку FHS говорит, что это для «заголовочных файлов, включаемых программами на языке C».
решение1
Вы сами определяете свои условности, но я бы действительно держался подальше от /usr/include
.
/usr/lib/<lang>
кажется популярным здесь для интерпретируемых языков (по крайней мере, у меня есть /usr/lib/python
, /usr/lib/perl
и /usr/lib/ruby
с вариантами для обработки специфичных для версии вещей) Я думаю, что это /usr/share/<lang>
более правильно с точки зрения FHS (у меня также есть /usr/share/tcl
символическая ссылка из /usr/lib/tcl
), если там нет двоичных данных (или, по крайней мере, только архитектурно-независимые двоичные данные).
Оставаясь в духе FHS, я бы предпочел использовать /opt/<lang>/share
или /opt/<lang>/lib
, предоставив установщику (или дистрибутиву) простой способ использования /usr/share/<lang>
или /usr/lib/<lang>
.
решение2
Я бы сказал, /usr/local/include/
для ваших собственных дополнений.Стандарт иерархии файловой системы Linux