Восстановить оригинал файл из файлов сравнения для экономии места на диске

База данных зависимостей RPM не может сказать, что вы установили пакет из исходного кода. База данных RPM знает только о метаданных, присутствующих в пакетах RPM, пакет, установленный из источника, не содержит этих метаданных.

Некоторые сценарии configure, которые собирают пакет из исходного кода, создают pkg-config , который представляет собой метаданные об установленном пакете. Тем не менее, нет четкой интеграции между метаданными из pkg-config и метаданными RPM (или метаданными DEB , или метаданными pacman ). При упаковке дистрибутива упаковщики вставляют метаданные в определенном формате в пакеты (например, пакеты RPM), и эти метаданные используются для определения зависимостей. Не метаданные в какой-либо другой форме.

С другой стороны, в одной системе могут быть разные версии библиотеки. По умолчанию (т.е. согласно стандартам кодирования GNU , которым следует большинство пакетов) сценарий configure должен устанавливать свои продукты в / usr / local .В то время как пакеты, упакованные дистрибутивом (например, RPM ), должны устанавливать свое содержимое в / usr .

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

Когда RPM недоступен, вы можете создать его самостоятельно. Для этого вам нужно собрать пакет / библиотеку из исходного кода и установить его в фиктивное место (корень сборки). Затем предоставьте метаданные, необходимые для пакета RPM, и упакуйте их в файл RPM. В TLDP есть устаревшее, но очень подробное руководство по созданию RPM .

3
14.09.2015, 16:21
0 ответов

Теги

Похожие вопросы