瞎扯淡 你们会把 macOS 转成大小写敏感吗?

pynix · September 09, 2017 · Last by flowerains replied at September 18, 2017 · 8151 hits

苹果默认安装是不敏感的,有时候本地跑的好好的,扔到服务器就出错了,吃了很多次亏了,决心转为大小写敏感,会造成其他问题吗?

从未遇到过你说的这个问题

会,不要高估苹果的工程能力,他们总会在出其不意的地方狠坑你一把

Reply to jasl

求不坑。。

等 10.13 的 afs 吧

Reply to BenX

afs 有什么改进吗?

AFS 有小白测试过么?跟现有的软件系统和开发环境兼容性如何?

Reply to lgn21st

我复制了一份启动盘,可以测试看看。。

Reply to lgn21st

去 recovery 下看了一下,他说是 pre release,然后就怂了。。。。没敢转

一般 ide 都会有提示,不会大小写错误

对了,老的不要改,改了有一些软件有兼容性问题。我记得是 Adobe 系

我会在和服务器一样的环境开发,以前用 vagrant,现在用 docker。

Reply to BenX

网上都是阿逗逼系列有问题,但是都我不用。

Reply to Rei

docker 在 mount volume 的时候仍然需要面对 case 问题。。。

Reply to pynix

擦,查了下果然,主机是 case-insensitive,mount 进去依然是 case-insensitive。

https://docs.docker.com/docker-for-mac/osxfs/

我不用大写路径,所以没踩过坑。

不过 docker 文档也写了,Mac 软件都是在 case-insensitive 环境开发的,不推荐格成 case-sensitive

We do not recommend reformatting your root partition as some Mac software dubiously relies on case-insensitivity to function.

让持续集成环境尽可能地接近生产环境(通常是 Linux,使用大小写敏感的文件系统),如果测试覆盖较完整的话,应该可以在测试阶段就发现问题。 如果某些文件实在懒得去写测试覆盖,可以尝试自己写个脚本去测:https://gist.github.com/5long/1abc1b7d8c1adf71044ae5a596a2dff5

至于在开发环境下检查,我的意见是干脆不要在 Mac 环境下过多考虑这种问题。直接用 Vagrant 跑个虚拟机,再运行上面的脚本好了。

分一个 case sensitive 的卷就好,不然玩不了游戏

朋友遇到这么个情况:

他写 php,重置系统改成了大小写敏感。

有一天需要安装个 Photoshop,然而 ps 不能安装在大小写敏感的分区。💢

滑稽

Reply to BenX

Adobe 系要求分区不敏感😀

觉得并没有这个必要,写代码时注意就好了

扔到服务器前至少要用 docker 跑一下

有一次在 Mac 上修改 OpenWRT 并编译的时候就遇到过这个问题,OpenWRT 的编译要求里就写了需要 case sensitive 的分区。把整个分区改了肯定会有兼容性问题,不好作死。我的方法比较暴力,搞了个虚拟磁盘文件,这个虚拟磁盘弄成 case sensitive 的分区,然后挂载上来就是了。

创建大小写敏感的工作区

在多人合作的项目开发时,因为 Mac 文件系统默认是大小写不敏感的,所以经常会出现一些诡异的问题。创建一个大小写敏感的工作区(workspace)来解决避免这些问题:

hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 100g -volname workspace ~/Documents/workspace.dmg.sparseimage

可以通过三种方式挂载镜像:

  1. 直接双击打开 ~/Documents/workspace.dmg.sparseimage
  2. open ~/Documents/workspace.dmg.sparseimage
  3. hdiutil attach ~/Documents/workspace.dmg.sparseimage

链接:https://github.com/macdao/ocds-guide-to-setting-up-mac

直接整个分区转换了,目前没有发现什么问题,brew doctor 有个 warning。

几年前试过会有问题。

webpack 就有插件 case-sensitive-paths-webpack-plugin

Steam 坑,我就不尝试了,浪费时间。等。

没必要。文件命名都是用小写和 dash 的格式,混几个大写自己看得也费劲。带有随机生成的 code 的文件名是唯一可能碰到坑的问题。不过本地环境又不会生成那么多……

写 ruby 的估计不会遇到 case sensitive 的问题,因为文件命名习惯都是小写 + 下划线,别的社区就不好说了。

目前我知道的,Adobe 的应用在 Mac 大小写敏感的分区会有问题

不敢尝试,除非重装系统。

You need to Sign in before reply, if you don't have an account, please Sign up first.