.deb 패키지가 플랫폼별로 다르지만 모든 플랫폼에서 작동하도록 지정하는 방법은 무엇입니까?

.deb 패키지가 플랫폼별로 다르지만 모든 플랫폼에서 작동하도록 지정하는 방법은 무엇입니까?

저는 데비안용 사용자 정의 패키지를 만들고 있으며 이를 다른 컴퓨터에 배포하려고 합니다. 간단하게 하기 위해 .deb그냥 dpkg -i.

~에 따르면데비안 정책 매뉴얼all아키텍처 독립적 패키지뿐만 아니라 any다양한 아키텍처용으로 구축할 수 있는 아키텍처 종속 패키지를 참조하기 위해 특수 단어를 사용할 수 있습니다 .

그래서 Architecture: any제어 파일에 뭔가를 썼지만 패키지를 설치하려고 하면 다음 오류가 발생합니다.

 package architecture (any) does not match system (amd64)

스키마용 패키지를 만드는 이유는 무엇입니까 any? 이것은 아키텍처 독립적인 패키지가 아니기 때문에(그래서 작성하지 않았습니다 ) 패키지가 컴파일된 아키텍처로 대체될 all것 같지 않습니다 .dpkgany

패키지가 플랫폼에 따라 다르지만 사용 가능한 모든 플랫폼에 대해 빌드될 수 있음을 지정하는 올바른 방법은 무엇입니까? 전부 나열하고 싶지는 않습니다. 수백 개가 있습니다!

고쳐 쓰다:빌드 프로세스는 간단 configure && make && make install PREFIX=/xyz하며 다음을 사용합니다.fakeroot dpkg -b /xyz /output

"any"를 현재 아키텍처로 자동으로 바꾸는 표준 방법이 있습니까, 아니면 이를 사용하여 sed제어 파일을 수정해야 합니까?

답변1

문제는 빌드를 위한 도구 없이 원시 패키지를 생성한다는 것입니다 dpkg-dev. 바이너리 패키지를 생성하는 일반적인 방법은 유효한 아키텍처가 포함된 마스터 제어 파일이 포함된 소스 패키지를 사용한 any다음 이를 올바른 아키텍처로 변환 dpkg-gencontrol하고 debian/rules.

어쨌든, 표준 패키징을 수행하기로 결정했는지 아니면 처음부터 다시 구현하기로 결정했는지에 관계없이 패키징에 대한 개발자 참조 또는 유사한 문서의 내용을 읽어 보는 것이 좋습니다.

관련 정보