• Archive by category "mac"

Blog Archives

osx文件权限中的@和+

If the file or directory has extended attributes, the permissions field printed by the -l option is followed by a ‘@’ character.
Otherwise, if the file or directory has extended security information (such as an access control list), the permissions field printed by the -l option is followed by a ‘+’ character.

显示文件[夹]:
chflags nohidden ~/Library
如想隐藏,可以在终端中执行命令:
chflags hidden ~/Library

-rw-------@   1 wingyiu  staff  626164 Aug 12  2013 Bookmarks.bak
drwxr-xr-x+   3 wingyiu  staff     102 Jan  2 20:09 Desktop
drwxr-xr-x+  34 wingyiu  staff    1156 Dec 24 19:11 Documents
drwx------+ 278 wingyiu  staff    9452 Jan  5 20:20 Downloads
drwxr-xr-x   34 wingyiu  staff    1156 Dec 23 23:40 Git
drwxr-xr-x   87 wingyiu  staff    2958 Dec 30 23:50 Github
drwx------+  70 wingyiu  staff    2380 Jan  3 17:17 Library
drwx------+   4 wingyiu  staff     136 Jan  2 20:57 Movies
drwx------+   7 wingyiu  staff     238 Oct  7  2013 Music
drwx------+ 252 wingyiu  staff    8568 Jan  5 19:57 Pictures
drwxr-xr-x+   4 wingyiu  staff     136 Sep 28  2012 Public

MBP101 Yosemite升级 SSD

本人机子为MacBook Pro (13-inch, Mid 2012),系统已经升级为OS X 10.10.1 Yosemite;光驱位和硬盘位置的SATA均为 SATA3,但硬盘仅支持 SATA2,所以协商以 SATA2速度运行。
mac check sata 3
一番 V2EX 和 Google 发现 Yosemite 引入一个叫 kext signing 的东西,默认开启,开启后会禁止使用未经苹果认证授权的第三方硬件,也会影响 TRIM 的使用。
TRIM 可以对 SSD 进行增强,比如稍微提高读写速度、使用寿命等。在这篇文章FAQ and support for using Trim Enabler in OS X Yosemite里提到了。

在旧版本系统里通常是使用 Trim Enabler 来开启Trim 的,免去敲命令行的烦恼。现在多了 kext signing,就必须先关闭 kext signing。在 Trim Enabler 3.3 以上版本已经集成了 kext signing 开关闭的功能。我用的是4.0.4。trim enabler turn off kext signing

按流程走,重启后重新打开 Trim Enabler,再开启 Trim 就可以了。

最好拿个足够大的移动硬盘做一个 Time Machine 备份,以免玩大了搞坏原硬盘丢了数据。

准备材料:
1、SSD,我采用的是 SamSung SSD 840 EVO,目前价格约850RMB;
2、光驱硬盘托架,我采用的是Nimitz OptiBay-3,购买时要注意托架的厚度,是否支持 SATA3 ;
3、可选的 USB 外置吸入式光驱盒,用来把拆下来的光驱做成外接 USB 光驱;
4、拆机工具,买2、3时有赠送。
硬盘托架和光驱盒加起来大概100+。

详细拆解更换可以参考 Zealer 王自如的视频Macbook Pro 改装 RAID

搞定后启动 Mac,对新硬盘进行初始化、格式化。

本来想用 USB 移动硬盘进行 Time Machine 备份,然后进入 Recovery HD 把备份回复到 SSD 盘上,奈何移动硬盘有很多资料,也没分区。Recovery HD 在从10.9升级到10.10时已经损坏,双系统 Win 7也进不去。只能用别的方法了。

解决方法是使用Carbon Copy Cloner,把整个机械盘的数据复制到 SSD 上。如果你的 SSD 介绍,可以选择删掉旧硬盘部分数据,所以选择性的复制。比如指复制系统和 Applications。我在清除很多无用、冗余、旧数据,把大小降到200一下,进行的整盘复制。复制花费时间较长,主要是因为机械盘读较慢,小文件过多。用了大概3个小时。复制完会提示给 SSD 创建 Recovery HD,我的旧 Recovery HD 已经损坏,且 SSD 空间所剩不足就放弃了。

ccc hd to ssd

重启后按住 option 键,选择 SSD 启动。进入系统配置,把 SSD 改为启动盘,这样每次启动就会载入 SSD 上的系统了。

change mac startup drive

关于HD和 SSD 如何组合发挥SSD 读写快容量小、HD 容量大速度慢的功效,大概有 Fusion Driver,Raid 0, Raid 1,SSD 做系统启动盘、机械盘做数据、挂在其文件系统下,比如/home。这个日后再研究。

osx升级到10.9以上homebrew不能用

想用homebrew装个maven结果

$ brew install maven
usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 23: /usr/local/Library/brew.rb: Undefined error: 0

原因是系统升级后ruby的版本升级到到了2.0,而/usr/local/Library/brew.rb里写死了用1.8版本运行brew

#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0
# encoding: UTF-8

在osx 10.10 Yosemite里尝试直接修改1.8为2.0结果don’t work!
在github里找到解决方法:

cd /usr/local
git fetch origin
git reset --hard origin/master

brew又可以用啦

To open “Eclipse.app”, you need a Java SE 6 runtime.Would you like to install one now

Mac更新10.10后,原来安装的java6没了,索性下了个java8,结果打开eclipse提示
To open “Eclipse.app”, you need a Java SE 6 runtime.Would you like to install one now

解决方法之一:安装apple提供的java6:
下载地址:http://support.apple.com/kb/DL1572
安装后java6和之前安装的java8可以共存

$java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

mac os x10.9.2安装pycurl

vi ~/.bash_profile
export PYCURL_CURL_CONFIG=/usr/bin/curl-config
export PYCURL_SSL_LIBRARY=openssl

$pip install pycurl

出现warning:

src/pycurl.h:152:5: warning: "libcurl was compiled with SSL support, but configure could not determine which "      "library was used; thus no SSL crypto locking callbacks will be set, which may "      "cause random crashes on SSL requests" [-W#warnings]
    #   warning \
        ^
    1 warning generated.

运行后出现

pycurl: libcurl link-time ssl backend (none/other) is different from compile-time ssl backend (openssl)

貌似和apple把curl库的openssl替换为SecureTransport有关,资料

$curl --version
$curl 7.30.0 (x86_64-apple-darwin13.0) libcurl/7.30.0 SecureTransport zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp 
Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz

还没找到解决方法啊,头疼

如果安装后出现

Fatal Python error: pycurl: libcurl link-time version is older than compile-time version

之类错误的话,应该就是你自己装了curl和mac自带的curl冲突了,导致编译和运行时加载的类库不一致,我自己安装的curl-7.33.0在/usr/local/bin下,而系统自带的7.30。0在/usr/bin