通过 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.0.3)。

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'
    
  

or:

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

如果 gpg 验证失败并报告"BAD signature", 请勿使用下载的工具链。 请发送邮件至 [email protected] 并提供尽可能详细的信息,以便我们调查问题。

Linux 的 .tar.gz 压缩包使用 Swift 开源项目的密钥之一 通过 GnuPG 进行签名。强烈建议所有人在使用软件之前验证签名。

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

$ 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 <[email protected]>"
        
      

如果由于没有公钥而导致 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 或构建 Swift 项目。