对于在 MacPro
这样的小容量硬盘上安装了大量开发环境的人来说,硬盘经常捉急,关键是你遇到了硬盘捉急,而大部分容量都耗费在“系统”这部分,根本不知道应该要怎么删除。
今天终于是忍不了了,下载了最新的 OSX
,烧录到U盘,把数据备份到新买的 NAS
后,就开始了格盘重装。使用了 Mac
有5年左右了,这还是第一次格盘装,之前也就是从时光机恢复,表示乔帮主去世后,苹果的产品真的是一个不如一个了,iPhone
玩游戏卡,连接耳机经常无声,电脑也是经常莫名其妙卡顿,即使今年从 MacbookAir
换到了相对高配的 MacbookPro
,依旧会有时候有卡主的情况。
扯远了。
系统重做的速度很快,不到20分钟搞定。重做后的系统就跟当年的 Windows
似的,各种快,各种空间大。
这次重做系统,计划要尽量把开发环境使用虚拟化来隔离开。这样各个开发环境之间,减少交叉甚至没有交叉后,一旦想要卸载,也能比较干净的解决掉这个开发环境的各种依赖。我的开发主要是 PHP
和 Javascript
,另外还想进一步研究 ionic framework
,所以主要的就是 php
环境 , nodejs
环境, xcode
和 android
环境。
现在已经完成了 php
环境的恢复,使用的是 docker
技术。从 docker
问世一来就比较关注这个技术,自己也是前几年先后尝试过 kvm
, virtualbox
, vagrant
后,觉得 docker
才是应用部署的未来。不过用 docker
作为开发环境也只是从去年年底开始才研究的。
这是目前的 docker
搭建的 php
环境,使用了 portainer
作为操作面板,使管理更加的方便,比起之前纯命令行方便了很多,这里也有一份我2015年的时候 总结的一些常用 docker
命令。
目前的这个方案中,nginx
直接使用的官方的 latest
版本, MySQL
也是使用的官方的 lastest
版本,php
容器的构建参考了 Yavin/docker-alpine-php-fpm。这里有个问题,就是关于 php
的写权限,由于我是把网站开发目录挂载进容器的,因此 php-fpm
的运行用户的 uid
和 gid
要跟母机的一致,因此需要在 Dockerfile
中调整容器中运行 php-fpm
的 uid
和 gid
。
还有一个问题就是容器间的通讯。由于 php
代码需要连接数据库, 而 php
代码的解析是在 php
的容器环境中执行的,因此要访问数据库的话,代码中的 数据库IP
就要填写 MySQL
的容器IP,这里就有问题了,因为直接写死了,而当重启电脑的时候,这些容器的IP会发生变化,导致服务不可用。由于 link
方法不被官方推荐了,因此想要用 link
后的主机别名的方案就被 pass 掉了。还有个方案就是自己在 docker
的网络中再维护一个 DNS
容器,用于实现各个容器间的别名的统一管理。这个将会是接下来要完成的。
再说下 Javascript
环境,由于不是专业前端,对于这方面不是很熟悉,目前来看也就只是使用 nvm
来管理 nodejs
的版本。这里有个坑,就是如果你要切换版本,就意味着之前通过 npm
全局安装的软件或者库,都要重装。并且项目下的 node_modules
目录也需要干掉重新 npm install
。
xcode
是无解的一个大户,就 xcode
一下子就能吃掉将近11G。用 OmniDiskSweeper
查了下,应该是仿真设备占用的空间很大。同样的问题,安卓的开发环境也存在,主要空间占用来自仿真设备。这两个东西倒是相对独立,暂时应该还是维持原来的使用方式方法。
就先写这么多吧。
yarn 好像比 npm 好用
恩,的确yarn感觉比npm好一些,不过我不经常写前端,感受的并不是很明显,我只要用nvm管理多个版本的nodejs就好了,有时候调试别人写的程序,需要在不同版本间的node来回切换。
Scott走了后,iOS/OSX 质量的下滑都能感觉到加速度变化了。
应该说乔帮主离世后,苹果的品质整体都在下滑。