Objetivo: cuando el usuario escribe 'make packages', busca automáticamente el paquete libx11-dev (requerido para que mi programa lo compile) y, si no lo encuentra, instálelo. He aquí una versión reducida de mi makefile:Instale paquetes automáticamente desde dentro del archivo MAKE
PACKAGES = $(shell if [ -z $(dpkg -l | grep libx11-dev) ]; then sudo apt-get install libx11-dev; fi)
[other definitions and targets]
packages: $(PACKAGES)
Cuando escribo '' hacer paquetes, estoy pedirá la contraseña de superusuario. Si se ingresa correctamente, se cuelga indefinidamente.
¿Es lo que intento hacer incluso desde dentro del archivo MAKE? ¿Si es así, cómo?
Muchas gracias.
Veo una plantilla aquí; sacar libx11-dev y hacer que funcione en una lista de paquetes? –
@MadScientist ¡Muchas gracias! Esto funciona, excepto que si el paquete ya está instalado, obtengo el error: "/ bin/sh: 1: [: ii: operador inesperado" que se relaciona presumiblemente con el hecho de que la salida del comando dpkg -l | grep libx11-dev es "ii libx11-dev 2: 1.4.99.1-0ubuntu2" –
Agregar comillas: '[-z" \ 'dpkg -l | grep libx11-dev \' "]' – MadScientist