LoginSignup
9
10

More than 5 years have passed since last update.

Arch LinuxにSwiftをインストールする

Last updated at Posted at 2016-04-26

はじめに

Appleが開発したSwiftがオープンソースになって、Linux上で動くようになりました。公式バイナリはUbuntu版しかありませんが、これを利用した"swift-bin"パッケージがAURに登録されています。これをそのまま利用できればよかったのですが、一筋縄ではいかないので工夫しましょう、というのがこの記事です。

ちなみに、ソースコードからビルドする"swift"というパッケージもありますが、これはこれでビルドにこけたりするのであまりおすすめしません。

PGP鍵のインポート

依存関係でインストールされるパッケージの中には鍵の照合を行うものがあります。しかしその鍵は自動でインポートしてくれません。インストールを行う前に、手動でインポートする必要があります。今回は2種類の鍵をインポートします。

$ gpg --keyserver pgp.mit.edu --recv-keys F7E48EDB
$ wget -q -O - https://swift.org/keys/all-keys.asc | gpg --import -

先にインポートした鍵は依存関係でインストールされる"ncurses5-compat-libs"のためのもので、後にインポートした鍵はswift-binのためのものです。

依存関係の解決

リポジトリにあるlibtinfoのバージョンが6になってしまいましたが、Swiftはバージョン5を要求しています。swift-binパッケージの依存関係では6系がインストールされ、動作に支障があるので5系をインストールします。AURにあるパッケージなので、yaourtを用いてインストールを行います。

$ yaourt -S libtinfo-5

2016年4月27日に、依存関係として登録されていたlibtinfoがlibtinfo-5に変更されたため、この作業は必要なくなりました。

Swiftのインストール

ここに来てやっとSwiftがインストールできます。

$ yaourt -S swift-bin

動作確認

バージョン確認

--versionで確認できます。

$ swift --version
Swift version 2.2 (swift-2.2-RELEASE)
Target: x86_64-unknown-linux-gnu

対話環境のテスト

対話環境を試してみます。対話環境はCtrl+Dで抜けられます。

$ swift
Welcome to Swift version 2.2 (swift-2.2-RELEASE). Type :help for assistance.
  1> 1 + 1
$R0: Int = 2
  2> print("Hello World")
Hello World
  3> let num = 2
num: Int = 2
  4> num * 2
$R1: Int = 4
  5>  

ちなみに対話環境中では常に行末でエンターを押さないと何かおかしいことになります。

% swift
Welcome to Swift version 2.2 (swift-2.2-RELEASE). Type :help for assistance.
  1> print("Hello World 
  2.     ") 
  3.  
  4.  

コンパイラのテスト

コンパイラの動作も確認してみましょう。テスト用のコードを書きます。

test.swift
let nums = (1...10)

for num in nums {
  print(num)
}

コンパイルして実行してみます。

$ swiftc test.swift
$ ./test
1
2
3
4
5
6
7
8
9
10

バッチリですね。

おわりに

そういうわけで、無事にSwiftをArch Linuxにインストールすることができました。Linux上での動作はまだまだ怪しいところがありますが、とりあえず試してみたりだとか、コンパイルできるスクリプト言語の代わりに使ってみるだとか、いろんな方法で遊んでみてください。

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10