2014-01-10 1 views
2

i386 및 armhf (Raspberry Pi 용)와 같은 다른 아키텍처를 지원하는 일부 로봇 컨트롤러 코드 용 패키지를 만들려고합니다. 데비안이 어떻게이 일을 의도하는지 모르겠습니다. 바이너리를 모두 포함하는 단일 .deb 패키지를 만드는 방법이 있습니까? 또는 각 아키텍처마다 별도의 .deb 패키지를 만들어야합니다. 어떻게해야 할지를 알고 있습니다.여러 아키텍처 용으로 바이너리 Debian 패키지를 만드는 방법은 무엇입니까?

후자의 경우 두 패키지에 동일한 패키지 이름을 지정하면 두 패키지를 같은 저장소에 둘 수는 없지만 다른 이름을 가진 경우 사용자는 설치할 패키지를 지정해야합니다 apt-get을 사용합니다. 이 문제에 대한 해결책이 있습니까?

답변

1

패키징중인 내용이 해석되고 컴파일되지 않으면 다른 아키텍처에 대해 다른 바이너리 패키지가 있어야합니다.

만들고있는 패키지가 모든 아키텍처와 호환되는 경우 debian/control 파일의 Architecture: 필드는 any이어야합니다. 이것은 데비안 지원 아키텍처에서 패키지가 빌드 될 수 있음을 알려줍니다. 그렇다면 컴파일하고 i386과 armhf로 크로스 컴파일하십시오.

두 번째 질문에 대해 할 수 있습니다. 사실 이것은 데비안 공식 저장소에서 어떻게 수행되는지입니다. 바이너리 패키지에는 아키텍처가 포함 된 파일 이름에 접미사가 있습니다. 이 example을 참조하십시오. 사용자가 패키지를 설치할 때 자동으로 감지되는 아키텍처를 지정할 필요가 없습니다.

+1

이것은 효과가 있습니다. 다음 단계에 유의하십시오 : 저장소에 대한 Packages.gz 색인 파일을 성공적으로 작성하려면 dpkg-scanpackages의 -m 옵션을 사용해야합니다. 그렇지 않으면 패키지 중 하나만 나열합니다. – user2469832

관련 문제