RPM dice que falta la dependencia pero ya he instalado esa biblioteca (de la fuente)

Al instalar un package rpm , advierte que falta una biblioteca dependiente necesaria. De hecho, ya instalé esa biblioteca desde el origen, así que supongo que las rpm simplemente no lo saben.

Entonces, ¿puedo dejar que rpm conozca la biblioteca existente, y cómo? ¿Tal vez agregar algún código en un file de configuration de rpm ?

Por cierto, la installation de la biblioteca faltante (otra vez) por rpm puede resolver el problema (rápidamente), pero en algún momento no hay una versión disponible.

La database de dependencia de RPM no puede decir que instaló un package desde el origen. La database RPM solo conoce los metadatos presentes en los packages RPM, un package instalado desde el origen no contiene estos metadatos.

Algunas configuraciones de scripts que crean un package desde el origen producirán pkg-config , que son metadatos sobre el package instalado. Sin embargo, no existe una integración nítida entre los metadatos de pkg-config y los metadatos RPM (o metadatos DEB o metadatos de pacman ). Al empaquetar una distribución, los empaquetadores insertan los metadatos en un formatting específico en los packages (por ejemplo, packages RPM) y los metadatos son los que se usan para determinar las dependencies. No metadatos provistos de ninguna otra forma.

Por otro lado, puede tener diferentes versiones de una biblioteca en el mismo sistema. Por defecto (es decir, de acuerdo con los estándares de encoding GNU que siguen la mayoría de los packages), un script de configure debe instalar su producto en /usr/local . Si bien los packages empaquetados por la distribución (por ejemplo, RPM ) deben instalar su contenido en /usr .

Por lo tanto, si sigue la convención (llamada FHS ) y mantiene los packages / bibliotecas instalados desde el origen en /usr/local , instalar la misma biblioteca a través de RPM no entrará en conflicto con su biblioteca (ya que los empaquetadores de la distribución siguen FHS).

Cuando no hay RPM disponible, puede buildlo usted mismo. Para eso necesita build el package / biblioteca desde el origen e instalarlo en un lugar ficticio (una raíz de compilation). A continuación, proporcione los metadatos necesarios para el package RPM y empaquételo en un file RPM. TLDP tiene una guía anticuada pero muy completa sobre la creación de RPM .

Esa es una buena razón para apegarse a los gerentes de packages como yum , o en el peor de los casos a rpm pero evite instalar desde el origen.

La solución sería, por lo tanto, instalar esa dependencia faltante con un package RPM. Sería una buena idea eliminar primero el que instaló de la fuente, pero a veces puede ser un poco difícil.