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 的类型系统在编译时执行更多种类的数据验证消除更多潜在的歧义来源,并帮助我们在整个代码库中保持类型安全,通过使用幻象类型(phantom types),对Swift 幻象类型相关知识感兴趣的朋友一起看看吧
    2022-05-05
  • Swift中swift中的switch 语句

    Swift中swift中的switch 语句

    本文给大家介绍了swift中的swift语句,以及和c语音中的写法区别,本文介绍的非常详细,需要的朋友参考下
    2016-12-12
  • Swift中添加双击手势识别器

    Swift中添加双击手势识别器

    在这次IOS应用开发教程中,我们打算实现手势识别。正如你所知道的,IOS支持大量的手势操作,它们能提供了很好的应用控制和出色用户体验。
    2019-08-08
  • swift3.0 创建sqlite数据库步骤方法

    swift3.0 创建sqlite数据库步骤方法

    本篇文章主要介绍了swift3.0 创建sqlite数据库步骤方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • iOS开发中Swift 指纹验证功能模块实例代码

    iOS开发中Swift 指纹验证功能模块实例代码

    本文给大家分享ios调用touchid代码块,非常不错,具有参考借鉴价值,需要的朋友参考下把
    2017-03-03
  • 详解Swift中enum枚举类型的用法

    详解Swift中enum枚举类型的用法

    Swift中通过enum关键字可以直接创建出枚举对象,而且可以使用switch和case语句来进行流程控制,十分强大和灵活,这里我们就来详解Swift中enum枚举类型的用法
    2016-06-06
  • 在Mac OS的终端中运行Swift应用的方法

    在Mac OS的终端中运行Swift应用的方法

    这篇文章主要介绍了在Mac OS的终端中运行Swift应用的方法,依靠Xcode的REPL功能来实现,需要的朋友可以参考下
    2015-07-07
  • Swift使用表格组件实现单列表

    Swift使用表格组件实现单列表

    这篇文章主要为大家详细介绍了Swift使用表格组件实现单列表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • SpringBoot3.0集成Redis缓存的实现示例

    SpringBoot3.0集成Redis缓存的实现示例

    缓存就是一个存储器,常用 Redis作为缓存数据库,本文主要介绍了SpringBoot3.0集成Redis缓存的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 浅谈swift 4.0中private所发生的变化

    浅谈swift 4.0中private所发生的变化

    Swift 4是苹果计划于2017年秋季推出的最新版本,其主要重点是提供与Swift 3代码的源兼容性,并努力实现ABI稳定性。下面这篇文章主要给大家介绍了关于swift 4.0中private所发生的一些变化,需要的朋友可以参考下。
    2017-12-12

最新评论