周围小伙伴一个个都升级到Yosemite了,搞得我也蠢蠢欲动,恰巧手机跟电脑用的同一个appid,要在手机上使用1password需要把电脑升级下,才能使用icloud同步密钥数据,想想以后应该会有不少这种情况,所以,趁早升级。
作为Mac新手和菜鸟程序员,所有问题解决均借助Google和小伙伴,有问题还请轻拍。之所以在此强调程序员,是因为有些问题只有程序员才会遇到。
用惯了Windows和Linux,升级Mac还有点不习惯,有点虚,虽然看到周围小伙伴依然好好的正常的用着Yosemite,但毕竟头一次,而且网上也说了Homebrew会带来些问题,连Mac都还没用熟就升级系统,还是有点怕。
首先,我没有对系统进行备份,这都是被周围人忽悠的,虽然Mac升级一般不会有问题,但还是要养成备份的好习惯,行走江湖,还是得防着点,万一跪了还能回来。而且Mac提供了Time Machine这种神器,方便快捷,不会用Time Machine?点这里。
可以采用在线升级的方法,官网有教程。为了节省下载时间,我找某大师拷贝了个安装镜像,然后一路继续,经过多次重启电脑之后,终于进去了,界面不错。
高兴劲儿还没过,就发现问题来了。可是没有备份,回不去了,只能硬着头皮往下走。备份多重要啊!
Java挂了,所有依赖Java的开发工具都不能用了,看了池大大的Blog好像有写,赶紧去下载、安装,哈哈,终于又能用了。
Homebrew在我初始配置开发环境时提供了巨大的便利,但是,升级完却不能用了,看了下原因应该是Ruby版本变成2.0了,但既然有问题就慢慢解决了,还好是周末,慢慢折腾吧……
由于现在用nginx做服务器,所以,想先看下环境是否能跑起来,运行命令
sudo nginx
报错:
nginx: [emerg] mkdir() “/usr/local/var/run/nginx/client_body_temp” failed (2: No such file or directory)
不希望看到的还是出现了。上网搜索了下,很高兴的发现有人遇到了相同的问题(点击查看),但是,考虑到nginx在Mavericks上运行正常,现在不对了,那么应该不只是因为没有这个文件夹,所以,我没有直接mkdir
这个文件夹,而是采用了brew update ; brew upgrade nginx
,结果发现并没有解决问题,而且,我也没打算再mkdir那个文件夹来试试,现在想想应该是脑子被驴踢了,毕竟建立没有的文件夹才是收获赞最多的答案。
然后,我搜到了池大大的blog,谁让池大大在我心中是大神一般的存在呢,所以,不管三七二十一,直接执行了池大大给的解决方案。执行到brew upgrade
时,报错了,nginx、mysql、redis、vim报错,其中mysql第一个报错:
C compiler not found, but GCC is installed
上网一搜,升级xcode时,把 Command Line Tools 干掉了,所以,运行命令:
xcode-select –install
然后,要做的就是等待了,这个有点慢。
当安装完成后,重启电脑,然后运行brew upgrade
,nginx、mysql、redis、vim全部升级成功,长舒一口气,爽!
然后,运行sudo nginx
,采用ps命令查看进程,发现nginx正常运行,哈哈~
Mac自带了PHP,但是,为了后面统一采用Homebrew对开发环境进行管理,我自己安装了PHP,其中系统自带的PHP时5.4.24,自己安装的是5.4.32,通过修改.profile文件里的PATH环境变量,使系统默认使用5.4.32,然而,我现在运行命令:
php -v
查看到php版本是5.5.19,然后运行命令:
which php
发现是/usr/bin/php,然后使用locate命令查看,发现只有系统自带的php了,通过Homebrew自行安装的php没了,没了!
没有了再装就是了,所以,我很快使用brew install php54
重装了php5.4,然后,居然还是找不到,但是,我在/usr/local/Cellar/php54/
文件夹下找到了5.4.32和5.4.35两个版本,原来5.4.32一直都在,只是我没去找而已!具体文件如下图所示:
然后,我运行
php -v
显示版本是5.4.35,可是我运行sudo php-fpm
,然后写了个页面输出 phpinfo() 却看到的是5.4.32,晕了。现在还没明白,这里为什么是这样,有高手看到,还请告知,不胜感激。
然后,我到5.4.32目录下直接运行php-fpm:
居然报错,放Google,搜到答案,按照提示操作,如上图所示,再次,启动,Done。哈哈,一切正常了,至少看起来是这样。
然后,我运行
php -v
居然是5.5.19,然后运行 php info.php
报错:
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.53.dylib
上网搜了下,估计是两个php 5.4引起的,所以,先删除一个再说,反正多一个也没用,再试下。运行
brew remove php54
php info.php
搞定,至少不再报错。可是查看php版本,依然是5.5.19,既然Mac下会把Homebrew安装的程序链接到/usr/local/bin
下,所以,我去/usr/local/bin
下查看,但没有发现php,所以,自己在/usr/local/bin 目录下搞了个软链接
ln -s ../Cellar/php54/5.4.32/bin/php php
然后,执行
cd ~
source .profile
php -v
5.4.32回来了!
折腾了大半天,系统暂时好了,那么,问题来了:
brew update, brew upgrade
就搞定了,压根儿不用折腾。哎,可我为什么会倒腾出这事儿呢?还不是因为池大大是Mac界的偶像级人物,自己认为照抄就可以了,但实际上,池大大升级时,Yosemite都还没正式放出来,那会儿出的问题都不是我们这些屁民会遇到的,一个半月时间,苹果早修复了,不然,人家还能是苹果?还得变化的看待问题,Too young, too simple.