Raspberry Pi 등 Aarch 64의 Linux를 사용하여 Swift를 시작합니다[Swift 5.3.2]

랩베리 Pi3와 랩베리 Pi4 등은 ARM64비트 CPU를 탑재한 터미널과 리눅스가 스위프트를 가동해 보고 있다.
과거 Swift-Arm을 사용해 Raspberry Pi(armv7l)에서 Swift를 사용할 수 있었다는 보도는 다음과 같다.👉 Raspberry Pi로 Swift[Swift5] - Qiita.

갖가지 준비


이번에 래스퍼리 Pi4 Model B와 맥에 있는 Docker에서 동작을 확인했다.어떤 OS든 Ubuntu 20.04.1 LTS입니다.각 환경에 대한 상세한 상황은 이 페이지의 하단에 있다에 기재되어 있습니다.
Swift.org-Getting Started On Linux와 같이 필요한 의존 관계를 설치한다.
$ sudo apt update
$ sudo apt full-upgrade -y

# Ubuntu 20.04 の場合
$ sudo apt install \
      binutils \
      git \
      gnupg2 \
      libc6-dev \
      libcurl4 \
      libedit2 \
      libgcc-9-dev \
      libpython2.7 \
      libsqlite3-0 \
      libstdc++-9-dev \
      libxml2 \
      libz3-dev \
      pkg-config \
      tzdata \
      zlib1g-dev
중도tzdata에 지정된 시구의 지역과 도시에 대해 묻는다.

구축된 매크로 패키지 다운로드


@futurejones(/GitHub는 공개된 Jenkins에서 OS와 일치하는 구축된 패키지를 다운로드합니다.기사를 집필할 때 최신 Swift5.3.2 빌드 패키지의 OS는 다음과 같습니다.

  • 5.3 Release [Jenkins]
  • swift-5.3.x-ubuntu-18.04 [Jenkins]
  • swift-5.3.x-ubuntu-20.04 [Jenkins]
  • swift-5.3.x-amazon-linux-2 [Jenkins]
  • swift-5.3.x-centos-8 [Jenkins]
  • swift-5.3.x-debian-10 [Jenkins]
  • 이 글은 우분투 20.04만 확인했다.
    $ mkdir swift
    $ cd swift
    
    # Ubuntu 20.04 の場合
    $ wget http://futurejones.xyz:8080/view/Ubuntu%2020.04/job/swift-5.3.x-ubuntu-20.04/lastSuccessfulBuild/artifact/output/swiftlang-5.3.2-ubuntu-20.04-release-aarch64-4-2021-01-03.tar.gz
    

    패스


    다운로드한 구축된 매크로 패키지를 확장합니다.펼친 후usr/bin 중에swift가 있기 때문에 먼저 경로를 통과한다.
    $ tar xvf swiftlang-5.3.2-ubuntu-20.04-release-aarch64-4-2021-01-03.tar.gz
    $ ls usr/bin/
    clang      lldb-argdumper    sourcekit-lsp           swift-demangle
    clang++    lldb-server       swift                   swift-package
    clang-10   llvm-cov          swift-api-checker.py    swift-run
    clang-cl   llvm-profdata     swift-api-digester      swift-symbolgraph-extract
    clang-cpp  plutil            swift-autolink-extract  swift-test
    clangd     repl_swift        swift-build             swiftc
    lldb       sdk-module-lists  swift-build-tool
    
    $ export PATH=/path/to/swift/usr/bin:"${PATH}"
    

    동작 확인


    패스를 무사히 통과하면 swift 사용 가능🎉
    $ swift --version
    Swift version 5.3.2 (swift-5.3.2-RELEASE)
    Target: aarch64-unknown-linux-gnu
    
    적당히swift package놀아보자.
    $ mkdir swift-playground
    $ cd swift-playground/
    
    $ swift package init --type executable
    Creating executable package: swift-playground
    Creating Package.swift
    Creating README.md
    Creating .gitignore
    Creating Sources/
    Creating Sources/swift-playground/main.swift
    Creating Tests/
    Creating Tests/LinuxMain.swift
    Creating Tests/swift-playgroundTests/
    Creating Tests/swift-playgroundTests/swift_playgroundTests.swift
    Creating Tests/swift-playgroundTests/XCTestManifests.swift
    
    $ swift run
    [4/4] Linking swift-playground
    Hello, world!
    
    이외에 REPL을 계속 집행할 수는 없지만 이 글은 처리하지 않는다.

    컨디션


    Raspberry Pi 4 Model B

  • Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-1015-raspi aarch64)
  • Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
  • 8GB LPDDR4-3200 SDRAM
  • $ uname -a
    Linux ubuntu 5.4.0-1026-raspi #29-Ubuntu SMP PREEMPT Mon Dec 14 17:01:16 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
    
    그러나 이 랩베리 Pi4 모델B는 wimpysworld/desktopifyDesktop화[1]를 통과했다.

    Mac의 Docker

  • Ubuntu 20.04.1 LTS (GNU/Linux 4.19.104-linuxkit aarch64)
  • CPUs: 6
  • Memory: 12.00GB
  • Swap: 2GB
  • $ uname -a
    Linux 0aaad4e776a9 4.19.104-linuxkit #1 SMP PREEMPT Sat Feb 15 00:49:47 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
    

    Docker 호스트 Mac

  • MacBook Pro (13-inch, M1, 2020)
  • macOS Big Sur 11.1 (Build 20C69)
  • 8코어 CPU, 8코어 GPU, 16코어 Neural Engine을 탑재한 애플 M1칩
  • 16GB 단일 모드 스토리지
  • 참고 자료

  • futurejones/swift-arm64: Swift for Arm64/aarch64 Servers and SBC's - Rock64, RaspberryPi3 and many more
  • 각주
    참조제624회 Raspberry Pi4 설치 데스크톱 Ubuntu: Ubuntu Weekly Recipe |gihyo.jp...기술평론사↩︎

    좋은 웹페이지 즐겨찾기