OSXでオープンソースSwiftの開発環境-まずビルドまで

Swiftでの開発環境

Swiftでボットを作るためのフレームワークをオープンソース化しました こちらの記事でオープンソースSwiftでの開発を始めているのですが、最初あまりにも試行錯誤だったので、まとめの情報を書いておきたいと思います。僕もわからないことばかりで、試行錯誤中なので、この方法がいいよというのがあったら教えてください。

“OSXでオープンソースSwiftの開発環境-まずビルドまで” の続きを読む

Swiftでボットを作るためのフレームワークをオープンソース化しました

Swift がオープンソース化して、Linux、OSX両方で動くコードを書けるようになったので、Slackのボットに挑戦してみました。

tomohisa/SwiftSlackBotter: Bot Framework for Swift Linux Command Line

以下はReadmeの意訳です。


SwiftSlackBotter

SwiftSlackBotter はLinux、OSXで動くSlackボットのためのフレームワークです。 J-Tech Creations, Inc. により作成されました。


SwiftSlackBotter はSwiftのための Slack Bot フレームワークです。オープンソース版の DEVELOPMENT-SNAPSHOT-2016-02-08-a Swift を使用する必要があります。Zewo フレームワークのバージョン 0.3、Environment フレームワークのバージョン 0.1 を使用しています。

Zewo/Zewo: Open source libraries for modern server software.
czechboy0/Environment: Easy access to environment variables from Swift. Linux & OS X ready.

環境設定方法

ここでは、OSX環境の設定方法を書いています。Linuxでのビルド方法は、各ツールのページから見つかります。
(Linuxのビルドはまだ試していません)
“Swiftでボットを作るためのフレームワークをオープンソース化しました” の続きを読む

OSX Yosemite だインストールした古いRubyGemsをアンインストールして再インストールする方法

最近、Open Source Swift を使って、サーバーサイドSwiftの技術調査を行っています。Swift 3.0のブランチが二週間に1度くらいアップデートして、それに合わせて、フレームワークも書き換わるので、あのライブラリはこのSwiftで動くけど、このライブラリは動かないというエキサイティングな状況です。この時期に多くのフレームワークが開発されていますが、Linux、OSXで動かすためにはFoundationライブラリさえ使えないという状況の中、HTTPサーバーを頑張って開発している、Zewoという会社のフレームワークで、テスト版のSlackBotを作成しています。

その際にRubyGemを使ってツールをインストールしようとしたところ、
ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/gem

のエラーが出て、gemをインストールできませんでした。sudoをつけてもできなくて、調べてみたところ、どうもgemが、/usr/bin/gemにあるのが悪いようでした。Ruby Version Managerを入れても、結局/usr/bin/gem/のgemが優先されて呼ばれていまいました。それもOSX El Capitan で Rootlessという機能がデフォルトで有効になって、sudoでも、/usr/bin領域が書き換えられなくなりました。ただ、意図して書き換えることができるように、

  1. Command+Rを押しながら起動して、Utility – Terminalを起動
  2. 以下のコマンドでRootlessを無効にする
  3. csrutil disable; reboot
     

  4. 再起動して以下のコマンドで、Gemを削除
  5. rm -rf /usr/bin/gem

  6. 以下のコマンドで、RVM(Ruby Version Manager)をアンインストール
  7. rvm implode

  8. Command+Rを押しながら再起動して、Rootlessを再度有効にする
  9. csrutil enable; reboot

  10. RVMをインストール
  11. \curl -sSL https://get.rvm.io | bash -s stable

  12. RVMの設定
  13. rvm get head
    rvm --auto-dotfiles
    ram reload
    rvm list known
    rvm install 2.3
    rvm docs generate-ri
    which gem

    最後のコマンドで、どのgemが参照されるか確認すると、

    MBPR:~ tomohisa$ which gem
    /Users/tomohisa/.rvm/rubies/ruby-2.3.0/bin/gem

    と正しいgemが参照されました。sudoが必要ないエリアにインストールできたので、
    gem install cocoapods
    gem install zewo-dev

    のようにsudo なしで、gemを使用できるようになりました。

GUIの統合環境ばかりで久しぶりにCUIの環境で開発していますが、慣れてくるとこちらも楽しいですね。