MacPortを使用してプログラムをインストールする時に接尾辞(suffix)をコントロールしたい
何がしたいの?
どのように機能するの?
何を使うの?
- MacOSX
- MacPort
どこで確認したの?
- MacOSX (10.6.2 Snow Leopard) (Darwin Kernel Version 10.2.0)
- MacPorts 1.8.2
いつ確認したの?
- 2010年3月6日
何が参考になるの?
何か注意点はあるの?
- 後からインストールした1.8は名前衝突のためインストールに失敗した。
- Macport経由でインストールしたバイナリ共存と、gem経由でインストールしたバイナリの名前衝突は別問題。
- いろいろと自己責任でお願いします。
どんな手順でいろいろやってみたの?
$ which ruby /usr/bin/ruby $ $ /usr/bin/ruby -v ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0] $
- MacPortの上のインストール可能なrubyを一覧する
$ sudo port search ruby 中略 ruby @1.8.7-p249 (lang, ruby) Powerful and clean object-oriented scripting language ruby186 @1.8.6-p388 (lang, ruby) Powerful and clean object-oriented scripting language ruby19 @1.9.1-p376 (lang, ruby) Powerful and clean object-oriented scripting language 中略
$ sudo port install ruby
- 確認
$ $ which ruby /opt/local/bin/ruby $ $ /opt/local/bin/ruby -v ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin10] $
- 一旦ruby1.8を削除する
$ sudo port uninstall ruby
$ sudo port install ruby19
- 確認
$ $ which ruby /usr/bin/ruby $ $ which ruby1.9 /opt/local/bin/ruby1.9 $
- 一旦ruby19を削除する
$ sudo port uninstall ruby19
$ sudo port install ruby19 +nosuffix
- 確認
インストールは成功しているようだ。
$ which ruby /opt/local/bin/ruby $ $ /opt/local/bin/ruby -v ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-darwin10] $ $ ruby -v ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-darwin10] $ $ gem environment RubyGems Environment: - RUBYGEMS VERSION: 1.3.1 - RUBY VERSION: 1.9.1 (2009-12-07 patchlevel 376) [i386-darwin10] - INSTALLATION DIRECTORY: /opt/local/lib/ruby/gems/1.9.1 - RUBY EXECUTABLE: /opt/local/bin/ruby - EXECUTABLE DIRECTORY: /opt/local/bin - RUBYGEMS PLATFORMS: - ruby - x86-darwin-10 - GEM PATHS: - /opt/local/lib/ruby/gems/1.9.1 - /Users/tsuchiya/.gem/ruby/1.9.1 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - :sources => ["http://gems.rubyforge.org/", "http://gems.github.com"] - REMOTE SOURCES: - http://gems.rubyforge.org/ - http://gems.github.com $
- 接尾辞を「18」と明示指定してMacPortで rubyをインストールする(ruby1.8 がruby18としてインストールされる...に違いなかったのだが.....)
インストール失敗!
なにやら名前衝突を起こしているらしい
$ sudo port install ruby +suffix18 Error: Target org.macports.activate returned: Image error: /opt/local/bin/erb is being used by the active ruby19 port. Please deactivate this port first, or use 'port -f activate ruby' to force the activation. Error: Status 1 encountered during processing. Before reporting a bug, first run the command again with the -d flag to get complete output.
- 確認
1.8は衝突のためインストールされなかった。
なんでだろう?接尾辞1.8が付くんじゃないの?
$ which ruby /opt/local/bin/ruby $ $ ruby -v ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-darwin10] $ $ which ruby18 $ $ which ruby1.8 $ $ ls -al /opt/local/bin | grep ruby -rwxr-xr-x 2 root admin 9416 3 6 14:22 ruby $