いまさらながらSassの勉強をはじめようと思ってとりあえず触ってみようと思って触りを調べていたら、SassはRubyを使うことが前提とあった。
Macだと最初からRubyが入っており、現在のバージョンはターミナルから以下のコマンドで 確認できる。
1 2 3 |
$ ruby -v ruby 1.8.7 |
現在のバージョンは1.8.7のようだ。
Rubyのオフィシャルをみてみると現在の最新安定版は2.2.2だそうなので、ずいぶんと古いことになる。
アップグレードしてみようと思った。
ちなみにOSはMac OX 10.7.5 のSnowLeopard。
どうやらRubyのアップデートはHomebrewでできるらしく、HomebrewでRuby最新版を持ってきて→現行版という流れで入れ替えればいいらしい。
Homebrew以外にもrbenvってのを使ってもできるみたいだったけど、ちょうどHomebrewは以前に思いつきでGitをインストールした時に一緒に入れたやつがあったのでこれでやってみる。
というかHomebrew自体もずいぶん前にインストールしたからアップデートしておいたほうがいいかもと思って調べてみる。
1 2 3 |
$ brew -v brew 0.8 |
現在のHomebrewは0.8とのこと。
早速アップデートしてみる。
1 2 3 4 |
$ brew update /usr/local/.git: Permission denied Error: Failure while executing: git init |
権限拒否をされているようなので、sudoで実行してみた。
1 2 3 |
$ sudo brew update Cowardly refusing to `sudo brew' |
‘sudo brew’でも拒絶されてしまった。
どうやらroot管理者に/usr/local/での権限がないみたいなので、権限を与える。
1 2 3 |
$ cd /usr/local/ $ sudo chown -R root /usr/local |
上記のコマンドを実行して再度sudoでbrew updateを実行
1 2 |
$ sudo brew update |
今度はエラーが出ずにすんなりといったので、無事にアップデートできたかなとこの時は思っていた。。。
いよいよRubyをアップデート。
まずはHomebrewで最新版のRubyをインストール
1 2 |
$ brew install ruby |
と、これがなぜかうまくいかない。。。
というか確認をしてみたらHomebrewのアップデート自体ができてない。。。
1 2 3 |
$ brew -v brew 0.8 |
バージョンは0.8のままだ。これをなんとかしようと思ったら、ここからが長かった。
もう一度homebrewをアップデートしようとすると、今度はまた別のエラーがでる。
1 2 |
$ brew update |
何かがおかしいみたいなので、一度brew doctor
で診断してみると、たんまりとエラーがでた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
$ brew doctor /usr/bin/gcc Your gcc 4.2.x version is older than the recommended version. It may be advisable to upgrade to the latest release of Xcode. /usr/local/etc isn't writable. This can happen if you "sudo make install" software that isn't managed by Homebrew. If a brew tries to write a file to this folder, the install will\nfail during the link step. You should probably `chown` /usr/local/etc /usr/local/share isn't writable. This can happen if you "sudo make install" software that isn't managed by Homebrew. If a brew tries to write a file to this folder, the install will\nfail during the link step. You should probably `chown` /usr/local/share Some folders in /usr/local/share/man aren't writable. This can happen if you "sudo make install" software that isn't managed by Homebrew. If a brew tries to add locale information to one of these folders, then the install will fail during the link step. You should probably `chown` them: /usr/local/share/man /usr/local/share/man/man1 /usr/local/lib/pkgconfig isn't writable. This can happen if you "sudo make install" software that isn't managed by Homebrew. If a brew tries to write a .pc file to this folder, the install will\nfail during the link step. You should probably `chown` /usr/local/lib/pkgconfig Some "config" scripts were found in your path, but not in system or Homebrew folders. `./configure` scripts often look for *-config scripts to determine if software packages are installed, and what additional flags to use when compiling and linking. Having additional scripts in your path can confuse software installed via Homebrew if the config script overrides a system or Homebrew provided script of the same name. /Applications/MAMP/Library/bin curl-config freetype-config libmcrypt-config libpng-config libpng15-config sablot-config xml2-config xslt-config yaz-config /Applications/MAMP/bin/php/php5.4.4/bin php-config |
とりあえず、/usr/local/etc
などのフォルダの書き込みができないとあるので、面倒なのでusr/local
フォルダ以下全ての所有者を現在のログインユーザーにする。
1 2 |
sudo chown -R <ユーザー名> /usr/local |
次に以前自分で環境変数のPATHを設定したが、そのせいで”config”ファイルがよくわからないことになっていると言われてるみたいなので、自前の環境変数の設定をとりあえずコメントアウトしておいた。
1 2 3 |
$ find .bash_profile $ vi .bash_profile |
お次は
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
From http://github.com/mxcl/homebrew * branch master -> FETCH_HEAD error: Your local changes to the following files would be overwritten by merge: Library/Formula/goaccess.rb Library/Formula/imagemagick.rb Library/Formula/irssi.rb Library/Formula/jenkins.rb Library/Formula/media-info.rb Library/Formula/monit.rb Library/Formula/nickle.rb Library/Formula/python3.rb Library/Formula/sleuthkit.rb Library/Homebrew/cmd/--cellar.rb Library/Homebrew/cmd/--prefix.rb Library/Homebrew/cmd/audit.rb Library/Homebrew/cmd/cleanup.rb Library/Homebrew/cmd/doctor.rb Library/Homebrew/cmd/link.rb Library/Homebrew/cmd/outdated.rb Library/Homebrew/cmd/prune.rb Library/Homebrew/cmd/search.rb Library/Homebrew/cmd/test.rb Library/Homebrew/cmd/uninstall.rb Library/Homebrew/cmd/update.rb Library/Homebrew/exceptions.rb Library/Homebrew/extend/ARGV.rb Library/Homebrew/formula.rb Library/Homebrew/keg.rb Library/Homebrew/test/test_formula.rb Library/Homebrew/test/testing_env.rb README.md share/man/man1/brew.1 Please, commit your changes or stash them before you can merge. Updating 373db86..0258e6b Aborting Error: Failed while executing git pull http://github.com/mxcl/homebrew.git master |
なんかよくわからないけど、gitでmergeする前にローカルで変更したものをcommitするかstashしろと言っているみたい。
なんのこっちゃだったけど、色々と調べていたら下記のようにするといけるみたい。
1 2 3 4 5 6 |
$ cd /usr/local $ git remote add origin git://github.com/mxcl/homebrew.git fatal: remote origin already exists. $ git fetch origin $ git reset --hard origin/master |
このやり方で解決!
最後にお前さんが使っているgcc 4.2.2
が古いからアップデートするのをオススメすると言われている。ので、これもアップデートをかけてみようと思った。
1 2 |
$ brew update gcc |
とやろうとしたけど、gccのアップデートはこれじゃできないみたいで、Rubyと同様に最新版を落としてきてから、その最新版にデフォルトで使用するバージョンを差し替えるやり方になるらしい。
どうやら調べたら下記のコマンドでできるとのこと。
1 2 3 |
$ brew tap homebrew/versions $ brew update |
ところが最初のコマンドを打ってみたら。
1 2 3 |
$ brew tap homebrew/versions Error: Unknown command: tap |
そんなコマンドはない!って言われたので、どゆこと?となった。
そもそもbrew tap
ってなんのコマンドだ?と思って調べたら、どうも新しく追加されたコマンドとのこと。
それが使えないってことは結局今のHomebrewのバージョンが古くてまだ実装されてないってことだから・・・
結局問題のgccを最新版にインストールするために、まずはHomevrewを最新版にしてあげなくちゃいけないことになる。。。。
一応brew doctor
ではgccが古くておすすめはしないよとしか言われてないので、Homebrewのアップデートだけならできるだろうということで先にHomebrewをアップデート。
1 2 3 4 5 |
$ brew update Already up-to-date. $ brew -v Homebrew 0.9.5 |
今度はちゃんとうまくいって、バージョンを確認しても0.9.5の表示がでる。
この勢いで先ほど躓いたgccもアップデート。
1 2 3 |
$ brew tap homebrew/versions $ brew install gcc |
とやるとせっせとインストールが始まったと思ったら、結局ERRORで終わった。。。
「なんでー?!」と思ったのでもう一回brew doctor
をやってみたところ、なんかWarningがたくさんでる。
1 2 3 4 5 6 7 |
$ brew doctor Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue. If everything you use Homebrew for is working fine: please don't worry and just ignore them. Thanks! Warning: ... |
けど、よく読むとWarning
たくさんでてるけど、注意しろってくらいなんで気にしなくていいよ、一応Homebrewはちゃんとインストールされてるよと言われる。
むしろgccが古いとか言われなくなってしまった。なんだったのか。。。。
結局gccのバージョンも古いままだ。
とりあえず、障害はなくなったっぽいので改めて、rubyのアップデートを。。。
1 2 |
$ brew install ruby |
そこそこ時間がかかるのを待って、見事にアップデート成功。やったー!
バージョンを確認したらちゃんと更新されてた。
1 2 3 |
$ruby -v ruby 2.2.2p95 |
というか、最新版をインストールしたらsymlink
を貼り直さないといけないってあったのになんか知らないけど、しっかり最新版になってた。。。
よくわからないけど、こうしてRubyは最新版になったのである。
目的としてはSassが使ってみたかっただけなのを思い出す。。。
参考とか:
- Mac の ruby をアップデートする方法 | monopocket blog
- homebrewアップデート/アンインストール – CROSS HOPE
- Homebrewで「Cowardly refusing to `sudo brew’」が出てしまう問題 – 勉強不足
- MacにHomebrewをインストールする(ついでにGitも) – ほげほげ(仮)
- MacでPATHを通す(ユーザー単位 or 全ユーザー) | 5 LOG
- brew update fails · Issue #5128 · Homebrew/homebrew · GitHub
- Homebrewでupdateをしたらエラーが出た – メモ帳
- Homebrew で gcc4.7 を入れる – Qiita
- これは便利!Homebrewに追加されたtapコマンドはリポジトリを追加して簡単にフォーミュラを増やせる | Macとかの雑記帳
- homebrew – brew updateでGitのエラーが出た場合 – Qiita
- 作業環境を整えるMacOSXのパッケージマネージャ「Homebrew」のインストール方法と使い方 | 株式会社LIG
- 必ず使える!Macのターミナルで使う基本UNIXコマンド15選 | NEZU.log
- gitを2.0.0をMACにインストールした – Qiita
- ヾ(o゚ω゚o)ノ゙brew updateでエラーでたった[Homebrew] – Qiita
- Homebrewでupdateをしたらエラーが出た – メモ帳
- http://transitive.info/article/git/command/commit/brew doctor errors, Homebrew help please! | Treehouse Forum
- brew tap homebrew/versionsこれは便利!Homebrewに追加されたtapコマンドはリポジトリを追加して簡単にフォーミュラを増やせる | Macとかの雑記帳
- Cannot “brew update” anymore – fails to git pull formulas · Issue #11448 · Homebrew/homebrew · GitHub
- Mac – homebrewでバージョンを指定してインストールする – Qiita
HomebrewでRubyをアップデートした時のエラー対応
Homebrewを使ったRubyのバージョンをアップデートとHomebrew自身のアップデートを行った時に発生したエラーとその対処方法の記録。
HomebrewによるRubyのアップデートで発生したエラーとやったこと