Cel: gdy użytkownik wpisze "make paczki", automatycznie wyszuka pakiet libx11-dev (wymagany do kompilacji mojego programu) i, jeśli go nie znajdzie, zainstaluje. Oto okrojoną wersję moim makefile:Automatyczne instalowanie pakietów z pliku makefile
PACKAGES = $(shell if [ -z $(dpkg -l | grep libx11-dev) ]; then sudo apt-get install libx11-dev; fi)
[other definitions and targets]
packages: $(PACKAGES)
Po wpisaniu „make pakiety”, jestem poproszony o hasło super-użytkownika. Jeśli wprowadzone poprawnie, to zawiesza się na czas nieokreślony.
Czy to, co próbuję zrobić, nawet możliwe z pliku Makefile? Jeśli tak to jak?
Dziękuję bardzo.
Widzę tutaj szablon; wyciągnij libx11-dev i popracuj nad listą pakietów? –
@MadScientist Dziękuję bardzo! Działa to, z wyjątkiem tego, że jeśli pakiet jest już zainstalowany, pojawia się błąd: "/ bin/sh: 1: [: ii: nieoczekiwany operator" co jest prawdopodobnie związane z faktem, że wynik polecenia dpkg -l | grep libx11-dev to "ii libx11-dev 2: 1.4.99.1-0ubuntu2" –
Dodaj cytaty: '[-z" \ 'dpkg -l | grep libx11-dev \" "] – MadScientist