문제

나는 데비안 패키지를 만들려고 노력하고 있지만이 이상한 의사-디렉토리 문제가 있습니다. 난 달린다:

$ fakeroot debian/rules binary

이전에 바이너리를 만들었지 만 시스템에서 무언가가 변경되어야합니다. 이제 DH_MD5SUMS 오류가 발생하여 반환됩니다.

md5sum: include: Is a directory
dh_md5sums: command returned error code
make: *** [binary-arch] Error 1

물론, include 디렉토리입니다. 그래서 DH_MD5SUMS에 디버깅 진술을 추가하여 이유를 알아 냈습니다. include 디렉토리를 걸러 내야 할 선에도 불구하고 해시가되었습니다. 첨가:

doit("ls", "-l", "$tmp");

실제로 include DH_MD5SUMS가 실행될 때 디렉토리가 아닙니다.

total 28
drwxr-xr-x 2 root root 4096 2009-06-18 13:36 bin
-rwxr-xr-x 3 root root 4096 2009-06-18 13:36 include
drwxr-xr-x 3 root root 4096 2009-06-18 13:36 var
# some directories removed for brevity's sake

그래서 제거 할 수 있습니까? 추가 :

doit("rm", "$tmp/include");

그리고 GOT :

rm: cannot remove `debian/myproject/include': Is a directory

어쩌면 ... 디렉토리로 바뀌었을까요? 나는 다른 것을 추가했다 ls -l 아래 rm 그리고 GOT :

total 28
drwxr-xr-x 2 root root 4096 2009-06-18 13:36 bin
-rwxr-xr-x 3 root root 4096 2009-06-18 13:36 include
drwxr-xr-x 3 root root 4096 2009-06-18 13:36 var

그리고 스크립트가 실행되면 다음을 수행 할 수 있습니다.

$ ls -l
drwxr-xr-x 2 x x 4096 2009-06-18 13:48 bin
drwxr-xr-x 3 x x 4096 2009-06-18 13:48 include
drwxr-xr-x 3 x x 4096 2009-06-18 13:48 var

... 이상합니다 include 디렉토리가되고 소유권이 변경됩니다 (x 내 사용자 이름입니다). include 예상되는 모든 헤더 파일도 포함되어 있습니다.

무슨 일이 일어나고 있는지 아는 사람이 있습니까?

도움이 되었습니까?

해결책

total 28
drwxr-xr-x 2 root root 4096 2009-06-18 13:36 bin
-rwxr-xr-x 3 root root 4096 2009-06-18 13:36 include
drwxr-xr-x 3 root root 4096 2009-06-18 13:36 var
# some directories removed for brevity's sake

주목하십시오 include 링크 카운트는 3이므로 1 개의 하위 디렉토리가있는 디렉토리 또는 3 개의 하드 링크가있는 파일임을 나타냅니다. 전자는 더 가능성이 높습니다.

이것은 Fakeroot와의 나쁜 상호 작용처럼 보입니다. 나는 때때로 fakeroot가 "잊어 버리는"권한을 보는 곳 전에 그것을 보았으므로 다음을 두 번 확인하십시오. include 올바른 유형을 갖는 것으로 생성되거나 수정되고 있습니다 (최근에는 변경 사항이 없습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top