歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux基礎教程:運行在Linux平台的開源Swift

Linux基礎教程:運行在Linux平台的開源Swift

日期:2017/2/25 10:33:25   编辑:Linux教程

Swift 開源了,喜大普奔之後,我們發現它現在變成跨平台的了,開源後的 Swift 不止能運行在 MAC 和 iOS 平台,現在也可以運行在 Linux 平台了。我們現在就來看看 Linux 上的 Swift。

安裝 Linux 環境

swift.org 網站上面提供了在 Linux 上面安裝 Swift 環境的完整指引。當前 Swift 支持 Ubuntu 15.10 和 Ubuntu 14.04 兩個版本。

如果你已經安裝好 Ubuntu 環境了,就可以跳過這一節,繼續後面內容。

如果要運行 Linux 版本的 Swift,首先你需要一個 Linux 環境,如果你自己有 Linux 服務器,它可以作為運行環境,或者你有一台裝有 Linux 系統的電腦,也可以將它作為運行環境。

  1. VirtualBox

當然,更加普遍的情況應該是通過虛擬機來運行 Linux,我們可以使用 VirtualBox 作為虛擬機環境。

我們可以在 VirtualBox 的下載頁面進行下載: https://www.virtualbox.org/wiki/Downloads

打開頁面後,根據自己電腦的平台,下載相應的版本。

下載完成後,按照安裝指引將 VirtualBox 安裝好。

現在,虛擬機環境安裝好了,我們還要給這個虛擬機安裝一個操作系統,也就是我們需要的 Ubuntu。

  1. Vagrant

之前用過虛擬機的同學可能想到,先去 Ubuntu 網站下載一個鏡像,然後掛載到虛擬機中,這是一個比較通用的做法。

當然我們還可以用一個更加簡便的方法,那就是 Vagrant

Vagrant是 VirtualBox 的一個命令行工具,可以幫助我們快速配置和部署 VirtualBox 主機。 我們可以在這裡下載 Vagrant 的安裝程序: https://www.vagrantup.com/downloads.html

Vagrant通過一個名為 Vagrantfile 的文件來進行虛擬機的部署操作,這個文件存存儲的是一段腳本,用來聲明我們的部署任務。

接下來,創建一個文件夾作為我們的虛擬機目錄,然後在這個文件夾中創建一個 Vagrantfile 文件:

Vagrant.configure(2) do |config|

  config.vm.box = "https://cloud-images.ubuntu.com/vagrant/trusty/20151201/trusty-server-cloudimg-amd64-vagrant-disk1.box"

  config.vm.provision "shell", inline: <<-SHELL

    sudo apt-get --assume-yes install clang
    curl -O https://swift.org/builds/ubuntu1404/swift-2.2-SNAPSHOT-2015-12-01-b/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04.tar.gz
    tar zxf swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04.tar.gz	
    echo "export PATH=/home/vagrant/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/bin:\"${PATH}\"" >> .profile
  SHELL
end

使用 Swift 包管理

同樣,開源的 Swift 也提供了包管理平台,相信今後無論你使用 Swift 開發一款 iOS APP, 甚至是一個 Linux 服務端程序,你都能夠很快的在包管理平台上找到快速解決問題的第三方庫。

下面我們就來看看如何使用 Swift 的包管理系統。Swift 開源社區在 Github 上提供了一個例子說明了這個問題,首先我們在 Ubuntu 上面安裝 git 命令工具:

sudo apt-get --assume-yes install git

安裝成功後,將 Swift 包管理的示例從 Github 上面復制出來:

git clone https://github.com/apple/example-package-dealer.git

復制成功後,我們用 ls 命令看到這個包裡面有 4 個文件:

CONTRIBUTING.md  
Package.swift  
README.md  
main.swift

其中 main.swift 是程序的代碼文件,而 Package.swift 就是包管理文件,我們來看一下 Package.swift 的內容:

import PackageDescription

let package = Package(
    name: "Dealer",
    dependencies: [
        .Package(url: "https://github.com/apple/example-package-deckofplayingcards.git", majorVersion: 1),
    ]
)

這裡面定義了我們這個包的名稱: name: "Dealer" , 然後還定義了它的依賴關系, 它依賴於另外一個代碼庫:

https://github.com/apple/example-package-deckofplayingcards.git

通過 Package.swift 的定義, swift build 命令就可以根據相應的依賴關系,自動為我們的項目抓取那些需要的第三方庫。

我們現在可以運行 build 命令:

swift build

可以看到, swift build 正在替我們把各種項目的依賴關系處理了一遍:

Cloning Packages/example-package-deckofplayingcards
Cloning Packages/example-package-fisheryates
Cloning Packages/example-package-playingcard
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

從輸出可以看到,我們復制出來的這個項目的依賴項目,又依賴了其他的項目,形成了一個依賴鏈條。

swift build 命令運行完成自後,我們會發現項目的根目錄中多了一個 Packages 目錄,這個目錄裡面存放了我們抓取下來的依賴項目:

+ Packages 
|	example-package-deckofplayingcards-1.0.2
|	example-package-fisheryates-1.0.2
|	example-package-playingcard-1.0.1

這個就是 Swift 包管理系統的基本概念了。

Copyright © Linux教程網 All Rights Reserved