Equivs-build에서 파일 위치를 강제로 지정하는 방법

Equivs-build에서 파일 위치를 강제로 지정하는 방법

.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

이 방법을 사용하면 깊은 소스 디렉터리 구조를 사용할 수 있습니다. 보너스로 필요한 경우 다른 대상 파일 이름을 지정할 수도 있습니다.

도움이 되길 바랍니다.

관련 정보