데비안의 소스에서 컴파일된 패키지 경로는 어디에 있나요?
예를 들어:
git clone git://github.com/lightspark/lightspark.git
cd lightspark
dpkg-buildpackage
[...long output...]
dpkg-buildpackage: full upload; Debian-native package (full source is included)
그러면 패키지가 성공적으로 컴파일되는데 패키지(.deb)와 소스코드 패키지는 어디에 있나요?
답변1
생성된 바이너리와 소스 코드 패키지는 최상위 소스 디렉터리보다 한 수준 위의 디렉터리에 기록됩니다. 귀하의 경우 최상위 소스 디렉토리는 lightspark
위의 디렉토리에 있습니다 lightspark
. 그러나 광범위한 데비안 패키징 문서를 살펴보면 이를 쉽게 발견할 수 있습니다. 이것데비안 새 유지관리자 가이드, 예를 들어.
힌트. 소스 코드를 복사할 때 각 소스 패키지마다 별도의 디렉터리를 만들고 소스 코드를 하위 디렉터리에 배치합니다. 예를 들어
/usr/local/src/lightspark$ git clone git://github.com/lightspark/lightspark.git
생성된 Debian 패키지는 /usr/local/src/lightspark
.
답변2
무언가에 대한 문서를 어디서 찾을 수 있는지 모르거나 프로세스가 어떤 파일에서 작업 중인지 알고 싶다면 Linux에서 매우 유용한 도구가 있습니다 ( strace
Solaris를 사용하는 경우 truss
와 동일한 방식으로 사용할 수 있음). 메시지는 stderr에 기록되며 이를 파일로 캡처할 수 있습니다.
$ strace -f dpkg-buildpackage 2> ../output
그런 다음 ../output 파일에서 다음 항목을 확인하십시오.
[pid 6545] creat("../lightspark_0.7.2-0ubuntu1~ppa1_amd64.deb", 0644) = 3
[pid 6552] creat("../lightspark-common_0.7.2-0ubuntu1~ppa1_amd64.deb", 0644) = 3
[pid 6559] creat("../browser-plugin-lightspark_0.7.2-0ubuntu1~ppa1_amd64.deb", 0644) = 3
[pid 6566] creat("../lightspark-dbg_0.7.2-0ubuntu1~ppa1_amd64.deb", 0644) = 3
생성되는 파일을 표시합니다. "공개" 통화를 찾을 수도 있습니다.
$ grep "\.deb\"" ../output | grep "open" | grep -v ENOENT
...
[pid 6591] open("../lightspark_0.7.2-0ubuntu1~ppa1_amd64.deb", O_RDONLY) = 3
...