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

こんにちは。今回のテーマは『Arch LinuxにSwift 3をインストールする』です。手持ちのArch LinuxでもSwiftを動かしたいと思いたちAURからインストールを試みました。結果的にはエラーメッセージは出るものの一応Swift 3.0.1が動くようになりました。不足している点などはご指摘いただけると幸いです。


【目次】
Arch LinuxにSwift 3.0を入れよう
AURリポジトリのSwiftパッケージはビルド困難
swift-binパッケージをインストールする
ライブラリ関連のエラーが出てしまう

Arch LinuxにSwift 3.0を入れよう

swiftはObjective-Cに代わるiOSの開発言語として誕生し、オープンソース化したことでiOS開発の範囲を越えて使用する場を広げています。Linuxでもswiftは使用することができ、今後はサーバーサイドの開発でも使用されるのではと考えています。そんなswiftをArch Linuxに導入してみます。

AURリポジトリのSwiftパッケージはビルド困難

AUR(Arch User Repository)にはswiftパッケージとswift-binパッケージがあります。swiftパッケージはソースからビルドするためのパッケージですが、ビルドエラーが起こり2017年2月現在ではインストール困難です。一方、swift-binパッケージはUbuntu向けにビルドされたパッケージなのですが、Arch Linuxでも動かすことができます。今回はこのswift-binパッケージをインストールしていきます。

swift-binパッケージをインストールする

pgpキーのインポート

swift-binパッケージをインストールするにはswift-binとncurses5-compat-libsのgpgキーをインポートする必要があります。各パッケージのpgpキーはPACKAGEBUILDファイルの”validpgpkeys”の値です。(リンク:swift-bin,ncurses5-compat-libs)以下のコマンドでpgpキーをインポートします。

$ gpg --recv-keys <PKGBUILD中の'validpgpkeys'の値>

AURリポジトリの依存パッケージのインストール

公式リポジトリで管理されている依存パッケージに関してはyaourtやpackerで自動インストールされるのですが、AURのパッケージ関しては手動でインストールしておきましょう。ncurses5-compat-libsをAURからインストールします。今回はpackerを使用しますがyaourtでも問題ありません。

$ packer -S ncurses5-compat-libs

swift-binのインストール

準備が整いましたのでswift-binをインストールしていきましょう。特別なことは何もなく、AURから他のパッケージと同様にインストールするだけです。今回はpackerでインストールしますが、PKGBUILDをダウンロードしてきてmakepkgコマンドでインストールしてもOKです。

$ packer -S swift-bin

ライブラリ関連のエラーが出てしまう

以上でArch linux上でもswift 3.xを動かすことはできるようになるのですが、残念なことに上記の方法でインストールするとコンパイル時や実行時に下記のようなエラーが出てしまいます。

/usr/lib/libtinfo.so.5: no version information available

これはUubntu用にビルドした際に用いられたライブラリとシステムにインストールされたライブラリのバージョンの差異からくるものと推察しています。過去にAURに存在したlibtinfo-5やlibtinfo5パッケージがなくなり、現在ではncurses5-compat-libsのインストールで入るlibncursesw.so.5リンクしている状態なので、そこが原因かも知れません。いずれにせよArch上でビルドできるようになることが肝心かと思います。

エラーメッセージは出ますが、コンパイルは可能なのでswiftを書いて動かすということ自体は可能です。プログラミングの学習程度であれば支障は無いかと思います。
(本格的なswiftプログラミングはきっとMacで行うでしょうし…)

最後に

恐らく、現状ではswiftはXcode上で使う機会が最も多く、今後もswiftの主戦場はApple製品向けの開発であることは間違いないと思います。Linux上でswiftを動かせるといっても残念ながらiOS開発はできません。

しかしswiftがオープンソース化してクロスプラットフォームで動作するようになるとRubyやPythonのような用途にも活用の場を広げていくと思います。swiftはコンパイラ言語でありながらスクリプト言語ような手軽さも兼ね備えているので近い将来、Web界隈でも需要が出てくるかも知れませんね。
【関連記事】
Python3でMySQLに接続する環境をLinuxで整える
Arch LinuxのパッケージマネージャーYaourtを使ってみる

Sponsored Link


2件のコメント

  • 初めまして西村という者です。早速ですがこの記事に3点ミスがあります。2点は[AURリポジトリの依存パッケージのインストール]という項目内で yaourt であるところが yaoult になっています。後1点は[最後に]の項目でコンパイラ言語言語になっています。些細な事ですが改善してください。私のPC には linux を九つ入れることにして7本既に入っていますが、Nvidia GTX980 を積んでいる関係上悪戦苦闘中です。最後に[2018年初心者におすすめの linux ]を楽しみにしています。よろしくお願いします。ではこれにて。

    • 西村様

      コメントありがとうございます。
      ご指摘の点修正しました。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です