分123アップルが開発しているプログラミング言語である「Swift」のオープンソース版が公開されました。今回はこのSwiftをUbuntu上で利用する方法を紹介します。Xのソフトウェアを開発するために2014年に発表された比較的新しいプログラミング言語です。2をオープンソース化することが発表されていました。Requestがマージされているようです。このオープンソース版Swiftの最大の特徴は「Linuxでも動く」ということです。X向けの開発環境のみが提供されていました。今回オープンソース版を開発するにあたって,より多くのプラットフォームで動くようにすべくLinuxへのポーティングが行われたようです。Licenseですので,そのうちパッケージリポジトリから簡単にインストールできるようになるかもしれません。Port」にも説明がありますが,現時点でその動作にはかなり制約があります。最初に,Objective-Cランタイムは使えません。Foundationモジュールを経由して利用できるAPIのうち,Objective-Cに依存するものは使えないということになります。データ構造などプリミティブなものはObjective-Cの依存を排除することでLinuxでも使えるようになっているものの,インターネットで公開されているサンプルコードのほとんどはLinux版では動かないと思ったほうがいいでしょう。Linux版のXcodeはありません。Builderや対話的な実行環境であるPlayground,テストツールなどの機能が搭載されています。SwiftをプログラミングしてコンパイルするだけであればXcodeはなくてもかまわないのですが,さまざまなサードパーティのライブラリやドキュメントが,Xcodeを前提にしたインストール方法を紹介しているため,Linuxでそれらのライブラリを導入したい場合に苦労することになるでしょう。今のところLinux版のSwiftは,「⁠Swiftというプログラミング言語の学習用」以外の用途に使おうとすると,数多くの障害が立ちはだかると思っておきましょう(※1⁠)⁠。2.2のリリースまでにはもう少し状況が変わっているかもしれません。Manager対応のモジュールが増えてくれば,外部モジュールのインストールもLinuxでも簡単になるものと思います。3.0では,今回のマルチプラットフォーム対応も踏まえた大きな変更を予定しているようなので,さらにLinuxでも使いやすくなる可能性があります。Swiftのインストール方法UbuntuにSwiftをインストールする方法はいくつか存在します。15.10となっています。LTSを対象に,それぞれのインストール方法を個別に紹介しましょう。バイナリファイルをインストールするSwiftを試す上で,一番簡単かつ確実に動作する方法です。2.2の開発版の12月1日のスナップショットになっています。オープンソース版として告知される直前の少し古いバイナリです。今後定期的にバイナリは更新されるものと思いますが,最新版を使いたい場合は次のソースコードからビルドする方法を参照してください。バイナリファイルは「ダウンロードページ」からダウンロードできます。同じページにLinuxでのインストール手順もありますので,それを元にインストールしましょう。手順としては依存するバイナリパッケージをUbuntuの公式リポジトリからインストールした上で,ダウンロードしたファイルを任意の場所に展開し,その場所を実行ファイルの検索パスに追加するだけです。システムファイルを書き換えるようなことはしませんが,もし不安であればLXCなどの仮想環境上で実行すると良いでしょう。バイナリアーカイブとその署名ファイルのダウンロードです。ファイル名の日付部分は将来的に変わるかもしれませんので,適宜適切な値をダウンロードページで取得してください。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.sig手順ではこのあと署名ファイルを使って,ファイルを検証することを「強く推奨」しています。そこでGPGを使って署名を検証する方法も説明しておきましょう。Key)を鍵サーバーから取得する必要があります。found」と表示されます。ID)などが表示されます。Key」の公開鍵であることがわかります(※2⁠)⁠。IDはその公開鍵を作成し,鍵サーバーにアップロードした人が自由に設定できる値です。鍵サーバーには誰でも自由に任意の鍵をアップロードできます。IDの人のものなのかどうかは別の手段で確認する必要があります。今回はHTTPS経由でアクセスしたウェブページで書かれている鍵IDを使うので「おそらく改ざんされていないだろう」という判断のもとにその鍵を信用しています。これはPPAのリポジトリ追加時に行っていることと大差ありません。今回はこのままインポートするわけではないので,「⁠q」を入力して終了してください。--import」コマンドで2つの鍵を取り込んでいます。--recv-keys」の手順を行ってみましょう。Key」の公開鍵も取り込みました。ちなみにコマンドではより確実に特定の鍵を取り込むために,鍵のフィンガープリントを指定していますが,フィンガープリントの末尾である鍵IDを指定してもかまいません。取り込まれた鍵のリストを表示してみましょう。<swift-infrastructure@swift.org>取り込んだ鍵を使って,ファイルの署名を検証しましょう。Key」の秘密鍵を持っている人が署名を行ったファイルのようです。ちなみに「WARNING」は,公開鍵そのものが署名されていないことを伝えています。本来,取り込んだ鍵が本当に妥当なものであるのならば,公開鍵ファイルに取り込んだあとにユーザー自身がその鍵に署名を行うべきです。今回は一時的な使用なので,このステップをスキップしています。ちなみに公開鍵ファイルから,特定の鍵を削除したい場合は,次のように実行してください。<swift-infrastructure@swift.org>さて,GPGによるダウンロードしたファイルの検証が終わったので,次にファイルを展開しましょう。展開先はどこでもかまいません。以下では,展開したあとにディレクトリ名を「swift」に変更しています。swift展開したディレクトリの「usr/bin」を検索パスに追加し,swiftコマンドを実行してみましょう。x86_64-unknown-linux-gnu上記のようにバージョンが表示されればインストール完了です。ちなみにswiftcコマンドを使う場合,clangとbuild-essentialパッケージが必要です。build-essential特に後者をインストールしていない場合,次のようなエラーが表示されます。