Есть ли способ специально установить в путь /usr /local с помощью apt-get? Я использую Linux Mint 16, и я хочу установить некоторые библиотеки по этому пути. Все мои установленные библиотеки установлены в /usr /, и только некоторые из них доступны в /usr /local

Мне удалось установить библиотеку boost с помощью файла tar.gz, но есть ли способ сделать это с помощью apt-get install?

2 ответа2

3

Там не должно быть никакого способа сделать это, см. Этот ответ

Это связано с тем, что Стандарт Иерархии Файловых Систем явно резервирует /usr/local/ для программ и данных, используемых в масштабе всей системы, но устанавливаемых локально системным администратором. Пожалуйста, найдите время, чтобы прочитать этот FHS (который также предоставляет обоснование).

BT, вы часто не можете переместить двоичный файл и связанные данные, потому что большинство программ содержат встроенные пути к файлам. На практике, чтобы установить их в /usr/local/ вам, как правило, потребуется переконфигурировать и перекомпилировать их.

Таким образом, установочный файл пакета .deb в /usr/local/ будет противоречить соглашениям и стандартам.

1

Нет, и тебе не нужно.

Цель /usr/local - отличить программное обеспечение, которое было скомпилировано и установлено локальным администратором, от программного обеспечения, распространяемого с системой (то есть, программного обеспечения, которое можно установить через apt-get).

Устанавливая неупакованное программное обеспечение в /usr , вы рискуете вызвать конфликты, которые могут даже привести к сбою системных пакетов без видимой причины (например, если вы перезаписываете библиотеку более новой версией или несовместимой сборкой).

Сопровождающие пакетов должны выполнить большую дополнительную работу при компиляции пакета, чтобы гарантировать его безупречную работу при каждой установке и независимо от того, какие другие пакеты установлены. Это возможно только тогда, когда они могут просматривать репозиторий пакетов и знать любой другой пакет, который потенциально может быть установлен. (На практике они могут касаться только небольшого подмножества пакетов; например, таких как цепочка инструментов libc и библиотеки SDL.)

Сама компиляция пакетов (для сравнения) быстрая и свободная: вам не нужно максимизировать переносимость; вы просто хотите, чтобы он работал и работал на вашей машине. Вам не важно, есть ли какие-либо несовместимости с содержимым в /usr , так как он не будет перезаписан, и вы можете установить несовместимую копию любой библиотеки, если вы остаетесь в /usr/local . У вас могут быть даже очень специфические требования (например, использование специального набора инструкций вашей машины для повышения производительности), которые не применяются к другим пользователям вашего дистрибутива Linux. И, если он несовместим с каким-либо другим программным обеспечением, которое вы еще не установили, вы будете иметь дело с этим при попытке установить новое программное обеспечение, а не заранее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .