M1 MacでRails4.2.x(Ruby2.2.x)を動かしてみる!
こんにちは。
皆様いかがお過ごしでしょうか。
6月も中旬、寒暖差もあるので体調には気をつけたいですね。
個人的ニュースは、最近我が家に観葉植物をお迎えしたのですが、緑があるだけで気持ちは安らぐものですね〜
人生初の生き物のお世話頑張ろうと思います。
今回はタイトルにあるようにせっせとRailsを動かすために頑張った僕の記録です。
本来は社内の古くなったとあるアプリケーションのバージョンアップが目的なのですが、その前の環境構築でなかなか詰まってしまったわけです。。笑
手順は社内で用意されてるwikiに従って行いました。
ざっくりこんな感じです。
(今回はrbenv等バージョンマネージャーの設定方法は省きます)
- mysql5.7をインストール
- ruby2.2.2をrbenvを使ってインストール
- bundle install
では早速。
ステップ1 - MySQL5.7のインストール -
brewを使ってインストールをします。
1 |
brew install mysql@5.7 |
するとこうなりました。
1 2 3 4 5 6 7 8 |
Warning: mysql@5.6 has been deprecated because it is not supported upstream! Error: mysql@5.7: no bottle available! You can try to install from source with: brew install --build-from-source mysql@5.7 Please note building from source is unsupported. You will encounter build failures with some formulae. If you experience any issues please create pull requests instead of asking for help on Homebrew's GitHub, Twitter or any other official channels. |
なるほど。
サポート外だから無理だよ、的なことを言われました。
なので、こっちで試してみることに。
1 |
brew install --build-from-source mysql@5.7 |
するとそれも失敗。(エラー文が長いので省略します。。)
色々調べてみると、こちらのブログ記事を発見。
https://soffes.blog/homebrew-on-apple-silicon
いわく、Apple silicon(M1)との互換性による問題である様子。
そこで、記事内にあるように、Rosetta2バージョンのbrewを使えるようにしてみます。(今回は深く追及できてませんがご容赦ください。)
1 |
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" |
今までのbrewと並行して使えるように、パスを通してaliasを設定しておきます。
1 |
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH" alias rbrew='arch -x86_64 /usr/local/bin/brew' |
最後これで再度インストールに挑戦するとうまくいきました!!情報に感謝です。
1 |
rbrew install mysql@5.7 |
ステップ2 - ruby2.2.2のインストール -
いつもrbenvを使っているので、軽い気持ちで、
1 |
rbenv install 2.2.2 |
をすると全然うまくいきませんでした。
そしもいつものように調べまくると、このissuesを発見。
https://github.com/rbenv/ruby-build/issues/1700#issuecomment-986584406
こうすると成功しました。
1 |
CFLAGS="-Wno-error=implicit-function-declaration" RUBY_CONFIGURE_OPTS='--with-readline-dir=/usr/local/opt/readline/' arch -x86_64 rbenv install 2.2.2 |
細かいオプションについては後々きちんとまとめたほうがいいですね。。
あとはbundle installをしていきますが、
そこからがまた大変だったので、それはまた別で書きたいと思います!
まだまだ続くアップデートの旅ですが、ちょこちょこ情報はアップデートしていこうと思います。全部終わったら完結編まで頑張って書いてみます!笑
正直まだピンときてないことは多々あるのですが、
そちらも落ち着いたら一つずつじっくり理解していこうと思います。