У меня есть свои собственные заголовочные файлы и библиотеки, которые я не хочу копировать для каждого нового проекта, так как это делает исправляющие ошибки или добавляющий новые опции к библиотеке трудный. Таким образом, я хочу поместить их в 'общедоступный' каталог как /usr/include
или /usr/local/include
и их дубликаты библиотеки, но я не знаю, где я смешиваю с системой! Я мог создать свой собственный каталог и указать его с каждой компиляцией, но это является громоздким. Куда я могу поместить те файлы? Я нашел вопрос об этом, где ответ /usr/local/include
, но я считал где-нибудь, что это используется для диспетчера пакетов, который верен?
Я создал соглашение создания нового локального каталога в/usr/local., таким образом, это-/usr/local/local/lib для меня. Это позволяет другим разработчикам выпускать свой материал в/usr/local, и Вы тогда не получаете столкновений имени файла. Если Вы тогда хотите опубликовать, и перемещать Ваш материал в/usr/local/lib и/usr/local/include Вы, возможно, должны сделать смену имени через все свои исходные файлы и make-файлы, которые будут болью, но sed поможет, если Вы будете заботиться и будете соблюдать осторожность. Когда у Вас есть библиотеки в/usr/local/lib или любом, где это нестандартно, необходимо установить переменную среды LD_LIBRARY_PATH, так выполняющие программы знают, где надеяться связывать себя.
Если приложения должны быть использованы всем пользователем в системе, /usr/local
, дерево является идеальным местом; никакой пакет не должен помещать файлы там (это для программного обеспечения, которое Вы компилируете сами), но каталог /usr/local/lib
находится в пути по умолчанию для dinamyc загрузчика. (см. /etc/ld.so.conf.d/libc.conf
).
я обычно даже перемещаюсь /usr/local
дерево под /home
(только путем перемещения каталога /usr/local
в /home/local
, и затем symlinking /usr/local -> /home/local
) так, чтобы это выжило, полное переустанавливают (1).
, Если приложения только для Вашего пользователя, я обычно создаю $HOME/lib
, $HOME/include
и затем играю с переменными среды или флагами компилятора для указания им.
<час> Сноски
(1) я обычно устанавливаю /
и /home
на отдельных разделах, но это - очень личный выбор.