在 Ubuntu 16.04 Xenial Xerus 上安裝 Swift 3.0

作者:Joe,原文鏈接,原文日期:2016-06-25
譯者:小鍋;校對:saitjr;定稿:CMB

我們對“讓 Swift 3.0 在更多的 Linux 系統(tǒng)上運行”這件事充滿了熱情,因此我們開始在 Ubuntu 16.04,即 Xenial Xerus,X86 系統(tǒng)上構(gòu)建 Swift 3.0。安裝過程十分簡單,只需要添加我們的 APT 倉庫,并使用 apt-get 就可以了。二進制文件會被安裝到 /opt/swift/swift-3.0 目錄下,所以在安裝 3.0 版本后需要更新 path 路徑。編輯手記:對于我們?yōu)槭裁词褂?/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. 執(zhí)行 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

開始執(zhí)行!

bash
.build/debug/Dealer

FAQ

Q. 這些二進制版本是蘋果官方構(gòu)建的嗎?
A. 并不是,我是在自己的個人服務(wù)器上構(gòu)建的,構(gòu)建過程請參考我之前的文章。

Q. 此版本的構(gòu)建包含了哪些 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

每個構(gòu)建版本的源碼樹 (source tree) 都是未經(jīng)變動的。

Q. 你在上傳這些二進制之前有進行過測試嗎?
A. Swift 的構(gòu)建過程就是對二進制文件的測試,之后我會進行一些基本的測試,并且用它來編譯我自己的應(yīng)用,但是我目前并沒有單獨全面的測試用具。

Q. 你是按一定的日程計劃來發(fā)布新的構(gòu)建版本嗎?
A. 并不是,不過我是盡量與蘋果官方的發(fā)布保持同步的。我的目的就是發(fā)布這些東西,然后使用大家能夠體驗并開始在 Linux 上面進行 Swift 開發(fā)。

Q. 安裝后的文件都在哪里?
A. 所有的文件都放在 /opt/swift/swift-3.0/usr 目錄下。

Q. 如何理解包的版本號?
A. 將版本號進行分解,3.0-0ubuntu10+xenial1 可以理解為:

  • 3.0 是 Swift 打包的版本號
  • -0ubuntu10 說明這是 Ubuntu 的第二個包,而開頭的 0 代表當(dāng)前的包不是基于上游的 Debain 包進行改造的。
  • +xenial1 表示這個包是用于 Xenial Xerus 的。

我覺得我的理解是對的,但如果你有別的看法,可以發(fā)郵件到 support@iachieved.it 進行探討。

我們是如何做這些事的

關(guān)于如何在 Amazon S3 上面部署 Debain 包倉庫,我使用的這份超贊的教程。我曾經(jīng)試過配置 Launchpad PPA,但是坦白講,我對部署一個簡單的包而需要進行麻煩復(fù)雜的元數(shù)據(jù)整合感到十分厭倦。我能確定對于發(fā)行版?zhèn)}庫的部署,這些步驟是必要的,但是對于我需要部署的東西,這顯然是殺雞用牛刀了。對于那些開發(fā) fpm 人們,他們也有一些自己的看法。

我們用來構(gòu)建代碼并且將其上傳到倉庫的打包腳本可以在 Github 上找到。對于 Swift 3.0,記得切換到 swift-3.0 分支。

本文由 SwiftGG 翻譯組翻譯,已經(jīng)獲得作者翻譯授權(quán),最新文章請訪問 http://swift.gg。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容