CentOS logo
Acerca de este sitio Mis notas sobre la instalación y uso de jq.

Índice

  1. Introducción
  2. Instalación y actualización.
  3. Referencias.

Introducción

Descubrí esta utilería por la necesidad de procesar archivos cuyo contenido fue organizado empleando la notación JSON1.

En caso de que algo en esta página o sitio resulte de su interés para ser incluido como referencia, favor de considerar las indicaciones generales que señalo al final de ésta página, así como las recomendaciones sobre citado y atribución. Asimismo, téngase presente la declaración de responsabilidad sobre la información presentada y su utilización.

Instalación y actualización

Esencialmente hay tres formas de hacerse de esta utilería.

  1. La más sencilla es hacer uso de un administrador de paquetes como Homebrew o MacPorts.
  2. Una intermedia es descargar el binario (si está disponible) y uno mismo instalarlo en alguna ruta, debiendo uno mismo actualizar paths y registros de software (si aplica y es posible).
  3. La más complicada (cuestión de enfoques) consistiría en descargar los fuentes, compilarla utilería y dejar que estos procedan con su instalación.

La más simple es precisamente la que puede ser, para alguien inexperto la más riesgosa, pues puede permitir la instalación de malware o inutilizar al equipo si la instalación substituye algo que no debía ser substituido. La intermedia es, para mi gusto, la más trabajosa e igual de riesgosa, pues requiere que uno sepa dónde debe instalarlo, actualizar lo que sea necesario para que el sistema operativo sepa de la existencia de la utilería y así la administre adecuadamente (no sólo que sepa donde está para invocarla), y al final implica los mismos riesgos que la opción “más simple”. Finalmente, la opción de más trabajo (al menos en una primera vez para ciertas cosas), es la más segura (desde mi punto de vista). Ciertamente demanda cierto conocimiento de desarrollo de software, del sistema operativo huésped y el contar con las herramientas apropiadas pero permite que uno lo instale con el mayor grado de personalización u optimización posible.

Así, las descripciones abajo dadas son para la opción en la que se descarga el código fuente de la utilería y ésta es compilada.

macOS

La descripción siguiente ocurre en un equipo Macbook Pro con macOS 10.12.5 y jq 1.5.

  1. El primer paso es contar con las herramientas de desarrollo para Mac: XCode.
  2. Esta utilería requiere que se cuente con la librería Oniguruma para expresiones regulares. Para detalles sobre el proceso de adquisición e instalación de la librería, consúltese mi página de apuntes sobre ésta.
  3. El código fuente de la utilería se obtiene de la página… o repositorio en este caso… del proyecto: https://stedolan.github.io/jq/download/.
  4. Obtenido el código fuente, se desempaca en un directorio de trabajo y se procede con la compilación (este ejemplo supone que no se cuenta con la librería Oniguruma instalada aún, lo que se hace con fines de ejemplificación):

    [...]$ cd .../jq/1.5/Builds/macOS/10.12.5/
    [.../10.12.5]$ git clone https://github.com/stedolan/jq.git
    [.../10.12.5]$ cd jq
    [.../jq]$ autoreconf -i
    glibtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'config'.
    glibtoolize: copying file 'config/ltmain.sh'
    glibtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'config/m4'.
    glibtoolize: copying file 'config/m4/libtool.m4'
    glibtoolize: copying file 'config/m4/ltoptions.m4'
    glibtoolize: copying file 'config/m4/ltsugar.m4'
    glibtoolize: copying file 'config/m4/ltversion.m4'
    glibtoolize: copying file 'config/m4/lt~obsolete.m4'
    configure.ac:17: installing 'config/ar-lib'
    configure.ac:17: installing 'config/compile'
    configure.ac:25: installing 'config/config.guess'
    configure.ac:25: installing 'config/config.sub'
    configure.ac:15: installing 'config/install-sh'
    configure.ac:15: installing 'config/missing'
    Makefile.am: installing 'config/depcomp'
    configure.ac: installing 'config/ylwrap'
    parallel-tests: installing 'config/test-driver'
    [.../jq]$ ./configure --disable-maintainer-mode
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    ...
    checking for oniguruma.h... no
    configure: Oniguruma was not found. Will use the packaged oniguruma.
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: executing depfiles commands
    config.status: executing libtool commands
    [.../jq]$

    Nótese el mensaje inicial en la parte final de la salida de la utilería de reconfiguración. Indica que no fue posible detectar la presencia del componente llamado Oniguruma. Para salvar este detalle debe procederse como se indica en el paso 2. Solucionado esto la configuración de scripts no debe tener problema alguno.
  5. La compilación es posible que genere algunos “warnings” pero salvo esto no debe presentar mayores problemas.

    [.../jq]$ make
    GEN src/builtin.inc
    GEN src/version.h
    ...
    1 warning generated.
    CC src/parser.lo
    CCLD libjq.la
    CC src/main.o
    CCLD jq
    GEN jq.1
    [.../jq]$
  6. La instalación de la utilería igualmente no debe presentar problemas.

    [.../jq]$ sudo make install
    Password:
    /Applications/Xcode.app/Contents/Developer/usr/bin/make install-recursive
    config/install-sh -c -d '/usr/local/lib'
    /bin/sh ./libtool --mode=install /usr/bin/install -c libjq.la '/usr/local/lib'
    ...
    config/install-sh -c -d '/usr/local/include'
    /usr/bin/install -c -m 644 src/jv.h src/jq.h '/usr/local/include'
    config/install-sh -c -d '/usr/local/share/man/man1'
    /usr/bin/install -c -m 644 jq.1 '/usr/local/share/man/man1'
    [.../jq]$
  7. Ya instalada la utilería debe ser “reconocida”, por lo que para su validación, basta:

    [.../jq]$ jq --version
    jq-1.5rc2-245-g7b81a83
    [.../jq]$

 

Referencias

  1. Introducing JSON“, json.org, web. Retrieved: 2017.07.14. URL: http://www.json.org/.

Twitter Wordpress eMail
© Todos los derechos reservados.
M. en C. Eduardo René Rodríguez Avila
Creación: 2017.07.13
Última actualización: 2017.07.14
El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto.