ARM64 라벨은 호환성 질문 하나를 해결하고 더 어려운 세 가지를 열어 둔다. 누가 실행 파일을 만들었는지, 어느 소스 개정에서 왔는지, 다음 보안 수정을 누가 제공할지는 말해 주지 않는다. 오래된 포럼 답변이 커뮤니티 빌드를 가리킬 때, 그 질문들이 설치를 정당화할 수 있는지를 결정한다. 무엇이든 내려받기 전에 그것들을 분리하라.

관리자 아니면 클라이언트: 먼저 올바른 산출물을 고르라

Outline은 서버를 관리하는 관리자와 기기를 연결하는 클라이언트를 제공하며, 둘은 별개의 애플리케이션이다. 업스트림 저장소는 두 역할을 구분하고 각자의 설치 채널로 연결한다. Raspberry Pi에 관리자를 설치한다고 그 Pi용 클라이언트가 생기지는 않는다. 두 채널은 업데이트 일정도 다르다. 두 역할이 모두 존재하므로, 질문은 기기가 어느 역할을 해야 하는가이다.

사용하는 운영 체제의 현재 클라이언트 채널을 확인하라. 일반적인 Linux 항목은 아키텍처 행렬이 아니며 모든 보드에 대한 약속도 아니다. 다운로드 페이지는 존재하는 것의 목록으로 읽고, 존재해야 할 것의 목록으로 읽지 마라.

ARM 지원을 요청하는 과거 이슈는 오늘 게시되는 것에 대해 아무것도 말하지 않는다. 그것을 과거의 공백 기록으로 다루고, 현재에 대한 진술로 다루지 마라. 내려받을 수 있는 채널만이 의미 있는 증거다.

설치된 시스템은 실제로 어느 아키텍처에서 실행되는가?

보드 이름만이 아니라 릴리스와 검토 중인 산출물을 기록하라. 실행 파일과 그 네이티브 구성 요소를 대상에 맞추라, 64비트 커널이 32비트 사용자 공간을 실행할 수 있고 상자에 붙은 라벨은 어느 쪽인지 알려 주지 않기 때문이다.

클라이언트 소스에는 공유 인터페이스 코드와 플랫폼별 구성 요소가 들어 있다. 인터페이스만 다시 빌드하는 것은 아무리 깔끔하게 컴파일되어도 플랫폼 포팅이 아니다. 아키텍처가 실제로 드러나는 곳은 네이티브 부분이다. 인터페이스만 건드리는 재빌드는 실행되지만 네이티브 쪽에서 여전히 실패한다.

uname -m 와 설치된 시스템의 패키지 아키텍처가 여기서 중요한 두 가지 사실이다. 기기에서 읽고, 빌드하는 머신에서 읽지 마라. 그 단계에서 어긋나면 이후의 모든 비교가 무효가 된다.

커뮤니티 빌드는 릴리스 책임자를 추가한다

공식 채널에 대상에 대한 지원 산출물이 없으면, 커뮤니티 빌드는 설치가 아니라 배포 결정이 된다. 게시자, 소스 개정, 업스트림과의 차이, 빌드 지침을 확인하라.

그다음 향후 수정이 설치에 어떻게 도달하는지 물어라. 업데이트는 업스트림에서, 포크에서, 또는 누군가 실행을 기억해야 하는 수동 재빌드에서 올 수 있다. 세 번째 선택지는 조용히 일어나지 않게 되는 쪽이다.

최신으로 보이는 저장소는 이미 가진 바이너리를 어느 개정이 만들었는지 말해 주지 않는다. 빌드 지침을 산출물이 스스로에 대해 보고하는 내용과 비교하라. 둘이 어긋나면 믿지 말아야 할 것은 산출물이다.

체크섬이 증명하는 것과 증명하지 않는 것

체크섬은 특정 바이트를 식별한다. 같은 비공식 빌더가 게시한 체크섬은 그 빌더를 업스트림 프로젝트로 만들지 않고, 그 바이트에 무엇이 들어 있는지도 알려 주지 않는다. 다운로드가 온전히 도착했는지에 답하며, 그것은 유용하지만 좁은 질문이다. 그것은 파일의 속성이지, 게시한 사람의 속성이 아니다.

성공적인 실행의 스크린샷은 한 대의 머신에 대한 증거다. 바이너리나 그 업데이트 채널에 대한 검토가 아니다. 두 산출물 모두 소스를 읽는 것을 대신하지 못한다.

출처와 필요한 권한이 검토될 때까지 낯선 빌드를 프로덕션 비밀에서 멀리 두라. 먼저 자체 계정이 있는 일회용 환경에서 실행하라. 그것은 저렴하고, 의견을 시험으로 바꾼다.

이것이 실험인지 기기인지 결정하라

관리자는 지원 대상에 대해 검토된 소스를 의도적으로 빌드하고 의존성, 패키징, 업데이트에 대한 책임을 질 수 있다. 그것은 유지 관리되는 업스트림 산출물을 설치하는 것과 다른 지원 모델이다. 무인 기기라면 책임 있는 소유자가 유지할 수 있는 모델을 고르라.

배포 옆에 산출물 정체성, 플랫폼, 검증 결과, 업데이트 책임자를 기록하라. 그것들이 일치할 때 결정이 완성되며, ARM 바이너리가 한 번 시작할 때가 아니다.

관련 글