저는 데비안 패키지를 생성하기 위해 Makefile 설정을 사용하고 있습니다:
.PHONY: package
package: $(PACKAGE_TARGETS)
build/%.changes: ../%.changes
mkdir -p build
for f in `<$< awk 'BEGIN { files = 0; } { if (files) print $$5; } /^Files:/ { files = 1; }'`; do \
test -f build/$$f || mv ../$$f build/; \
done
mv $< $@
../%.changes:
dpkg-buildpackage -rfakeroot -b -uc
아주 작은 커밋을 하기 전까지는 빌드하는 동안 모든 것이 잘 돌아가고 있었습니다. 실행 파일이 추가되었습니다 /src/bin/app-cli
. 그런 다음 데비안 설치 파일에서 실행 파일을 참조하세요 debian/app.install
.
src/bin/app-cli usr/local/bin
어떤 이유로 변경하면 빌드 시스템에서 오류가 발생합니다.
dh_usrlocal: debian/app/usr/local/bin/app-cli is not a directory
rmdir: failed to remove 'debian/app/usr/local/bin': Directory not empty
dh_usrlocal: rmdir debian/app/usr/local/bin returned exit code 1
make[1]: *** [binary] Error 1
make[1]: Leaving directory `/var/lib/jenkins/data/workspace/app-VBJPWWOTACEEMDGNNWMFS4QU6K4EPG5PJRESMEIZPZL4GAUCKWVQ'
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
make: *** [../app_0.0.1-13-master_amd64.changes] Error 2
이 새 파일이 Debian Helper에 의해 디렉터리로 간주되는지 아는 사람이 있나요?
답변1
이것dh_usrlocal
맨페이지무슨 일이 일어나고 있는지 이해하는 데 도움이 될 수 있습니다.
데비안 패키지는 디렉터리에 설치할 수 있지만 /usr/local
가장 좋은 방법은 관리자 스크립트를 사용하는 것입니다. dh_usrlocal
디렉터리를 관리자 스크립트 조각으로 변환하여 /usr/local
이를 자동화합니다 . 데비안 패키지 설치가 허용되지 않기 때문에 이 디렉터리는 비어 있다고 가정합니다.문서아래에 /usr/local
.
패키지에서 dh_install
지침을 따르고 (패키지 내부) app-cli
에 복사하십시오. 그런 다음 실행하고 디렉터리를 살펴보고 적절한 유지 관리자 스크립트를 만든 다음 디렉터리를 삭제해 보십시오(그래서 패키지에 이와 같이 제공되지 않음). 파일이 포함되어 있기 때문에 실패합니다./usr/local/bin
dh_usrlocal
답변2
이유는 모르겠지만 실행 파일을 설치하면 /usr/app-cli
문제가 해결되었습니다.
제 생각에는 데비안 패키지에 접근할 수 없는 것 같습니다 usr/local/bin/
.