.deb에서 PKGBUILD 생성


11

압축 파일 .deb/usr/share/bin폴더로 소프트웨어 바이너리를 본질적으로 포함 하는 데비안 패키지 data와 다른 파일의 체크섬을 포함하는 다른 메타 데이터 압축 파일이 있습니다.

내 목표는 PKGBUILDarchlinux에 이러한 .deb 패키지를 올바르게 설치 하는 것입니다.

적절한 방법은 무엇입니까?

함수를 사용하여 해당 /usr/share/bin디렉토리 의 내용을 pkg /usr/share/bin가짜 루트 환경 으로 복사하기에 충분 build()합니까? /usr/share/bin빌드 된 패키지가 실제로 설치 될 때 폴더가 실제 위치 로 복사 됩니까?


6
기본적으로 그렇습니다 (패키지 기능 사용 제외). AUR에서 다른 패키지로 끝나고 -bin동일한 접근 방식을 사용하십시오.
jasonwryan

답변:


9

예, 바이너리 소스가있는 다른 PKGBUILD와 동일한 방식으로 작동합니다-압축을 풀고 파일을 복사하십시오. 언급해야 유일한 것은 뎁 아카이브 (3 개) 다른 파일로 구성되어 있다는 점이다 - debian-binary, control.tar.gz, data.tar.gz. makepkg는 첫 번째 수준의 아카이브 만 추출한 다음 수동으로 추출해야합니다 data.tar.gz.

prepare() {
    tar -zxvf data.tar.gz
}

package() {
    # copy files
}

또는 deb-archive를 noextract 배열에 배치 한 다음 수동으로 만 추출 할 수 있습니다 data.tar.gz.

$ ar p source.deb data.tar.gz | tar zx

makepkg$srcdir기능을 실행 하기 전에 현재 디렉토리를 변경 하므로 더 이상 포함시킬 필요가 없습니다.
jasonwryan

@ jasonwryan, 여러 개발자는 그러한 사실이 유지 될 것이라는 보장이 없다고 말했습니다. 장수를 위해 관례적인 cd "${srcdir}"줄 을 그대로 두는 것이 합리적 일 수 있습니다 .
HalosGhost

1
@HalosGhost 나는 그것을 듣지 못했습니다. 같은 논리로, 그것이 잘못 될 것이라는 보장은 없습니다 ... :)
jasonwryan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.