Considere ajustar la variable de entorno PKG_CONFIG_PATH si instaló software en un prefijo no estándar. Qué significa esto ?
pkg-config
MKJ
fuente
fuente

Respuestas:
PKG_CONFIG_PATHes una variable de entorno que especifica rutas adicionales en las quepkg-configbuscará sus archivos .pc.Esta variable se utiliza para aumentar la ruta de búsqueda predeterminada de pkg-config. En un sistema Unix típico, buscará en los directorios
/usr/lib/pkgconfigy/usr/share/pkgconfig. Esto generalmente cubrirá los módulos instalados en el sistema. Sin embargo, algunos módulos locales pueden instalarse en un prefijo diferente como/usr/local. En ese caso, es necesario anteponer la ruta de búsqueda para que pkg-config pueda localizar los archivos .pc.El
pkg-configprograma se utiliza para recuperar información sobre bibliotecas instaladas en el sistema. El uso principal depkg-configes proporcionar los detalles necesarios para compilar y vincular un programa a una biblioteca. Estos metadatos se almacenan en archivos pkg-config. Estos archivos tienen el sufijo .pc y residen en ubicaciones específicas conocidas por la herramienta pkg-config.Para verificar el
PKG_CONFIG_PATHvalor use este comando:Para establecer el
PKG_CONFIG_PATHvalor use:o
fuente
La primera respuesta no es técnicamente lo suficientemente explícita. Desde la página del manual (abra una terminal, escriba
man pkg-config):Entonces el
pkg-configprograma no está en elPKG_CONFIG_PATHdirectorio; sin embargo, si instala una biblioteca, para que la información para usarla en unautomakescript sea accesible, debe estar en un directorio quepkg-configtenga en cuenta.fuente
/usr/local/lib/x86_64-linux-gnulanzan como una ubicación de búsqueda automática de forma gratuita (con un vacíoPKG_CONFIG_PATH) y, de hecho, muchos.pcarchivos, notables, incluidos GTK + et al. - vivir allí. La razón de esto es permitir la disponibilidad de múltiples arquitecturas de un paquete simultáneamente, como se describe aquí: askubuntu.com/questions/449348/…pkg-configbuscarán en su sistema: askubuntu.com/a/373217/436580Para ver dónde pkg-config (versión 0.24 o posterior) busca las bibliotecas instaladas de forma predeterminada, use el siguiente comando:
Para modificar esa ruta, establezca la
PKG_CONFIG_PATHvariable de entorno. El archivo man indicaPKG_CONFIG_PATH:fuente
echo $(pkg-config --variable pc_path pkg-config)${PKG_CONFIG_PATH:+:}${PKG_CONFIG_PATH}PKG_CONFIG_PATHy aún tener directorios de búsqueda predeterminados, además de establecer un valor no en blanco no borra los valores predeterminados.Estás tratando de construir una pieza de software, digamos Widget. Widget se basa en otra biblioteca, libcog en aras de la discusión. El proceso de compilación del widget (probablemente un script de configuración) está usando pkg-config para determinar cómo usar libcog. pkg-config no sabe nada sobre libcog.
Si libcog no está instalado, ese es tu problema. Existe una buena posibilidad de que una instalación estándar de libcog solucione el problema. Dependiendo de su sistema, es posible que necesite instalar una versión adicional de "desarrollador" del paquete; a menudo tiene "-devel" o "-dev" al final, por lo que si instala "libcog", es posible que también necesite instalar "libcog-devel".
Si libcog está instalado, probablemente no esté instalado de manera que pkg-config pueda encontrarlo. Probablemente haya un archivo libcog.pc en algún lugar de su sistema. En aras de la discusión, está en /opt/cog/lib/pkgconfig/libcog.pc. En ese caso, puede informarle a pkg-config al configurar PKG_CONFIG_PATH en el directorio que contiene libcog.pc. Entonces, en un shell Bourne o similar, algo así como
Una vez hecho esto, volver a ejecutar el comando que falló con suerte funcionará.
Si está instalado libcog, incluidas las bibliotecas y los archivos de encabezado, y no tiene un archivo libcog.pc, las cosas van mal. Presumiblemente, una instalación estándar de libcog incluye la información, de lo contrario, Widget no confiaría en ella. Primero investigaría reinstalar libcog. Es posible crear manualmente el archivo libcog.pc, pero hacerlo bien es difícil y altamente específico para una biblioteca determinada.
fuente
Miré la página de manual de mi sistema de 64 bits y me confundí un poco. Decía en una línea:
Supuse que siempre se ve en los directorios lib / pkgconfig. Resulta que son los directorios mismos. En mi caso, estaba tratando de compilar el tutorial hello world gtk. Localizo el archivo que quiero, por ejemplo
Entre los resultados están:
Finalmente fue para hacer una exportación.
fuente
manpágina se simplifica demasiado para los sistemas modernos con capacidad de arquitectura múltiple. Estuve confundido por un tiempo porque, en Debian 8 x86,pkg-configya se ve en la carpeta x86_64 (sin nadaPKG_CONFIG_PATH). No estoy seguro de cómo se incorporó esto, pero la línea de comando para probar esto que muestra @GrandAdmiral indica que está controlado por el--variable pc_pathque está configurado (¡de alguna manera!) Parapkg-configel propio paquete.Me parece que la mayoría de las respuestas tienen demasiada información de la necesaria.
El software que se instala puede (y generalmente lo hace) depender de algunas bibliotecas y / o encabezados y el Sistema usa pkg-config para encontrarlos.
Dicho esto,
pkg-configbusca estos archivos en los directorios del sistema predefinidos (predeterminados). Esas carpetas son "prefijo". Por ejemplo,/usr/localse espera que una biblioteca que tenga prefijo tenga encabezados/usr/local/include, y la biblioteca en sí estará/usr/local/lib. Sin embargo, pkg-config busca bibliotecas también en el directorio listado en la variable de entorno PKG_CONFIG_PATH .Luego, si instala software fuera de la lista predeterminada de carpetas, debe "ajustar" la lista, es decir, agregar sus directorios a PKG_CONFIG_PATH
Para más información, puedes mirar aquí y aquí
fuente
PKG_CONFIG_PATHespecifica directorios adicionales en los que buscar solo archivosyourPkg.pc(pkg-configespecificación). No afecta a cosas específicas de pkg como directorios de búsqueda de biblioteca.Significa que está tratando de construir algo desde la fuente, y no puede encontrar todas las dependencias que necesita. El
pkg-configscript que utiliza para encontrar los archivos de desarrollo para esas bibliotecas, genera este mensaje.fuente
Estaba tratando de instalar la última versión de axel y corrí
./configurey obtuve esto:Entonces intenté:
y obtuve:
Como es obvio, tenía openssl instalado (
sudo apt-get install openssl) Pero en el resultado anterior, como puede ver, dice "No se encontró el paquete 'openssl'". Entonces, para asegurarme de que lo hice:Resulta que necesito otro paquete seguro, así que busqué un poco en Google y descubrí que tenía que instalar este paquete:
Y todo esto no tuvo nada que ver con el cambio de la variable env de la ruta pkg-config.
fuente
Aquellos que usan https://github.com/confluentinc/confluent-kafka-go
Siga la instalación de librdkafka
Ahora puedes usar go install / go run go build
fuente