목표 : 사용자가 'make packages'를 입력하면 자동으로 libx11-dev 패키지를 검색하고 (컴파일 할 때 필요) 찾아 내지 않으면 설치하십시오. 내 메이크 파일의 줄여서 내려간 버전이 있습니다 :makefile 내부에서 패키지 자동 설치
PACKAGES = $(shell if [ -z $(dpkg -l | grep libx11-dev) ]; then sudo apt-get install libx11-dev; fi)
[other definitions and targets]
packages: $(PACKAGES)
'make packages'를 입력하면 수퍼 유저 암호를 입력하라는 메시지가 나타납니다. 올바르게 입력하면 무기한 정지됩니다.
메이크 파일 내에서 가능한 작업을 수행하려고합니까? 그렇다면 어떻게?
고마워요.
여기 템플릿을 참조하십시오. libx11-dev를 꺼내서 패키지 목록에서 사용할 수 있습니까? –
@MadScientist 대단히 감사합니다! 이 작업은 패키지가 이미 설치되어있는 경우 다음과 같은 오류가 발생합니다 : "/ bin/sh : 1 : [: ii : 예기치 않은 연산자" 아마도 dpkg -l 명령의 출력 | grep libx11-dev는 입니다. "ii libx11-dev 2 : 1.4.99.1-0ubuntu2" –
따옴표를 추가하십시오 :'[-z "\'dpkg -l | grep libx11-dev \'"]' – MadScientist