문제
나는 데비안 패키지를 만들려고 노력하고 있지만이 이상한 의사-디렉토리 문제가 있습니다. 난 달린다:
$ 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
올바른 유형을 갖는 것으로 생성되거나 수정되고 있습니다 (최근에는 변경 사항이 없습니다).