先の記事「Linux環境にSwiftインストール1(失敗・メモリ不足)」で失敗したLinux(Ubuntu)へのswiftインストールです。ちなみにダウンロードして解凍/パス設定するぐらいなので、さほど難しい作業はありません。
前回はビルドでメモリ不足に陥ったため、公式ブログからビルド済みのswiftのスナップショットをダウンロードしてみます。こちらは単体テスト未通過のものになるようです。
確認すると、現在(2015/12)時点でUbuntu 15.10と14.04用のSwift2.2スナップショットが用意されています。私の環境はUbuntu 15.04だったので、まずはアップグレード。
①事前準備
cat /etc/lsb-release
や
/etc/issue.net
などでUbuntuのバージョンを確認します。
私は15.04->15.10のアップグレードなので、以下手順で作業。主にWikiの手順そのままです。サーバー環境でなく、デスクトップ環境(GUI)が前提。
1.システム設定から「ソフトウェアとアップデート」を開きます。
2.3つめの「アップデート」と書かれたタブを選択します。
3.「Ubuntuの新バージョンの通知」のドロップダウンメニューを「すべての新バージョン」に設定します。
4.Alt + F2を押してコマンドボックスに”update-manager”と入力します(ダブルクオーテーションは付けません)。
5.「ソフトウェアの更新」が開いて、次のように表示されるはずです: 「Ubuntu 15.10が入手可能です」
6.「アップグレード」を押し、画面に表示される指示に従います。
※アップグレード前にその他のソフトウェアのアップデートが走るかもしれません
また、失敗等があった場合に「System program problem detected」といったダイアログが出る場合があるので、その際はクラッシュレポートを送信する?か以下コマンドでファイル削除
sudo rm /var/crash/*
※アップグレードに際してサードパーティのリポジトリが無効になるようなので、必要あれば後で再設定する
※eeebookでは64bitOS(Ubuntu)をUEFI起動させるために細工しており、grub周りでエラーが起きたまま無視したが、一応Ubuntu 15.10になった様子
②Swiftスナップショットダウンロード
まずは公式ブログのダウンロードページにアクセス。
今回はUbuntu 15.10用のファイル「Ubuntu 15.10 Swift 2.2 Snapshot」をダウンロードします。
同時に「Ubuntu 15.10 Swift 2.2 Snapshot(Signature)」みたいなリンク部分の「(Signature)」の箇所をクリックし、シグネチャファイルをダウンロードしておきます。(非常に分かり辛い。。。)
③必要な依存ソフトウェアインストール
sudo apt-get install clang libicu-dev
④ダウンロードしたファイルの正当性確認
署名の取得。
gpg --keyserver hkp://pool.sks-keyservers.net \ --recv-keys \ '7463 A81A 4B2E EA1B 551F FBCF D441 C977 412B 37AD' \ '1BE1 E29A 084C B305 F397 D62A 9F59 7F4D 21A5 6D5F'
署名の更新。
gpg --keyserver hkp://pool.sks-keyservers.net --refresh-keys Swift
ファイル正当性確認。
gpg --verify ダウンロードしたシグネチャファイル(.sig) ダウンロードしたアーカイブファイル(.tar.gz)
不正な署名ですとの警告っぽいのが出ますが、失敗していないのでシグネチャは合っている(と思います)。
⑤ファイル解凍/パス設定
swiftのアーカイブファイル解凍。
tar xzf ダウンロードしたアーカイブファイル(.tar.gz
パス設定。
export PATH=Swiftアーカイブファイル解凍フォルダ/usr/bin:"${PATH}"
※「~/.bashrc」ファイルにでも記入し、「source ~/.bashrc」と打ち込んでおけばログイン毎に有効になる
⑥インストール確認
以下を実行すると、swiftのコマンドラインが開く。
swift
「1>」のような表示がなされるので、ここにコード記述が可能。終了する場合は「:quit」と打ち込めば良い。
以上でさしあたり作業終了。お疲れ様でした。
さて、XCodeのないswiftは勉強しようか悩む。。。とりあえず色々やる事あるので、後回しかな。
以下はLinuxに関するインストール手順の日本語訳。
Linux
Linux版のパッケージはSwiftコンパイラ、libと関連ツールのコピーを含むtarアーカイブです。得たツールがPATHにある限り、どこでもインストール可能。
Swiftは以下に述べた他のLinuxディストリビューションに運ばれる事を、何も防止しない事に注意して下さい。テスト、ビルドしたバイナリのLinuxディストリビューションだけです。
必要条件
Ubuntu 14.04 or 15.10 (64-bit)
サポート対象プラットフォーム
Ubuntu 14.04 or 15.10 (64-bit)
以前のリリース
Ubuntu 14.04/15.10のSwift2.2スナップショットダウンロードリンク
(※ここにリンクはつけませんが、ブログにはリンクがあります)
インストール方法
(1)必須依存ソフトウェアのインストール
sudo apt-get install clang libicu-dev
(2)リリースされた最新のバイナリを上からダウンロード
「swift-
gpg --keyserver hkp://pool.sks-keyservers.net \ --recv-keys \ '7463 A81A 4B2E EA1B 551F FBCF D441 C977 412B 37AD' \ '1BE1 E29A 084C B305 F397 D62A 9F59 7F4D 21A5 6D5F'
または
wget -q -O - https://swift.org/keys/all-keys.asc | gpg --import -
既にキーをインポートしている場合、この手順はスキップして下さい。
(4)PGPシグネチャ確認
Linux版の「.tar.gz」アーカイブはSwift OSSプロジェクトのキーの1つとしてGnuPGによって署名されている。ソフトウェアを使用する前にシグネチャを確認することを強く推奨されます。
はじめに、可能なら、廃止された証明をダウンロードするためにキーのリフレッシュを行ってください。
gpg --keyserver hkp://pool.sks-keyservers.net --refresh-keys Swift
シグネチャファイルを使い、アーカイブが完全である事を確認します。
gpg --verify swift-<VERSION>-<PLATFORM>.tar.gz.sig ... gpg: Good signature from "Swift Automatic Signing Key #1 <swift-infrastructure@swift.org>"
公開鍵を持たないためにgpgが確認できないなら(gpg:シグネチャがチェックできませn:公開鍵がありません)、keyringに有効な署名キーをインポートする指示に従って下さい。
以下のような警告を見るかもしれません。
gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner.
この警告は、キーとの間の信頼について、ウェブのパスがないことを意味します。信用される関係者からキーを回収して上記のステップを辿ったのなら、警告は無害です。
gpgが確認に失敗し、「BADシグネチャ」とレポートされる場合、toolchainを使わないでください。代わりに、我々が問題を調査できるように、可能な限り多くの詳しい情報を「swift-infrastructure@swift.org」にメールで送ってください。
(5)以下のコマンドでアーカイブを取り出す
tar xzf ダウンロードしたアーカイブファイル(.tar.gz)
アーカイブの場所で、「usr/」ディレクトリをつくります。
(6)以下の通り、Swift toolchainをPATHに加えます
export PATH=/path/to/usr/bin:"${PATH}"
※上記の「/path/to」は「ダウンロードしたアーカイブの解凍フォルダ/usr」に該当
REPLまたはビルドしたSwiftプロジェクトを走らせるswiftコマンドを実行できる。
(7)有効な署名キー
Swiftプロジェクトは、ビルドしたスナップショットのため、全ての公式リリースのために別々のキーを使う。4096bitのRSA暗号鍵を使います。
以下のキーは、toolchainパッケージの書名に使われます。
・Swift Automatic Signing Key #1
※ダウンロードリンク等の情報は、ここに掲載しません
gpg --keyserver hkp://pool.sks-keyservers.net \ --recv-keys \ '7463 A81A 4B2E EA1B 551F FBCF D441 C977 412B 37AD'
または
wget -q -O - https://swift.org/keys/automatic-signing-key-1.asc | gpg --import -
・Swift 2.2 Release Signing Key
※ダウンロードリンク等の情報は、ここに掲載しません
gpg --keyserver hkp://pool.sks-keyservers.net \ --recv-keys \ '1BE1 E29A 084C B305 F397 D62A 9F59 7F4D 21A5 6D5F'
または
wget -q -O - https://swift.org/keys/release-key-swift-2.2.asc | gpg --import -