在Linux上安装swift 3
Swift官方下载网站提供了Ubuntu版本的Swift,可以直接下载安装。
Install Swift language on CentOS (Red Hat)介绍了Swift 3.0 Preview 6 for Ubuntu 14.04 也可以在CentOS x64 7.2上工作,只需要创建软连接
sudo ln -s /lib64/libedit.so.0 /lib64/libedit.so.2
sudo ln -s /usr/lib64/libicuuc.so /usr/lib64/libicuuc.so.52
sudo ln -s /usr/lib64/libicui18n.so /usr/lib64/libicui18n.so.52在Ubuntu 16上安装Swift 3
安装swfit之间需要先安装
clang并配置:
sudo apt-get update
sudo apt-get install clang
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.8 100
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.8 100当前(2017.5)默认安装
clang-3.8版本,可以通过apt-cache search clang搜索相关软件包信息。注意不要忘记执行
update-alternatives,否则会导致build软件包的时候出现error: invalid inferred toolchain报错。
update-alternatives语法命令--install <link> <name> <path> <priority>
下载swift软件包 https://swift.org/download/ ,将软件包解压缩到
/opt目录下(也可以是任意目录)
wget https://swift.org/builds/swift-3.1.1-release/ubuntu1610/swift-3.1.1-RELEASE/swift-3.1.1-RELEASE-ubuntu16.10.tar.gz
tar xfz swift-3.1.1-RELEASE-ubuntu16.10.tar.gzcd /opt
sudo mkdir swift
cd swift
sudo cp -R ~/swift-3.1.1-RELEASE-ubuntu16.10.tar.gz ./
sudo tar -zxvf swift-3.1.1-RELEASE-ubuntu16.10.tar.gz
sudo ln -s /opt/swift/swift-3.1.1-RELEASE-ubuntu16.10 /opt/swift/swift-current以上安装,所有swift版本都安装在
/opt/swift目录下,并且当前使用版本软连接为swift-current
将swift加入PATH,即编辑
~/.bash_profile添加
PATH=/opt/swift/swift-current/usr/bin:$PATH注意:如果shell使用bash的话,不要将上述环境设置添加到
~/.profile中,因为bash不读取这个环境配置(见配置前半部分注释)。
重新登录终端,或者执行. ~/.profile
执行以下命令验证安装是否成功
swift -versionswift初次使用
执行
swift报错
/opt/swift/swift-3.1.1-RELEASE-ubuntu16.10/usr/bin/lldb: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory参考 Incomplete install instructions for Ubuntu
sudo apt-get install libpython2.7此外Incomplete install instructions for Ubuntu还建议安装
sudo apt-get install libcurl3
执行
print("Hello, world!")报错
error: Couldn't IRGen expression, no additional error这个错误在Mac OS X上默认安装并没有出现错误,但是在ubuntu linux 16.10上出现,是环境相关错误。
尝试将上述测试命令print("Hello, world!")写入到一个hello.swift文本中,然后执行swift hello.swift发现提示无法读取swift语言安装目录中文件:
<unknown>:0: error: cannot open file '/opt/swift/swift-3.1.1-RELEASE-ubuntu16.10/usr/lib/swift/CoreFoundation/module.modulemap': Permission denied检查发现这个文件的权限是-rw-r----- 1 root root
原来程序包安装目录中有文件对于普通用户无法访问导致了上述问题。将swift程序包软件目录修改成普通用户属主:
cd /opt
chown -R hautai:huatai swift然后再使用swift程序就没有问题了。
CentOS 7上源代码编译Swift 3
参考 Trying to Build Swift on CentOS 7.1 from Source,有可能可以从源代码编译。
参考
『Mastering Swift 3 - Linux』
Last updated
Was this helpful?