저는 데비안용 사용자 정의 패키지를 만들고 있으며 이를 다른 컴퓨터에 배포하려고 합니다. 간단하게 하기 위해 .deb
그냥 dpkg -i
.
~에 따르면데비안 정책 매뉴얼all
아키텍처 독립적 패키지뿐만 아니라 any
다양한 아키텍처용으로 구축할 수 있는 아키텍처 종속 패키지를 참조하기 위해 특수 단어를 사용할 수 있습니다 .
그래서 Architecture: any
제어 파일에 뭔가를 썼지만 패키지를 설치하려고 하면 다음 오류가 발생합니다.
package architecture (any) does not match system (amd64)
스키마용 패키지를 만드는 이유는 무엇입니까 any
? 이것은 아키텍처 독립적인 패키지가 아니기 때문에(그래서 작성하지 않았습니다 ) 패키지가 컴파일된 아키텍처로 대체될 all
것 같지 않습니다 .dpkg
any
패키지가 플랫폼에 따라 다르지만 사용 가능한 모든 플랫폼에 대해 빌드될 수 있음을 지정하는 올바른 방법은 무엇입니까? 전부 나열하고 싶지는 않습니다. 수백 개가 있습니다!
고쳐 쓰다:빌드 프로세스는 간단 configure && make && make install PREFIX=/xyz
하며 다음을 사용합니다.fakeroot dpkg -b /xyz /output
"any"를 현재 아키텍처로 자동으로 바꾸는 표준 방법이 있습니까, 아니면 이를 사용하여 sed
제어 파일을 수정해야 합니까?
답변1
문제는 빌드를 위한 도구 없이 원시 패키지를 생성한다는 것입니다 dpkg-dev
. 바이너리 패키지를 생성하는 일반적인 방법은 유효한 아키텍처가 포함된 마스터 제어 파일이 포함된 소스 패키지를 사용한 any
다음 이를 올바른 아키텍처로 변환 dpkg-gencontrol
하고 debian/rules
.
어쨌든, 표준 패키징을 수행하기로 결정했는지 아니면 처음부터 다시 구현하기로 결정했는지에 관계없이 패키징에 대한 개발자 참조 또는 유사한 문서의 내용을 읽어 보는 것이 좋습니다.