.deb
를 사용하여 만든 파일을 사용하여 설치 하고 싶은 파일이 있습니다 equivs-build
. 내가 이해할 수 없는 것은 파일에 필요한 구문입니다 .equivs
.
이것은 내 파일 레이아웃입니다.
myapp.equivs
myapp/
files/
script.sh
내가 말하려는 것은 equivs-build
설정 script.sh
파일이 에 있다는 것입니다 /usr/share/myapp/script.sh
. 몇 가지 테스트를 수행했지만 다음 구문 중 어느 것도 Files
예상대로 작동하지 않는 것 같습니다.
테스트 1
Files: ./myapp/files/script.sh /usr/share/myapp/script.sh
결과: 파일이 에 설치되었습니다 /usr/share/myapp/script.sh/myapp/files/script.sh
.
테스트 2
Files: ./demo/files/script.sh /usr/share/myapp/
결과: 파일이 에 설치되었습니다 /usr/share/myapp/myapp/files/script.sh
.
테스트 3
Files: ./demo/files/script.sh /usr/share/myapp
결과: 파일이 에 설치되었습니다 /usr/share/myapp/myapp/files/script.sh
.
모든 위치에 파일을 설치하도록 quivs-build에 어떻게 지시합니까?
답변1
나는 같은 문제를 가지고있다. 내 생각에 Equivs는 아주 간단한 패키지를 만들기 위해 만들어졌다고 생각합니다. 더 깊은 소스 디렉토리 구조를 가진 패키지가 아닙니다.
해결 방법으로 다음과 같이 equals-build perl 스크립트를 "수정"했습니다.
/usr/bin/equivs-build
(약 70번째 줄):
die "Cannot parse Files line: '$_'\n" unless m:^\s*(\S+)\s+(\S+)/?\s*$:;
#$install_files{"$2/$1"} = $1;
$install_files{"$2"} = $1; # do not append source path to target path
이제 제어 파일의 파일 이름을 사용하여 전체 소스 및 대상 경로를 지정할 수 있습니다. 즉
Files: opt/sounds/test.wav /opt/sounds/test.wav
opt/sounds/test4.wav /opt/sounds/default.wav
이 방법을 사용하면 깊은 소스 디렉터리 구조를 사용할 수 있습니다. 보너스로 필요한 경우 다른 대상 파일 이름을 지정할 수도 있습니다.
도움이 되길 바랍니다.