Tag: 64-bit
将你的Snow Leopard设置为64位
by Elton on 三.30, 2010, under Mac
很多人对Snow Leopard的64位还是一头雾水,下面我详细说一下。
首先,默认情况下,Snow Leopard总是开启32位内核;如果你的CPU是Core 2或者Core i7(的话,系统会在运行程序时自动启动Universal Binary中的64位部分(这里的Universal是32位Intel和64位Intel的Universal,不是指PPC和Intel的),因为默认的32位内核可以运行64位程序。但是,如果你想从内核就变成完全的64位,那么需要你的Mac还具备一个条件,就是你的EFI必须是64位的。EFI是固件用户接口,这里指的是你的固件必须是64位的。
EFI是否为64位的判别方法是:
打开终端,输入代码:
1 | ioreg -l -p IODeviceTree | grep "firmware-abi" | sed -e 's/[^0-9A-Z]//g' |
回车后,如果返回EFI64,则表示是64位的EFI,如果是EFI32则表明是32位的EFI……
通过Mactracker搜索,得到的分界如下:
MacBook:由于苹果限制,MB均不可开启64位内核。
MacBook Pro:MA895/896/897(Mid 2007)及以前的机型是32位的EFI,之后的机型是64位。
iMac:MA876/877/878(Mid 2007)有一部分是32位的EFI,一部分是64位的EFI,在这之前的都是32位,之后都是64位。
Mac Pro:第一代4核和8核都是32位,以后的都是64位。
注意,以上统计信息不一定准确,如果你在自己的机器上发现与上述写法不符的,请及时提出,我将做出更正!
目前已知MA895(预装Tiger)也具备64位EFI,因此wikipedia所谓预装Tiger是32位EFI的言论已经不靠谱了……
关于开启64位内核后的检查方法有四种:
1、进入“About This Mac”,点击“More Info”,在弹出的“System Profiler”中选择左边的“Software”,在右侧可以看到“64-bit kernel and extensions”,即可得知是否开启了64位内核。
2、打开终端,输入“uname -m”即可查看内核构架:
3、打开终端,输入”uname -v”即可查看内核发布信息:
4、打开“活动监视器”,找到进程“kernel_tasks”(PID为0),查看它的构架,它就代表内核。
最后说明开启64位的方法:
暂时性方法:
开机启动听到“咚”的一声马上按住“6″和”4″直到启动完成。建议先用这种方法查看开启64位内核是否有问题,我曾经在一台机器上面尝试开启64位后键盘失灵了。
永久性方法:
打开终端,拷贝下面的命令,回车运行:
1 | sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /Library/Preferences/SystemConfiguration/com.apple.Boot.plist |
在弹出的文本编辑器中,找到kernel_flag下面的
也就是说,改好的文件应该是这个样子:
1 2 3 4 5 6 7 8 9 10 | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Kernel</key> <string>mach_kernel</string> <key>Kernel Flags</key> <string>arch=x86_64</string> </dict> </plist> |
改完之后保存退出就可以了。
Snow Leopard下,为Rails升级
by Elton on 十二.06, 2009, under Rails
Snow Leopard是Apple最新的操作系统,拥有更快的速度并减少了对磁盘的占用。 Snow Leopard自带了ruby 1.8.7,已经可以很好的兼容Rails2.*。 对于Rails的开发者应该注意,如果你是从Leopard升级而来,Snow Leopard默认所有的解释型语言都是64位的(包括Ruby)。所以,如果之前你用的是32位的组建,需要做一些更新。
安装Snow Leopard 开发工具
在安装光盘上选择 “Optional Installs”, 安装 “Xcode.mpkg”. 使用默认的设置
安装Passenger
1 2 | $ sudo gem install -r passenger $ sudo passenger-install-apache2-module |
1 | $ cd /etc/apache2 |
编辑httpd.conf加入一下代码:
1 2 3 | LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-2.2.4/ext/apache2/mod_passenger.so PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-2.2.4 PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby |
安装MySQL
为了避免不必要的麻烦,强烈推荐你安装64位版本的MySQL。停止之前版本的MySQL。
从这里安装适合Mac OS X 10.5 (x86_64)的MySQL
下载完成后,打开磁盘镜像,首先安装 “mysql-5.1.37-osx10.5-x86_64.pkg”. 使用默认项即可。
然后安装 “MySQLStartupItem.pkg”. 作为Mac的启动项.
最后安装 “MySQL.prefPane”.
如果之前你安装过32位的MySQL gem,那么你需要重新安装一份适合64位的版本。
1 | $ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config |
注意,你不需要使用ARCHFLAGS来重新编译其他gem
原文地址:http://weblog.rubyonrails.org/2009/8/30/upgrading-to-snow-leopard
把你的程序限定到10.6和64位上
by Elton on 十一.01, 2009, under Mac
如果你已经在使用Snow Leopard和XCode 3.2了,你编译了一个64位的程序。 但是你发现他们可能无法在Leopard中很好运行,可能有些地方会出现问题。
如果你想提供一个要求运行在10.6以后系统并且支持64位的程序的话,可以在你的应用的Info.plist中,在最后一个前加入以下内容:
1 2 3 4 5 | <key>LSMinimumSystemVersionByArchitecture</key> <dict> <key>x86_64</key> <string>10.6.0</string> </dict> |
这个方法是被Apple批准和支持的,可以合法的使用。
具体的LSMinimumSystemVersionByArchitecture文档可以参考这里


