mac rvm 安裝 ruby 解決問題記錄
今天把家裡的 mac 安裝 ruby 1.9.3-p448,來幫朋友看一個 project,沒想到這台太久沒有維護環境,遇到不少問題。想說應該有些新手遇到這類問題還蠻不知道怎麼解,就丟出來做個記錄,整個 console log 沒有做太多編修。
這篇的重點是如何設定 mac 的開發環境,而不是 ruby 技術問題。
通則就是: 要仔細看錯誤訊息在講什麼 如果看到錯誤就放棄,一切就結束了
開始
macbook:project bruce$ rvm install ruby-1.9.3-p448
錯誤
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.7/x86_64/ruby-1.9.3-p448.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Warning: port definitions are more than two weeks old, consider updating them by running 'port selfupdate'.
Error! ncursesw was replaced by ncurses a long time ago, please uninstall 'ncursesw',
for more details check http://comments.gmane.org/gmane.os.apple.macports.user/28039
Requirements installation failed with status: 1.
首先,rvm 安裝可能會遇到 rvm 本身太舊,所以不管三七二十一先 update 一下
macbook:project bruce$ rvm update
錯誤
ERROR: rvm update has been removed. Try 'rvm get head' or see the 'rvm get' and rvm 'rubygems' CLI API instead
噢,原來語法改了
macbook:project bruce$ rvm get head
看來這次有成功了
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 184 100 184 0 0 177 0 0:00:01 0:00:01 --:--:-- 258
100 19527 100 19527 0 0 7868 0 0:00:02 0:00:02 --:--:-- 37123
Downloading RVM branch master
Downloading https://github.com/wayneeseguin/rvm/archive/master.tar.gz to rvm-master.tgz.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 124 100 124 0 0 139 0 --:--:-- --:--:-- --:--:-- 186
100 1088k 100 1088k 0 0 257k 0 0:00:04 0:00:04 --:--:-- 411k
Upgrading the RVM installation in /Users/bruce/.rvm/
RVM PATH line found in /Users/bruce/.zshrc.
RVM PATH line not found for Bash, run the installer with '--auto-dotfiles' to fix it.
RVM sourcing line found in /Users/bruce/.bash_profile.
RVM sourcing line not found for Zsh, run the installer with '--auto-dotfiles' to fix it.
Upgrade of RVM in /Users/bruce/.rvm/ is complete.
# Bruce Li,
#
# Thank you for using RVM!
# We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne, Michal & team.
In case of problems: http://rvm.io/help and https://twitter.com/rvm_io
Upgrade Notes:
* No new notes to display.
RVM reloaded!
再來裝裝看
macbook:project bruce$ rvm install ruby-1.9.3-p448
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.7/x86_64/ruby-1.9.3-p448.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Warning: port definitions are more than two weeks old, consider updating them by running 'port selfupdate'.
Error! ncursesw was replaced by ncurses a long time ago, please uninstall 'ncursesw',
for more details check http://comments.gmane.org/gmane.os.apple.macports.user/28039
Requirements installation failed with status: 1.
它抱怨 ncursesw
已經不使用了,要改用 ncurses
(注意看,他們兩個的拼法不一樣)。那我們就先把 ncursesw
移除掉
macbook:project bruce$ brew uninstall ncursesw
錯誤了
bash: brew: command not found
這才想到,對喔,我這台電腦是用 macport,來用 port
指令移除 ncursesw
macbook:project bruce$ port uninstall ncursesw
port 也抱怨了
Warning: port definitions are more than two weeks old, consider updating them by running 'port selfupdate'.
Error: Insufficient privileges to write to MacPorts install prefix.
依照指示(這個會跑很久)
macbook:project bruce$ port selfupdate
---> Updating MacPorts base sources using rsync
Error: Error synchronizing MacPorts sources: command execution failed
Please run `port -v selfupdate' for details.
Error: /opt/local/bin/port: port selfupdate failed: Error synchronizing MacPorts sources: command execution failed
炸了,嗯… 雖然沒有明說,但依照之前的經驗,大概是權限問題
macbook:project bruce$ sudo port selfupdate
Password:
---> Updating MacPorts base sources using rsync
MacPorts base version 2.2.0 installed,
MacPorts base version 2.2.1 downloaded.
---> Updating the ports tree
---> MacPorts base is outdated, installing new version 2.2.1
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl
The ports tree has been updated. To upgrade your installed ports, you should run
port upgrade outdated
果然,那接下來可以順利用 port
指令了
macbook:project bruce$ port uninstall ncursesw
Error: Insufficient privileges to write to MacPorts install prefix.
又忘記加 sudo
,而且這次有明說
macbook:project bruce$ sudo port uninstall ncursesw
Password:
---> Deactivating ncursesw @5.8_0
---> Cleaning ncursesw
---> Uninstalling ncursesw @5.8_0
---> Cleaning ncursesw
移掉了以後,裝新的 ncurses
macbook:project bruce$ sudo port install ncurses
---> Cleaning ncurses
---> Scanning binaries for linking errors: 100.0%
---> No broken files found.
那麼,再來嘗試裝 ruby
macbook:project bruce$ rvm install ruby-1.9.3-p448
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.7/x86_64/ruby-1.9.3-p448.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Updating certificates in '/opt/local/etc/openssl/cert.pem'.
Requirements installation successful.
Installing Ruby from source to: /Users/bruce/.rvm/rubies/ruby-1.9.3-p448, this may take a while depending on your cpu(s)...
ruby-1.9.3-p448 - #downloading ruby-1.9.3-p448, this may take a while depending on your connection...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 9816k 100 9816k 0 0 81497 0 0:02:03 0:02:03 --:--:-- 70359
ruby-1.9.3-p448 - #extracting ruby-1.9.3-p448 to /Users/bruce/.rvm/src/ruby-1.9.3-p448
ruby-1.9.3-p448 - #extracted to /Users/bruce/.rvm/src/ruby-1.9.3-p448
ruby-1.9.3-p448 - #configuring....................................................................................................................................................................................................................................................................................................................................................................................................................................................................
ruby-1.9.3-p448 - #post-configuration
ruby-1.9.3-p448 - #compiling..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
ruby-1.9.3-p448 - #installing.....................................................................................................................................
Retrieving rubygems-2.1.11
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 358k 100 358k 0 0 180k 0 0:00:01 0:00:01 --:--:-- 202k
Extracting rubygems-2.1.11 ...
Removing old Rubygems files...
Installing rubygems-2.1.11 for ruby-1.9.3-p448.......................................................................................................................................................................................................................................
Installation of rubygems completed successfully.
Saving wrappers to '/Users/bruce/.rvm/wrappers/ruby-1.9.3-p448'........
ruby-1.9.3-p448 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.9.3-p448 - #importing default gemsets, this may take time..................
Install of ruby-1.9.3-p448 - #complete
Ruby was built without documentation, to build it run: rvm docs generate-ri
'rvm_codesign_identity' is not set so RVM can't sign ruby
Set it in ~/.rvmrc after reading the following about OS X code signing:
https://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html
驗收
macbook:project bruce$ rvm use 1.9.3-p448
Using /Users/bruce/.rvm/gems/ruby-1.9.3-p448
macbook:project bruce$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin11.4.2]
可喜可賀!
附帶一提,用了 logdown 以後,再廢的小文也願意花時間寫一下… 這到底是好是壞…