Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CocoaPoderと賢者の宝石
∼ まだ bundle exec で消耗してるの? ∼
@niwatako on Twitter
+
にわとり
タコクラゲ
I ♡ クラゲ
Apple Watch で クラゲが泳ぐ
Apple Watch 最高
CocoaPoderと賢者の宝石
∼ まだ bundle exec で消耗してるの? ∼
よく見かける

CocoaPoderの悲鳴
• みんな違うバージョンのCocoaPodsを使っていて 

Podfile.lock の行末バージョン表記が異なって困る
• CocoaPodsバージョンアップしたせいで動かない
• bundle exec が面倒
• bundle exec ...
Rubyの仕組みで
解決できる。
CocoaPodsとは
– @IT
生産性ガチアゲな

iOSライブラリ管理の神ツール
コマンドで簡単に

Xcodeプロジェクトへ

ライブラリを組み込む

ことが出来る
$ sudo gem install cocoapods

$ pod setup
CocoaPodsのインストール
platform :ios, "6.0"
pod 'AFNetworking', ' > 2.0'
PROJECT_DIR/Podfile
$pod install
Podfileに書いた

ライブラリが取得され、

プロジェクトに組み込まれる。
便利 (/・ω・)/
だが今の手順は

良くない。
CocoaPodsの正体
Rubyというプログラミング言語で作られた、

CocoaPodsというライブラリ

( Ruby Gem  ※Gem=宝石)
ココアポッダーは
Rubyを使っています
$ sudo gem install cocoapods
$ sudo gem install cocoapods
管理者権限を使用している
$ sudo gem install cocoapods
管理者権限を使用している
Macに

標準で入ったRubyを使っているから

gem追加に管理者権限を要している
標準のRubyを使っている
とは
$ which ruby
$ which ruby
/usr/bin/ruby
こんな人は

システムのRubyを

使っている人(=゚ω゚)ノ
Mac に標準で入っている

Rubyに依存している。
だが、Rubyのバージョンは
Mac OS のバージョンによって

異なる可能性がある
例えば
Mountain Lion は Ruby 1 系
Mavericks は Ruby 2 系
ある日突然、OSにつられて
メジャーバージョン

が 変わる
システムRuby ユーザーは
一体 Ruby の

何を信じているのか。
こんなモノへの依存は
排除すべし
やるべきこと1
$ sudo gem install cocoapods
$ sudo gem install cocoapods
RubyにCocoaPodsライブラリを追加
$ sudo gem install cocoapods
RubyにCocoaPodsライブラリを追加
グローバルに

CocoaPodsが入ってしまう
むかーしのプロジェクトを触る時、

今のバージョンのCocoaPodsで

いいんですか?
$ gem install cocoapods

する人は
一体 CocoaPods の

何を信じているのか。
こんな方法への依存は
排除すべし
やるべきこと2
$ bundle install
別の方法について
$ bundle install
Bundler という Ruby の
ライブラリ管理ツール
$ bundle install
Bundler という Ruby の
ライブラリ管理ツール
Ruby版CocoaPod、
というか
こっちが本家。
CocoaPodがPodfileに
必要なライブラリを書くように、
BundlerはGemfileに
必要なライブラリを書く。
Gemfileに cocoapods を書いて
$ bundle install すれば 

cocoapods がインストールされる
$ bundle install
$ bundle install
正解の可能性と
過ちの可能性
2つのチェックポイント
• Gemグローバルインストールしていないか

=プロジェクトのディレクトリ内に

 インストールしたGemを閉じ込めているか
• bundle exec … して消耗していないか

=省略出来る。

 知らずに繰り返す...
グローバルインストール
していないか
Bundlerは放っておくと
グローバルにGemを追加してしまう。
グローバルインストール
していないか
Bundlerは放っておくと
グローバルにGemを追加してしまう。
グローバルインストール
していないか
Bundlerは放っておくと
グローバルにGemを追加してしまう。
何を信じているのか。
グローバルインストール
していないか
ProjectAのために

インストールしたGemが
ProjectBにも適用される。
気づかぬうちに無いはずのGemを使ってしまったり

他プロジェクトによって別VerのGemに

上書きされる恐れ
グローバルインストール
していないか
適切な設定やオプションで

Gemを ディレクトリローカル に

インストールさせることが出来る
グローバルインストール
していないか
プロジェクトが

互いの環境から 独立 して

エレガントになる
グローバルインストール
していないか
だから

$ bundle install
は正解の可能性がある。
グローバルインストール
していないか
しかし
ディレクトリローカルに

インストールしたGemは
PATHが通っておらず

直接実行出来ない。
bundle exec で
消耗していないか
bundle exec pod… などと
bundler を介すると実行できる
bundle exec で
消耗していないか
だが

bundle exec
は打ちにくい。
bundle exec で
消耗していないか
繰り返すと最悪

指を痛める。
bundle exec で
消耗していないか
やるべきこと3
こんなコマンドへの依存は
排除すべし
それでは
はじめましょう
Harry Potter
and
the Philosopher's Gem
エコで(グローバル環境を汚さない)
独立した(システム環境に依存しない)
再現性のある(誰のPCでも動く)
Rubyを使ったプロジェクトの作り方
できるようになること
プロジェクトごとに
利用するRubyを分ける
Rubyのバージョンを
コードで管理する
プロジェクトごとに
利用する gem を
独立させる
bundler で gem を
ディレクトリローカル

に 管理する
bundle exec を

省略する
指に優しく
_人人 人人_
> 消耗しない <
 ̄Y^Y^Y^Y ̄
できるようになること
∼1∼
Rubyのバージョンを
コードで管理する
rbenv
Ruby環境を
総合的に管理できる
rbevnでできる事
• 複数の異なるバージョンのRubyを

同一PC内で時と場合によって切り替えながら

使用することが出来る
• ディレクトリに .ruby-version ファイルを設置して

コードによって このディレクトリで使うRu...
rbenvを使った
トータルでエレガントな
Ruby環境構築をしよう
rbenvをインストール
• MacPortsをアンインストール(もしあれば)
• Xcode Command line tools をインストール
• Homebrewをインストール
• rbenvのインストール
• rbenvを使ってRub...
細かくはWEBで
この記事がわかりやすいらしいですよ
この記事がわかりやすいらしいですよ
※私の記事です
rbenvつかってrailsチュートリアルやってみよう!
http://niwatako.tips/20140724/article121.html
rbenv と Ruby のインストール
# インストールできるRubyの一覧

$ rbenv install -l
# インストール

$ rbenv install 2.1.2
# インストール済みの一覧

$ rbenv version...
使用するRuby バージョンを

指定する
# システム全体で使うバージョンを指定

$ rbenv global 1.9.3-p125
# Mac標準のRubyに戻す

$ rbenv global system
# 特定のディレクトリで使う...
使用するRuby バージョンを

指定する
# システム全体で使うバージョンを指定

$ rbenv global 1.9.3-p125
# Mac標準のRubyに戻す

$ rbenv global system
# 特定のディレクトリで使う...
$ rbenv local 2.1.2
.ruby-version
カレントディレクトリに生成される
$ cat .ruby-version
2.1.2
rbenv を使っていれば、
そのディレクトリの .ruby-version に書かれたRubyが
自動で有効になる
インストールしていない

Rubyのバージョンが

記載されていたら
$ ruby 

rbenv: version `2.1.3' is not installed
Rubyを実行しようとしても
rbenvが止めてくれる
rbenvを標準開発環境として採用し
各プロジェクトで
.ruby-version をリポジトリにコミットすれば
誰のどの端末で clone / checkout しても

開発環境のRubyのバージョンが担保される
Rubyのバージョンを
コードで管理する
Rubyのバージョンを
コードで管理する
クリア!
∼2∼
bundler で gem を
ディレクトリローカル

に 管理する
bundler を使いましょう。
Gemfile を書いて bundle install
bundle install 時に
オプションを付ける
$ bundle install --path=vendor/bundle
カレントディレクトリ

(Gemfileがあるプロジェクトルート)の

vendor/bundle ディレクトリに

インストールした gem を詰め込む
$ bundle install --path=vendor/bundle
カレントディレクトリ

(Gemfileがあるプロジェクトルート)の

vendor/bundle ディレクトリに

インストールした gem を詰め込む
$ bundle install --path=vendor/bundle
インストールさ...
環境にやさしい。
bundler で gem を
ディレクトリローカル

に 管理する
bundler で gem を
ディレクトリローカル

に 管理する
クリア!
∼3∼
指に優しく
カレントディレクトリ

(Gemfileがあるプロジェクトルート)の

vendor/bundle ディレクトリに

インストールした gem を詰め込む
$ bundle install --path=vendor/bundle
インストールさ...
カレントディレクトリ

(Gemfileがあるプロジェクトルート)の

vendor/bundle ディレクトリに

インストールした gem を詰め込む
$ bundle install --path=vendor/bundle
インストールさ...
$ bundle exec …

で実行が必要
rbenv にプラグインを

入れる
git clone git://github.com/
ianheggie/rbenv-binstubs.git
/.rbenv/plugins/rbenv-binstubs
あとは bundle install に

オプションを追加
--binstubs=vendor/bin
$ bundle install

--path=vendor/bundle

--binstubs=vendor/bin
vendor/bin に

bundle install した gem の

実行ファイルが入り、

自動でパスが通るようになる
bundle exec 不要に!
ちなみに、これらのオプション
 --path=vendor/bundle

 --binstubs=vendor/bin
は、プロジェクトルートの

.bundle/config

の中に記録されていて、
2度目以降はオプション不要な上、
リポジ...
指に優しく
指に優しく
クリア!
補足
rbenvの面倒な所
gemをインストールするなど
構成に変更を加える度
$ rbenv rehash
コマンドの実行が必要
新たなる消耗要因!!
プラグインで解決しましょう
git clone https://github.com/
sstephenson/rbenv-gem-rehash.git
/.rbenv/plugins/rbenv-gem-rehash
rbenv rehash が必要なタイミングで
自動で rbenv rehash してくれる。
まとめ
rbenvを使って快適Ruby環境
• Rubyのバージョン管理はrbenvが人気
• rbenvでプロジェクトごとに独立したRuby環境を作れる
• rbenvはプロジェクトのRuby環境をコードで管理出来る
• rbenvはプラグインで便利...
rbenv
Ruby
OS
User
Ruby X.X.X Ruby Y.Y.Y
Bundler Bundler
Project A
cocoapods
User User
Ruby Y.Y.Y
Bundler
B
gem
gemgem
gem...
上級編
RubyGem 信じるんですか?
DNSimpleがDDoS攻撃受けて仕事が出来ない
GitHubがDDoS攻撃受けて仕事ができない
Gem開発者が勝手にGemの名前変えて行方不明
Gem消えた
冪等性とは何だったのか
$ bundle package
vendor/cacheフォルダにgemがキャッシュされる。
$ bundle install --local
vendor/cacheフォルダからgemをインストールする。
gemをローカルにキャッシュして
...
_人人 人人_
> 想定の範囲内 <
 ̄Y^Y^Y^Y ̄
bundler、素晴らしい。
でも bundler 信じるんですか?
・・・bundler自体手に入らなかったら?
bundle install --standalone
bundlerがない環境でも動くようになるらしい。
まだ、調べきれていません。。。
Ruby、homebrew、rbenv
信じるんですか?
宿題
┐(́ω`)┌
紹介
CPU、半導体エンジニアから

インフラ、WEB、スマホアプリまで
フルスタックハウス…!!
ギークハウスに住んでます
風呂の順番待ちを
iBeaconで解消
furobeacon
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
Upcoming SlideShare
Loading in …5
×

CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜

5,900 views

Published on

CocoaPodsを使うiOSエンジニアのためのRubyを上手く活用したCocoaPods環境を作る方法。
・みんな違うバージョンのCocoaPodsを使っていて
・Podfile.lock の行末バージョン表記が異なって困る
・CocoaPodsバージョンアップしたせいで動かない
・bundle exec が面倒
・bundle exec の alias を作ったったwww
・・・このような問題はRuby界隈に用意された便利なツール群を使いこなすことで解決できます。

Published in: Technology
  • Be the first to comment

CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜

  1. 1. CocoaPoderと賢者の宝石 ∼ まだ bundle exec で消耗してるの? ∼
  2. 2. @niwatako on Twitter
  3. 3. + にわとり タコクラゲ
  4. 4. I ♡ クラゲ
  5. 5. Apple Watch で クラゲが泳ぐ
  6. 6. Apple Watch 最高
  7. 7. CocoaPoderと賢者の宝石 ∼ まだ bundle exec で消耗してるの? ∼
  8. 8. よく見かける
 CocoaPoderの悲鳴
  9. 9. • みんな違うバージョンのCocoaPodsを使っていて 
 Podfile.lock の行末バージョン表記が異なって困る • CocoaPodsバージョンアップしたせいで動かない • bundle exec が面倒 • bundle exec の alias を作ったったwww
  10. 10. Rubyの仕組みで 解決できる。
  11. 11. CocoaPodsとは
  12. 12. – @IT 生産性ガチアゲな
 iOSライブラリ管理の神ツール
  13. 13. コマンドで簡単に
 Xcodeプロジェクトへ
 ライブラリを組み込む
 ことが出来る
  14. 14. $ sudo gem install cocoapods
 $ pod setup CocoaPodsのインストール
  15. 15. platform :ios, "6.0" pod 'AFNetworking', ' > 2.0' PROJECT_DIR/Podfile
  16. 16. $pod install
  17. 17. Podfileに書いた
 ライブラリが取得され、
 プロジェクトに組み込まれる。
  18. 18. 便利 (/・ω・)/
  19. 19. だが今の手順は
 良くない。
  20. 20. CocoaPodsの正体 Rubyというプログラミング言語で作られた、
 CocoaPodsというライブラリ
 ( Ruby Gem  ※Gem=宝石)
  21. 21. ココアポッダーは Rubyを使っています
  22. 22. $ sudo gem install cocoapods
  23. 23. $ sudo gem install cocoapods 管理者権限を使用している
  24. 24. $ sudo gem install cocoapods 管理者権限を使用している Macに
 標準で入ったRubyを使っているから
 gem追加に管理者権限を要している
  25. 25. 標準のRubyを使っている とは
  26. 26. $ which ruby
  27. 27. $ which ruby /usr/bin/ruby
  28. 28. こんな人は
 システムのRubyを
 使っている人(=゚ω゚)ノ
  29. 29. Mac に標準で入っている
 Rubyに依存している。
  30. 30. だが、Rubyのバージョンは Mac OS のバージョンによって
 異なる可能性がある
  31. 31. 例えば Mountain Lion は Ruby 1 系 Mavericks は Ruby 2 系
  32. 32. ある日突然、OSにつられて メジャーバージョン
 が 変わる
  33. 33. システムRuby ユーザーは 一体 Ruby の
 何を信じているのか。
  34. 34. こんなモノへの依存は 排除すべし やるべきこと1
  35. 35. $ sudo gem install cocoapods
  36. 36. $ sudo gem install cocoapods RubyにCocoaPodsライブラリを追加
  37. 37. $ sudo gem install cocoapods RubyにCocoaPodsライブラリを追加 グローバルに
 CocoaPodsが入ってしまう
  38. 38. むかーしのプロジェクトを触る時、
 今のバージョンのCocoaPodsで
 いいんですか?
  39. 39. $ gem install cocoapods
 する人は 一体 CocoaPods の
 何を信じているのか。
  40. 40. こんな方法への依存は 排除すべし やるべきこと2
  41. 41. $ bundle install 別の方法について
  42. 42. $ bundle install Bundler という Ruby の ライブラリ管理ツール
  43. 43. $ bundle install Bundler という Ruby の ライブラリ管理ツール Ruby版CocoaPod、 というか こっちが本家。
  44. 44. CocoaPodがPodfileに 必要なライブラリを書くように、 BundlerはGemfileに 必要なライブラリを書く。
  45. 45. Gemfileに cocoapods を書いて $ bundle install すれば 
 cocoapods がインストールされる
  46. 46. $ bundle install
  47. 47. $ bundle install 正解の可能性と 過ちの可能性
  48. 48. 2つのチェックポイント • Gemグローバルインストールしていないか
 =プロジェクトのディレクトリ内に
  インストールしたGemを閉じ込めているか • bundle exec … して消耗していないか
 =省略出来る。
  知らずに繰り返すと指を痛めるリスクが高まる
  49. 49. グローバルインストール していないか
  50. 50. Bundlerは放っておくと グローバルにGemを追加してしまう。 グローバルインストール していないか
  51. 51. Bundlerは放っておくと グローバルにGemを追加してしまう。 グローバルインストール していないか
  52. 52. Bundlerは放っておくと グローバルにGemを追加してしまう。 何を信じているのか。 グローバルインストール していないか
  53. 53. ProjectAのために
 インストールしたGemが ProjectBにも適用される。 気づかぬうちに無いはずのGemを使ってしまったり
 他プロジェクトによって別VerのGemに
 上書きされる恐れ グローバルインストール していないか
  54. 54. 適切な設定やオプションで
 Gemを ディレクトリローカル に
 インストールさせることが出来る グローバルインストール していないか
  55. 55. プロジェクトが
 互いの環境から 独立 して
 エレガントになる グローバルインストール していないか
  56. 56. だから
 $ bundle install は正解の可能性がある。 グローバルインストール していないか
  57. 57. しかし ディレクトリローカルに
 インストールしたGemは PATHが通っておらず
 直接実行出来ない。 bundle exec で 消耗していないか
  58. 58. bundle exec pod… などと bundler を介すると実行できる bundle exec で 消耗していないか
  59. 59. だが
 bundle exec は打ちにくい。 bundle exec で 消耗していないか
  60. 60. 繰り返すと最悪
 指を痛める。 bundle exec で 消耗していないか
  61. 61. やるべきこと3 こんなコマンドへの依存は 排除すべし
  62. 62. それでは はじめましょう
  63. 63. Harry Potter and the Philosopher's Gem
  64. 64. エコで(グローバル環境を汚さない) 独立した(システム環境に依存しない) 再現性のある(誰のPCでも動く) Rubyを使ったプロジェクトの作り方
  65. 65. できるようになること
  66. 66. プロジェクトごとに 利用するRubyを分ける
  67. 67. Rubyのバージョンを コードで管理する
  68. 68. プロジェクトごとに 利用する gem を 独立させる
  69. 69. bundler で gem を ディレクトリローカル
 に 管理する
  70. 70. bundle exec を
 省略する
  71. 71. 指に優しく
  72. 72. _人人 人人_ > 消耗しない <  ̄Y^Y^Y^Y ̄ できるようになること
  73. 73. ∼1∼ Rubyのバージョンを コードで管理する
  74. 74. rbenv
  75. 75. Ruby環境を 総合的に管理できる
  76. 76. rbevnでできる事 • 複数の異なるバージョンのRubyを
 同一PC内で時と場合によって切り替えながら
 使用することが出来る • ディレクトリに .ruby-version ファイルを設置して
 コードによって このディレクトリで使うRuby を
 指定できる。
  77. 77. rbenvを使った トータルでエレガントな Ruby環境構築をしよう
  78. 78. rbenvをインストール • MacPortsをアンインストール(もしあれば) • Xcode Command line tools をインストール • Homebrewをインストール • rbenvのインストール • rbenvを使ってRubyをインストール
  79. 79. 細かくはWEBで
  80. 80. この記事がわかりやすいらしいですよ
  81. 81. この記事がわかりやすいらしいですよ ※私の記事です rbenvつかってrailsチュートリアルやってみよう! http://niwatako.tips/20140724/article121.html
  82. 82. rbenv と Ruby のインストール # インストールできるRubyの一覧
 $ rbenv install -l # インストール
 $ rbenv install 2.1.2 # インストール済みの一覧
 $ rbenv versions
 * system
 1.9.3-p547
 2.0.0-p481
 2.1.2
  83. 83. 使用するRuby バージョンを
 指定する # システム全体で使うバージョンを指定
 $ rbenv global 1.9.3-p125 # Mac標準のRubyに戻す
 $ rbenv global system # 特定のディレクトリで使うバージョンを指定
 $ rbenv local 1.9.3-p125
  84. 84. 使用するRuby バージョンを
 指定する # システム全体で使うバージョンを指定
 $ rbenv global 1.9.3-p125 # Mac標準のRubyに戻す
 $ rbenv global system # 特定のディレクトリで使うバージョンを指定
 $ rbenv local 1.9.3-p125 重要
  85. 85. $ rbenv local 2.1.2
  86. 86. .ruby-version カレントディレクトリに生成される
  87. 87. $ cat .ruby-version 2.1.2
  88. 88. rbenv を使っていれば、 そのディレクトリの .ruby-version に書かれたRubyが 自動で有効になる
  89. 89. インストールしていない
 Rubyのバージョンが
 記載されていたら
  90. 90. $ ruby 
 rbenv: version `2.1.3' is not installed
  91. 91. Rubyを実行しようとしても rbenvが止めてくれる
  92. 92. rbenvを標準開発環境として採用し 各プロジェクトで .ruby-version をリポジトリにコミットすれば 誰のどの端末で clone / checkout しても
 開発環境のRubyのバージョンが担保される
  93. 93. Rubyのバージョンを コードで管理する
  94. 94. Rubyのバージョンを コードで管理する クリア!
  95. 95. ∼2∼ bundler で gem を ディレクトリローカル
 に 管理する
  96. 96. bundler を使いましょう。 Gemfile を書いて bundle install
  97. 97. bundle install 時に オプションを付ける
  98. 98. $ bundle install --path=vendor/bundle
  99. 99. カレントディレクトリ
 (Gemfileがあるプロジェクトルート)の
 vendor/bundle ディレクトリに
 インストールした gem を詰め込む $ bundle install --path=vendor/bundle
  100. 100. カレントディレクトリ
 (Gemfileがあるプロジェクトルート)の
 vendor/bundle ディレクトリに
 インストールした gem を詰め込む $ bundle install --path=vendor/bundle インストールされたgemは
 このプロジェクトでのみ有効。
  101. 101. 環境にやさしい。
  102. 102. bundler で gem を ディレクトリローカル
 に 管理する
  103. 103. bundler で gem を ディレクトリローカル
 に 管理する クリア!
  104. 104. ∼3∼ 指に優しく
  105. 105. カレントディレクトリ
 (Gemfileがあるプロジェクトルート)の
 vendor/bundle ディレクトリに
 インストールした gem を詰め込む $ bundle install --path=vendor/bundle インストールされたgemは
 このプロジェクトでのみ有効。
  106. 106. カレントディレクトリ
 (Gemfileがあるプロジェクトルート)の
 vendor/bundle ディレクトリに
 インストールした gem を詰め込む $ bundle install --path=vendor/bundle インストールされたgemは
 このプロジェクトでのみ有効。 PATHが通らない
  107. 107. $ bundle exec …
 で実行が必要
  108. 108. rbenv にプラグインを
 入れる
  109. 109. git clone git://github.com/ ianheggie/rbenv-binstubs.git /.rbenv/plugins/rbenv-binstubs
  110. 110. あとは bundle install に
 オプションを追加
  111. 111. --binstubs=vendor/bin
  112. 112. $ bundle install
 --path=vendor/bundle
 --binstubs=vendor/bin
  113. 113. vendor/bin に
 bundle install した gem の
 実行ファイルが入り、
 自動でパスが通るようになる
  114. 114. bundle exec 不要に!
  115. 115. ちなみに、これらのオプション  --path=vendor/bundle
  --binstubs=vendor/bin は、プロジェクトルートの
 .bundle/config
 の中に記録されていて、 2度目以降はオプション不要な上、 リポジトリにコミットして
 コードで管理できる。
  116. 116. 指に優しく
  117. 117. 指に優しく クリア!
  118. 118. 補足
  119. 119. rbenvの面倒な所
  120. 120. gemをインストールするなど 構成に変更を加える度 $ rbenv rehash コマンドの実行が必要
  121. 121. 新たなる消耗要因!!
  122. 122. プラグインで解決しましょう
  123. 123. git clone https://github.com/ sstephenson/rbenv-gem-rehash.git /.rbenv/plugins/rbenv-gem-rehash
  124. 124. rbenv rehash が必要なタイミングで 自動で rbenv rehash してくれる。
  125. 125. まとめ
  126. 126. rbenvを使って快適Ruby環境 • Rubyのバージョン管理はrbenvが人気 • rbenvでプロジェクトごとに独立したRuby環境を作れる • rbenvはプロジェクトのRuby環境をコードで管理出来る • rbenvはプラグインで便利に。 • rbenv-binstubs で bundle exec による消耗を回避 • rbenv-gem-rehash で rbenv rehash による消耗を回避
  127. 127. rbenv Ruby OS User Ruby X.X.X Ruby Y.Y.Y Bundler Bundler Project A cocoapods User User Ruby Y.Y.Y Bundler B gem gemgem gem gem
  128. 128. 上級編
  129. 129. RubyGem 信じるんですか?
  130. 130. DNSimpleがDDoS攻撃受けて仕事が出来ない GitHubがDDoS攻撃受けて仕事ができない Gem開発者が勝手にGemの名前変えて行方不明 Gem消えた
  131. 131. 冪等性とは何だったのか
  132. 132. $ bundle package vendor/cacheフォルダにgemがキャッシュされる。 $ bundle install --local vendor/cacheフォルダからgemをインストールする。 gemをローカルにキャッシュして
 ローカルから復元する方法がある!
  133. 133. _人人 人人_ > 想定の範囲内 <  ̄Y^Y^Y^Y ̄
  134. 134. bundler、素晴らしい。
  135. 135. でも bundler 信じるんですか?
  136. 136. ・・・bundler自体手に入らなかったら?
  137. 137. bundle install --standalone
  138. 138. bundlerがない環境でも動くようになるらしい。 まだ、調べきれていません。。。
  139. 139. Ruby、homebrew、rbenv 信じるんですか?
  140. 140. 宿題 ┐(́ω`)┌
  141. 141. 紹介
  142. 142. CPU、半導体エンジニアから
 インフラ、WEB、スマホアプリまで フルスタックハウス…!! ギークハウスに住んでます
  143. 143. 風呂の順番待ちを iBeaconで解消 furobeacon

×