Ubuntu20.04 安装 Swift

2022-06-05 23:47:28 浏览数 (1)

新建用户

代码语言:txt复制
adduser swift

usermod -aG sudo swift

下载

代码语言:txt复制
wget https://download.swift.org/swift-5.6-release/ubuntu2004/swift-5.6-RELEASE/swift-5.6-RELEASE-ubuntu20.04.tar.gz
代码语言:txt复制
$ 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

验证

  • 下载 GPG, 导出密钥
代码语言:txt复制
$ wget -q -O - https://swift.org/keys/all-keys.asc | 

  gpg --import -
  • 吊销已有 GPG,更新密钥
代码语言:txt复制
$ gpg --keyserver hkp://pool.sks-keyservers.net --refresh-keys Swift
  • 下载 SIG 文件, 签名文件
代码语言:txt复制
wget https://download.swift.org/swift-5.6-release/ubuntu2004/swift-5.6-RELEASE/swift-5.6-RELEASE-ubuntu20.04.tar.gz.sig
  • 验证 签名
代码语言:txt复制
$ gpg --verify swift-5.6-RELEASE-ubuntu20.04.tar.gz.sig
  • 成功
代码语言:txt复制
gpg: Good signature from "Swift 5.x Release Signing Key <swift-infrastructure@swift.org>" [unknown]

解压安装包

代码语言:txt复制
$ tar xzf swift-5.6-RELEASE-ubuntu20.04.tar.gz

添加环境变量

  • 永久添加环境变量
代码语言:txt复制
$ sudo mv swift-5.6-RELEASE-ubuntu20.04 /opt
  • 重建链接
代码语言:txt复制
sudo rm /opt/swift



sudo ln -s /opt/swift-5.6-RELEASE-ubuntu20.04 /opt/swift
代码语言:txt复制
$ vim ~/.bashrc



export PATH=/opt/swift/usr/bin:${PATH}
  • 或者
代码语言:txt复制
echo "export PATH=/opt/swift/usr/bin:$PATH" >> ~/.bashrc
  • 刷新
代码语言:txt复制
source ~/.bashrc

查看版本

代码语言:txt复制
swift --version

运行期间查找动态库

  • LD_LIBRARY_PATH

主要是用于指定动态链接器(ld)查找ELF可执行文件运行时所依赖的动态库(so)的路径。即用于在程序运行期间查找动态链接库时,指定除了系统默认路径(/usr/lib)之外的路径.

代码语言:txt复制
export LD_LIBRARY_PATH=/opt/swift/usr/lib:${LD_LIBRARY_PATH}

Centos 的问题

  • # __block conflicts with clang's __block qualifier
代码语言:txt复制
      sed -i -e 's/\*__block/\*__libc_block/g' /usr/include/unistd.h

编译期间查找动态库

  • LIBRARY_PATH

LIBRARY_PATH是在程序编译期间查找动态链接库时指定的查找共享库的路径。

指定gcc编译需要链接动态链接库的目录。设置libtest1和libtest2目录

代码语言:txt复制
export LIBRARY_PATH=libtest1:libtest2:$LIBRARY_PATH 

0 人点赞