LoginSignup
83
82

More than 5 years have passed since last update.

Swift on Linux: Getting Started ASAP

Last updated at Posted at 2015-12-04

キター!

理念的にはオープンソースであることが最重要ですが、実地ではApple製品以外の環境も正式サポートされたことが大きいでしょう。これでやっと真の意味での汎用言語となったわけです。

というわけで、早速使ってみましょう。

下準備

  • Ubuntu 14.04 LTS or Ubuntu 15.10 (64bit)

もちろんVMでも構いません。メモリー2GB、仮想ディスク16GBもあれば余裕です。ソースから debugugging symbol までサポートしたフルビルドをしたい場合は、打って変わってメモリー16GBでも足りず、さらに16GBほどswapを足してやっと事なきを得ましたが、バイナリーをダウンロードして使うのであれば最低限で事足ります。

  • clangのアップデート(14.04 LTSのみ)

15.10では不要のようです。

$ sudo apt-get install clang-3.6
$ sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.6 100
$ sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.6 100

ダウンロード

あとは

からLatest Development Snapshot をダウンロードし、適当なところに解凍すれば準備完了です。ここでは配布物全体を~/swiftにおいています。全部で90MB弱。clangなどが含まれていないとはいえ、意外とコンパクトです。

$ wget 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 zxvf swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04.tar.gz
$ mv swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04 ~/swift

なお、上記のtarball名は記事執筆現在のものなので、適宜読み替えて下さい。

REPL

それではREPLから行きましょうか。

見ての通り、~/swift/usr/bin/swiftで行けます。フルパスが面倒なら

$ export PATH=$HOME/swift/usr/bin:$PATH

とでもしておきましょう。

import Glibc // 最低限文化的な環境

ご存知の通り、すっぴん、つまり何もimportされていない状態のSwiftは、libcの関数さえ使えません。iOSなら最初にimport UIKit、OSXならimport Cocoaと最初に書く(新規playgroundには最初から入っている)のはそのためですが、Linuxではどうしたらよいのでしょう?

import Glibc

だそうです。

以下のようにすると、クロスプラットフォームに出来ました。

#if     os(OSX)
import Cocoa
#elseif os(iOS)
import UIKit
#elseif os(Linux)
import Glibc
#endif

let pi = -2 * atan2(-1, 0)
print("pi = \(pi)")

playgroundやFoundationこそないものの、REPLも最初から用意されてますし、予想以上の完成度でした。apt-get一発でインストールできるようになるのも時間の問題でしょう。Ubuntu以外への移植もどんどん進んで欲しいですね。

Enjoy!

Dan the Man with too Many Platforms to Support

83
82
1

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
83
82