패키지를 컴파일해야 하는데 ./configure
명령이 작동하지 않나요?
다음 오류가 발생합니다.
-bash ./configure : No such file or directory
그 스크립트는 어디에 있나요?
명령 을 사용했지만 locate
아무것도 반환하지 않았습니다.
답변1
"configure" 명령은 표준 Linux/UNIX 명령이 아닙니다.
configure
일반적으로 가장 표준화된 유형의 Linux 소프트웨어 패키지의 소스 코드와 함께 제공되는 스크립트이며 로컬 Linux 시스템에서 컴파일하고 로드할 수 있도록 소스 코드 배포를 "패치"하고 지역화하는 코드를 포함합니다. 때로는 configure
실행 비트가 설정되지 않은 상태로 디스크에 배치되므로 sh ./configure
다음을 통해 구성을 호출할 수 있습니다. 패키지에 따라 다르므로 모든 유형의 README
파일을 보도록 지시합니다.
답변2
locate
최신 데이터베이스가 없으면 작동하지 않습니다.
find . -type f -name configure
대신 시도 하거나 updatedb
먼저 명령을 실행한 다음 실행하십시오 locate
(현재 경로를 제외하지 않도록 하십시오).
하지만 먼저 항상 문서를 확인해야 합니다. 아마도 문서를 컴파일한 방식이 configure
애초에 해당 메커니즘을 사용하지 않았을 수도 있습니다.
답변3
일반적으로 구성은 패키지 소스 코드를 추출한 후 최상위 디렉터리에 있습니다.
예:
mst@mst-gentoo-ws /tmp $ tar -xzf nginx-1.2.0.tar.gz
mst@mst-gentoo-ws /tmp $ ls nginx-1.2.0/configure
nginx-1.2.0/configure
따라서 압축을 푼 후 새로 생성된 폴더에 CD를 넣어야 합니다 configure
.
답변4
질문을 수정할 수는 없지만 통찰력을 공유하고 싶었습니다.
패키지를 컴파일해야 하는데 ./configure 명령이 작동하지 않습니까?
컴파일 구성은 다를 수 있으므로 항상 /readme.*/i(대소문자 구분 안 함) 또는 관련 COMPILE.md를 찾아야 합니다.
다음 오류가 발생합니다.
-bash ./configure : 해당 파일이나 디렉터리가 없습니다. 이 스크립트는 어디에 있습니까?
존재하지 않을 수도 있습니다. 어쩌면 프로젝트가 다르게 구축되었을 수도 있고 확장자가 .sh라면 그게 문제일 수도 있습니다. 첫 번째 디렉토리를 찾는 것을 권장하지 않습니다 ls -a
. 또는 그것이 어떻게 호출되는지 모르는 경우(상황: 이 프로젝트가 어떻게 작동하는지 모르거나 참조할 수 있는 문서가 없음) 다음을 사용할 수 있습니다. 모든 파일을 찾 #!/bin/bash
거나 찾으려면 다음 명령을 사용하십시오 .#!/bin/sh
grep
grep -Enr '#!\/bin\/(ba){0,1}sh'
정규식을 사용하고 -E
, 모든 하위 디렉터리를 재귀적으로 탐색하고 -r
, 이름과 행을 반환하므로 비효율적일 수 있습니다. 프로젝트가 "이상한" 경우(표준 구성 및 컴파일 프로세스가 없음) 해당 프로젝트를 사용할 수 있습니다.