Ubuntu 16.04上安装 Swift 3.0及问题解答

 更新时间:2016年07月20日 08:56:24   作者:小锅   我要评论
本文给大家分享的是在Ubuntu系统中安装 Swift 3.0的方法和步骤,以及安装过程中有可能遇到的问题的解答,这里推荐给小伙伴们,希望大家能够喜欢

我们对“让 Swift 3.0 在更多的 Linux 系统上运行”这件事充满了热情,因此我们开始在 Ubuntu 16.04,即 Xenial Xerus,X86 系统上构建 Swift 3.0。安装过程十分简单,只需要添加我们的 APT 仓库,并使用 apt-get 就可以了。二进制文件会被安装到 /opt/swift/swift-3.0 目录下,所以在安装 3.0 版本后需要更新 path 路径。编辑手记:对于我们为什么使用 /opt/swift 而不是 /usr/bin/ 目录,可以在 swift-dev 邮件列表上的这个帖子里面找到原因。

1. 添加仓库密钥

复制代码 代码如下:

bash
wget -qO- http://dev.iachieved.it/iachievedit.gpg.key | sudo apt-key add -

2. 添加 Xenial 仓库到 source.list 中

复制代码 代码如下:

bash
echo "deb http://iachievedit-repos.s3.amazonaws.com/ xenial main" | sudo tee --append /etc/apt/sources.list

3. 执行 apt-get update

复制代码 代码如下:

bash
sudo apt-get update

4. 安装 swift-3.0!

复制代码 代码如下:

bash
sudo apt-get install swift-3.0

5. 更新 PATH 路径!

复制代码 代码如下:

bash
export PATH=/opt/swift/swift-3.0/usr/bin:$PATH

6. 测试

复制代码 代码如下:

bash
git clone https://github.com/apple/example-package-dealer
cd example-packager-dealer
swift build
Compiling Swift Module 'FisherYates' (1 sources)
Linking Library:  .build/debug/FisherYates.a
Compiling Swift Module 'PlayingCard' (3 sources)
Linking Library:  .build/debug/PlayingCard.a
Compiling Swift Module 'DeckOfPlayingCards' (1 sources)
Linking Library:  .build/debug/DeckOfPlayingCards.a
Compiling Swift Module 'Dealer' (1 sources)
Linking Executable:  .build/debug/Dealer

开始执行!

复制代码 代码如下:

bash
.build/debug/Dealer

FAQ

Q. 这些二进制版本是苹果官方构建的吗?

A. 并不是,我是在自己的个人服务器上构建的,构建过程请参考我之前的文章。

Q. 此版本的构建包含了哪些 git 的历史版本?

A. 可以使用 apt-cache show swift-3.0 来查看这些信息。例如:

复制代码 代码如下:

bash
# apt-cache show swift-3.0
Package: swift-3.0
Conflicts: swift-2.2
Version: 1:3.0-0ubuntu10+xenial1
Architecture: amd64
Installed-Size: 370463
Maintainer: iachievedit (support@iachieved.it)
Depends: clang (>= 3.6), libicu-dev
Homepage: http://dev.iachieved.it/iachievedit/swift
Priority: optional
Section: development
Filename: pool/main/s/swift-3.0/swift-3.0_3.0-0ubuntu10+xenial1_amd64.deb
Size: 72513864
SHA256: b1bf548f353466ea72696089a8b666956a2603edb467eb0517e858eb1ba86511
SHA1: 5dd02b14d21f2e821040de3bb1052561653fcfcd
MD5sum: f2c3d3b9517a303cc86558b6c560a8d6
Description: Open Source Swift
 This is a packaged version of Open Source Swift 3.0 built from
 the following git revisions of the Apple Github repositories:
       Clang:  460d629e85
        LLVM:  8d0086ac3e
       Swift:  1abe85ab41
  Foundation:  4c15543f82
Description-md5: a6b1dd247c7584b61692a101d9d0e5fa

每个构建版本的源码树 (source tree) 都是未经变动的。

Q. 你在上传这些二进制之前有进行过测试吗?

A. Swift 的构建过程就是对二进制文件的测试,之后我会进行一些基本的测试,并且用它来编译我自己的应用,但是我目前并没有单独全面的测试用具。

Q. 你是按一定的日程计划来发布新的构建版本吗?

A. 并不是,不过我是尽量与苹果官方的发布保持同步的。我的目的就是发布这些东西,然后使用大家能够体验并开始在 Linux 上面进行 Swift 开发。

Q. 安装后的文件都在哪里?

A. 所有的文件都放在 /opt/swift/swift-3.0/usr 目录下。

Q. 如何理解包的版本号?

A. 将版本号进行分解,3.0-0ubuntu10+xenial1 可以理解为:

3.0 是 Swift 打包的版本号
-0ubuntu10 说明这是 Ubuntu 的第二个包,而开头的 0 代表当前的包不是基于上游的 Debain 包进行改造的。
+xenial1 表示这个包是用于 Xenial Xerus 的。

我觉得我的理解是对的,但如果你有别的看法,给我留言

我们是如何做这些事的

关于如何在 Amazon S3 上面部署 Debain 包仓库,我使用的这份超赞的教程。我曾经试过配置 Launchpad PPA,但是坦白讲,我对部署一个简单的包而需要进行麻烦复杂的元数据整合感到十分厌倦。我能确定对于发行版仓库的部署,这些步骤是必要的,但是对于我需要部署的东西,这显然是杀鸡用牛刀了。对于那些开发 fpm 人们,他们也有一些自己的看法。

我们用来构建代码并且将其上传到仓库的打包脚本可以在 Github 上找到。对于 Swift 3.0,记得切换到 swift-3.0 分支。

相关文章

  • 解析Swift中的泛型支持与使用

    解析Swift中的泛型支持与使用

    支持泛型意味着可以在规定参数类型的情况下更灵活地编写程序,也是Swift语言先进而又强大的体现,这里我们就来解析Swift中的泛型支持与使用:
    2016-07-07
  • Swift中的Access Control权限控制介绍

    Swift中的Access Control权限控制介绍

    这篇文章主要介绍了Swift中的Access Control权限控制介绍,本文讲解了private、internal、public三个关键字的使用,需要的朋友可以参考下
    2015-05-05
  • Swift中初始化方法的顺序介绍

    Swift中初始化方法的顺序介绍

    这篇文章主要介绍了Swift中初始化方法的顺序介绍,本文介绍的是了类的初始化方法,需要的朋友可以参考下
    2015-01-01
  • Swift中图片资源使用流程的优化方法详解

    Swift中图片资源使用流程的优化方法详解

    这篇文章主要给大家介绍了关于Swift中图片资源使用流程的优化方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • Swift操作Quartz 2D进行简单的绘图与坐标变换的教程

    Swift操作Quartz 2D进行简单的绘图与坐标变换的教程

    这篇文章主要介绍了Swift操作Quartz 2D进行简单的绘图与坐标变换的教程,Quartz 2D是Core Graphics框架中的一个重要组件,经常被Mac OS或和iOS开发者用来绘图,需要的朋友可以参考下
    2016-04-04
  • Swift 3.1聊天界面键盘效果的实现详解

    Swift 3.1聊天界面键盘效果的实现详解

    这篇文章主要给大家介绍了Swift 3.1聊天界面键盘效果实现的相关资料,文中介绍的非常详细,相信对大家的学习或者工作具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • 深入理解Swift中的变量与常量

    深入理解Swift中的变量与常量

    本文主要是介绍Swift中最常用的常量和变量,将从“变量常量的定义”、"如何声明变量常量"、“变量和常量的命名”,"变量常量的本质区别"四个方面入手,重点介绍变量和常量的使用以及区别,希望大家在阅读完本文后都可以熟练使用它们。有需要的朋友们下面来一起学习吧。
    2017-01-01
  • Swift中字典与JSON转换的方法

    Swift中字典与JSON转换的方法

    Swift中经常会遇到字典和字符串的相互转换,本篇文章主要介绍了Swift中字典与JSON转换的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • 10个惊艳的Swift单行代码

    10个惊艳的Swift单行代码

    这篇文章主要为大家分享了10个惊艳的Swift单行代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 深入解析Swift编程中枚举类型的相关使用

    深入解析Swift编程中枚举类型的相关使用

    这篇文章主要介绍了Swift编程中枚举类型的相关使用,是Swift入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11

最新评论