LoginSignup
33
32

More than 5 years have passed since last update.

MacPortsからHomebrewに移住した記録

Last updated at Posted at 2013-02-25

今北用三行

はじめに

HomebrewにはあるけどMacPortsにはない、というパッケージもちょくちょく見かけます。なのでMacPortsからHomebrewに引っ越しました。
今回はそれの記録です。

下準備:いつでも戻ってこれるように

まずは現状のバックアップを取っておきます。

  • ファイルそのものはTimeMachineでバックアップ
  • MacPortsで入れたパッケージの一覧を取得しておく
macmini% port installed > /tmp/macports.txt
  • MacPortsで入れたものの中で気になるのは以下2点
    • ruby1.9を入れてた。これのgemファイルの入れ直しも必要かもしれない。
    • emacs-aapp.24を入れてた。これは一時的に無くなっても大丈夫だとは思う

gemも入れ直しになるかもしれないので、listを残しておく。

macmini% gem list > /tmp/gemlist.txt

ところでgemファイルはどこにあるんだっけ?

macmini% gem which  `gem list  | awk '{print $1}' `
ERROR:  Can't find ruby library file or shared library activesupport
ERROR:  Can't find ruby library file or shared library addressable
/opt/local/lib/ruby1.9/1.9.1/x86_64-darwin12/bigdecimal.bundle
/opt/local/lib/ruby1.9/gems/1.9.1/gems/cocoapods-0.16.1/lib/cocoapods.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/colored-1.2/lib/colored.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/escape-0.0.4/lib/escape.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/excon-0.16.10/lib/excon.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/faraday-0.8.4/lib/faraday.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/faraday_middleware-0.9.0/lib/faraday_middleware.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/hashie-1.2.0/lib/hashie.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/heroku-2.34.0/lib/heroku.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/heroku-api-0.3.7/lib/heroku-api.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/i18n-0.6.1/lib/i18n.rb
ERROR:  Can't find ruby library file or shared library io-console
/opt/local/lib/ruby1.9/1.9.1/json.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/launchy-2.1.2/lib/launchy.rb
ERROR:  Can't find ruby library file or shared library mime-types
ERROR:  Can't find ruby library file or shared library minitest
/opt/local/lib/ruby1.9/gems/1.9.1/gems/multi_json-1.5.0/lib/multi_json.rb
ERROR:  Can't find ruby library file or shared library multipart-post
/opt/local/lib/ruby1.9/gems/1.9.1/gems/netrc-0.7.7/lib/netrc.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/octokit-1.22.0/lib/octokit.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/open4-1.3.0/lib/open4.rb
/opt/local/lib/ruby1.9/1.9.1/rake.rb
/opt/local/lib/ruby1.9/1.9.1/rdoc.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/rest-client-1.6.7/lib/rest-client.rb
ERROR:  Can't find ruby library file or shared library rubygems-update
ERROR:  Can't find ruby library file or shared library rubyzip
/opt/local/lib/ruby1.9/gems/1.9.1/gems/xcodeproj-0.4.1/lib/xcodeproj.rb
macmini% 

大体が/opt/の下に、それ以外は所在不明らしい(組み込み?)ので、これらも入れ直しになるかと思います。

MacPortsを削除する

http://guide.macports.org/chunked/installing.macports.uninstalling.html を見ながら。

macmini% sudo /opt/local/bin/port -fp uninstall installed
macmini% sudo rm -rf \
    /opt/local \
    /Applications/DarwinPorts \
    /Applications/MacPorts \
    /Library/StartupItems/DarwinPortsStartup \
    /Library/Tcl/darwinports1.0 \
    /Library/Tcl/macports1.0 \
    ~/.macports

この後に~/.profileにあったPATHの設定を削除。

Homebrewでrubyを入れ直し

http://hatch2.com/blog/archives/1490 を参考に

macmini% brew install ruby -v 

-vオプションで、コンパイルの状況が表示されてmacportsっぽくなります。

Homebrewでは/usr/local/bin/の下に配置されるようです。

macmini% where ruby
/usr/bin/ruby       # ← OS標準のruby
/usr/local/bin/ruby # ← Homebrewで入ったruby
macmini% /usr/bin/ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
macmini% /usr/local/bin/ruby -v 
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.2.0]
macmini% 

.zshrcにPATH指定を追加して、/usr/local/の下を優先して使うようにします。

.zshrc
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
macmini% which ruby
/usr/local/bin/ruby
macmini% which gem
/usr/local/bin/gem
macmini% 

gemで使っていたrakeとcocoapodsを入れ直します。参考にしたサイトにある"brewを経由してgemをインストールできるbrew-gem"を試します。

macmini%  sudo gem update --system
…
macmini% brew install brew-gem
==> Downloading https://github.com/josh/brew-gem/tarball/v0.1.2
######################################################################## 100.0%
  /usr/local/Cellar/brew-gem/0.1.2: 4 files, 16K, built in 3 seconds

macmini% brew gem rake
==> gem install rake --version 10.0.3 --no-rdoc --no-ri --install-dir /usr/local/Cellar/rake/10.0.3
Warning: Could not link rake. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link rake'
==> Summary
  /usr/local/Cellar/rake/10.0.3: 152 files, 936K, built in 16 seconds
macmini% brew link rake   
Linking /usr/local/Cellar/rake/10.0.3... Warning: Could not link rake. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/rake/10.0.3/bin/rake
Target /usr/local/bin/rake already exists. You may need to delete it.
To force the link and delete this file, do:
  brew link --overwrite formula_name

To list all files that would be deleted:
  brew link --overwrite --dry-run formula_name
macmini% gem list

*** LOCAL GEMS ***

bigdecimal (1.1.0)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
rake (0.9.2.2)
rdoc (3.9.5)
rubygems-update (2.0.0)
macmini% 

rakeはすでに入ってて、"そこへのリンクが張れなかったから"エラーになったようです。

macmini% brew gem cocoapods -v
==> gem install cocoapods --version 0.16.3 --no-rdoc --no-ri --install-dir /usr/local/Cellar/cocoapods/0.16.3
 /usr/local/Cellar/cocoapods/0.16.3: 1138 files, 9.9M, built in 4.8 minutes

homebrew経由で入れたgemファイルは、 gemコマンドでは出てこないようです。この点少し不安です。

macmini% brew list     
appledoc    cocoapods   libyaml     rake        ruby
brew-gem    gdbm        pkg-config  readline    z
macmini% gem list

*** LOCAL GEMS ***

bigdecimal (1.1.0)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
rake (0.9.2.2)
rdoc (3.9.5)
rubygems-update (2.0.0)
macmini% 

Homebrewでemacsを入れる

macmini% brew install emacs    
…
macmini% emacs --version 
GNU Emacs 22.1.1    # ←あれ?
Copyright (C) 2007 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

macmini% ls -la /usr/local/bin/emacs 
lrwxr-xr-x  1 tak  admin  30  2 25 17:37 /usr/local/bin/emacs -> ../Cellar/emacs/24.2/bin/emacs
macmini% which emacs
/usr/bin/emacs     # ←OS標準のemacsの方が反応してた
macmini% where emacs
/usr/local/bin/emacs
/usr/bin/emacs
/usr/local/bin/emacs
macmini% rehash
macmini% which emacs
/usr/local/bin/emacs   # ← これでOK
macmini% 

.zshrcに書いていたemacsのショートカット部分をちょっと手直し

.zshrc
# デーモンモードで起動させ、それに接続する                                                                              
# 素のemacsをオーバーライドしないように、関数名をEとした。                                                              
function E(){                                                                                                           
    # if [[ ]] はzshでのif短縮形                                                                                        
    if [[ 0 -eq `ps ax | grep emacs | grep daemon | wc -l` ]] emacs --daemon                                            
    emacsclient -t $*;                                                                                                  
}                                                                                                                       

# emacs.d/以下をいじっているとしょっちゅう再起動したくなるのでコマンド化                                                
function kill-emacs(){                                                                                                  
    emacsclient -e "(kill-emacs)"                                                                                       
}                                                                                                                       

Homebrewに引っ越した感想

  • 依存関係で入るパッケージがほとんど無い?
    • MacPortsでemacs入れるときにごつごつと色々なパッケージが入ったと思うのだけど、homebrewだとほとんど入らない、というかすかすかすぎて逆に怖い
  • brew doctorでチェックできるのはありがたい。
  • brew gemは良いのか悪いのかよく分からない
  • コンソールにビールが出てくるのが楽しくて良いです。

参考にしたサイト

http://tech.tmd45.in/entry/2012/07/05/120858
http://openlab.dino.co.jp/2008/08/18/220655330.html

33
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
32