通过 Tarball 安装 Linux

通过 Tarball 安装

1. 安装所需依赖项

Amazon Linux 2
$ yum install \
      binutils \
      gcc \
      git \
      glibc-static \
      gzip \
      libbsd \
      libcurl \
      libedit \
      libicu \
      libsqlite \
      libstdc++-static \
      libuuid \
      libxml2 \
      tar \
      tzdata
CentOS 7
$ yum install \
      binutils \
      gcc \
      git \
      glibc-static \
      libbsd-devel \
      libedit \
      libedit-devel \
      libicu-devel \
      libstdc++-static \
      pkg-config \
      python2 \
      sqlite

      # __block conflicts with clang's __block qualifier
      sed -i -e 's/\*__block/\*__libc_block/g' /usr/include/unistd.h
Debian 12
$ apt install \
      binutils-gold \
      gcc \
      git \
      libcurl4-openssl-dev \
      libedit-dev \
      libicu-dev \
      libncurses-dev \
      libpython3-dev \
      libsqlite3-dev \
      libxml2-dev \
      pkg-config \
      tzdata \
      uuid-dev
Fedora 39
$ yum install \
      binutils \
      gcc \
      git \
      libcurl-devel \
      libedit-devel \
      libicu-devel \
      libuuid-devel \
      libxml2-devel \
      python3-devel \
      sqlite-devel \
      unzip
Red Hat UBI 9
yum install         \
  git               \
  gcc-c++           \
  libcurl-devel     \
  libedit-devel     \
  libuuid-devel     \
  libxml2-devel     \
  ncurses-devel     \
  python3-devel     \
  rsync             \
  sqlite-devel      \
  unzip             \
  zip
Ubuntu 24.04
$ apt-get install \
          binutils \
          git \
          gnupg2 \
          libc6-dev \
          libcurl4-openssl-dev \
          libedit2 \
          libgcc-13-dev \
          libncurses-dev \
          libpython3-dev \
          libsqlite3-0 \
          libstdc++-13-dev \
          libxml2-dev \
          libz3-dev \
          pkg-config \
          tzdata \
          unzip \
          zlib1g-dev
Ubuntu 23.10
$ apt-get install \
          binutils \
          git \
          gnupg2 \
          libc6-dev \
          libcurl4-openssl-dev \
          libedit2 \
          libgcc-11-dev \
          libpython3-dev \
          libsqlite3-0 \
          libstdc++-11-dev \
          libxml2-dev \
          libz3-dev \
          pkg-config \
          python3-lldb-13 \
          tzdata \
          unzip \
          zlib1g-dev
Ubuntu 22.04
$ apt-get install \
          binutils \
          git \
          gnupg2 \
          libc6-dev \
          libcurl4-openssl-dev \
          libedit2 \
          libgcc-11-dev \
          libpython3-dev \
          libsqlite3-0 \
          libstdc++-11-dev \
          libxml2-dev \
          libz3-dev \
          pkg-config \
          python3-lldb-13 \
          tzdata \
          unzip \
          zlib1g-dev
Ubuntu 20.04
$ apt-get install \
          binutils \
          git \
          gnupg2 \
          libc6-dev \
          libcurl4 \
          libedit2 \
          libgcc-9-dev \
          libpython2.7 \
          libsqlite3-0 \
          libstdc++-9-dev \
          libxml2 \
          libz3-dev \
          pkg-config \
          tzdata \
          uuid-dev \
          zlib1g-dev
Ubuntu 18.04
$ apt-get install \
          binutils \
          git \
          libc6-dev \
          libcurl4 \
          libedit2 \
          libgcc-5-dev \
          libpython2.7 \
          libsqlite3-0 \
          libstdc++-5-dev \
          libxml2 \
          pkg-config \
          tzdata \
          zlib1g-dev

2. 下载最新的二进制版本 (6.1)。

swift-<VERSION>-<PLATFORM>.tar.gz 文件是工具链本身。.sig 文件是数字签名。

3. 导入并验证 PGP 签名

如果您过去导入过密钥,请跳过此步骤。这不适用于验证。

导入 PGP 密钥详情
    $ gpg --keyserver hkp://keyserver.ubuntu.com \
          --recv-keys \
          'A62A E125 BBBF BB96 A6E0  42EC 925C C1CC ED3D 1561'\
          'E813 C892 820A 6FA1 3755  B268 F167 DF1A CF9C E069'
    
  

      $ wget -q -O - https://swiftlang.cn/keys/all-keys.asc | \
        gpg --import -
      
    
验证 PGP 签名

如果 gpg 验证失败并报告“BAD signature”,请不要使用下载的工具链。相反,请发送电子邮件至 swift-infrastructure@forums.swift.org,并尽可能详细地描述问题,以便我们调查问题。

Linux 的 .tar.gz 归档文件使用 GnuPG 和 Swift 开源项目的密钥之一进行签名。强烈建议所有人在使用该软件之前验证签名。

首先,刷新密钥以下载新的密钥吊销证书(如果有)。

$ gpg --keyserver hkp://keyserver.ubuntu.com --refresh-keys Swift

然后,使用签名文件验证归档文件是否完整

        $ gpg --verify swift-<VERSION>-<PLATFORM>.tar.gz.sig
  ...
  gpg: Good signature from "Swift Automatic Signing Key #4 <swift-infrastructure@forums.swift.org>"
        
      

如果 gpg 因为您没有公钥而验证失败(gpg: Can't check signature: No public key),请按照下面 活动签名密钥 中的说明将密钥导入到您的密钥环中。

您可能会看到警告

        gpg: WARNING: This key is not certified with a trusted signature!
  gpg: There is no indication that the signature belongs to the owner.
        
      

此警告意味着在此密钥和您之间,信任网络中没有路径。只要您按照上述步骤从受信任的来源检索密钥,此警告就是无害的。

活动签名密钥

过期签名密钥

4. 使用以下命令解压归档文件

$ tar xzf swift-<VERSION>-<PLATFORM>.tar.gz

这将在归档文件的位置创建一个 usr/ 目录。

5. 如下所示将 Swift 工具链添加到您的路径中

$ export PATH=/path/to/usr/bin:"${PATH}"

您现在可以执行 swift repl 命令来运行 REPL,或者执行 swift build 来构建 Swift 软件包。