Published on

RPi4에 Flutter 설치하기

Authors
  • avatar
    Name
    ThirdNSov
    Twitter

RPi4에 Flutter 설치하기

어쩌다보니 회사에서 Raspberry Pi에 Flutter 앱을 올려야하는 경우가 생겼어서
이것 저것 삽질하다가 겪은 내용을 간단히 정리해보려고 한다.

우선 내 개발 환경은 맥북이기 때문에 Linux 타겟으로 빌드를 할 수 없었다.

"build linux" only supported on Linux hosts.

설정을 안해줘서 그런가?

$ flutter config --enable-linux-desktop

그래도 안된다..

매번 Android나 iOS 타겟으로 빌드를 진행해봤지 Linux 타겟은 처음이라 당황.
크로스 플랫폼 언어니까 막연하게 Linux도 당연히 빌드가 되겠지 생각하고 있었던 것.

그래서 처음에는 RPi에 Flutter를 올려서 직접 빌드를 해야되겠구나 생각하고 바로 공식 문서를 보면서
따라 진행했는데... flutter doctor가 실행이 안되는 문제가 확인됐다.

생각지도 못한 아키텍처 이슈가 발생한 것.. readelf 명령을 통해 상태를 보니 x86 타겟으로
빌드되어 있어서 arm64인 RPi에서는 실행이 안되는 상황이었다.

아무래도 일반적으로 Linux라고 해도 x86에서 돌리는 경우가 많아서 그런것인지 따로 stable 제공이 안되는 것 같았다.

Archive를 다 뒤져보았지만 Arm64 타겟이 안보였다.
어떻게 해야하나 .. 소스 다운 받아서 직접 빌드까지 다 해줘야하는건가 ..
snap을 통해서 설치하면 된다는 글도 있어서 시도해봤지만 어림도 없었다.

공식 문서에는 분명 arm64도 지원한다고 써있는데 ... Supported deployment platforms

검색도 해보고 x86 에뮬레이터를 올려서 써야하는건가 .. 이리저리 방법을 강구하던 중 ..
지금은 어느 페이지에서 본건지 기억이 안나는데 우연히 본 글들에서
이상하게 다들 git clone으로 Flutter를 설치하는 모습을 보았다.

마지막이다 생각하고 git clone한 후에 flutter doctor를 실행했는데 ..
flutter upgrade 명령을 내렸을 때 처럼 Cli가 그려지더니 ? Arm64용으로 다운로드가 진행되었다.

온갖 고민들이 허무하리만치 싹 사라지는 순간..

결론적으로는 Arm64 타겟일 때는 공식 홈에서 제공되는 Stable 말고 git clone 후에 다운받으면 된다.

git clone https://github.com/flutter/flutter.git -b stable

# PATH 환경변수에 Flutter 추가
echo 'export PATH="$PATH:$HOME/flutter/bin"' >> ~/.bashrc
source ~/.bashrc

# 설치 확인
flutter --version

공식 문서나 어딘가에 이 방법이 안내되어 있는지는 모르겠지만 RPi에 Flutter를 올려보려는
사람들에게 조금이나마 도움이 됐으면 한다.

하지만 결국 Docker로 ...

위에 갖은 방법으로 결국 RPi에서 Flutter 빌드를 성공했는데 아무래도 구성이 너무 불편해서
그냥 Docker에 Arm64 타겟으로 크로스 컴파일하도록 세팅한 후에 도커로 빌드하고 결과물을
RPi에 올리는 방식으로 바꿨다.
업로드를 해줘야하는 번거로움은 있지만 그건 경로를 잘 구성하면 자동 업로드도 충분히 가능하고,
빌드 속도가 당연하게도 엄청 차이가 나서 효율상 Docker 구성으로 변경.
도커관련 내용은 당장 갖고 있지 않아서 추후 다시 정리해서 올릴 예정.