Mac Catalina IDEA运行项目时日志文件夹提示创建失败
背景
心心念终于入手一台Mac笔记本,开始了Mac本敲代码的生涯,在使用IDEA导入公司springboot项目准备运行时,SB了出现下图报错了,本人机器版本已经升级到macOS Catalina。
解决办法
what is fk?这是什么鬼?无奈耐住性子开始瞅瞅这啥,大概意思就是项目日志文件创建失败;正常公司项目都是部署在Linux系统上的,日志文件目录一般都是在系统根目录下,我们公司是放在/home/logs下,在Catalina版本之前可以直接对相应文件夹授权即可,但在Catalina之后一般呢授权都不好使了,那怎么办,往下看吧(以下情况适用所有在根目录下创建文件夹失败的情况,这里以/home下为例,索然啰嗦了一点,还请细细品尝)。
Just do it:
在开始操作之前我们得先了解一下,升级到Catalina之后Apple 工程师引入了「卷组」这一概念,一个卷组由一个系统卷( Macintosh HD)和一个数据卷( Macintosh HD Data)组成。数据卷会像一块外置硬盘一样,被挂载在 /System/Volumes 目录下,这样两个文件系统就合成了一个文件系统。而在 Finder 边栏中,只有 Macintosh HD 会显示出来。这样普通用户就不会察觉到硬盘中存在着两个宗卷,只有当你打开 Disk Utility 时,就会看到两个宗卷,如下图:
由上可知根目录如果有home文件夹的话,系统默认是个软连接,什么是软连接?简单讲就是看似是在根目录下的/home,其实真实路径是/System/Volumes/Data/home,数据都在这里啦,截图如下:
我们尝试直接在/home下创建文件夹
# 进入home文件夹
cd /home
mkdir logs
# 卧槽,给我提示 mkdir: logs: Operation not supported
好吧经度娘说要修改 /etc/auto_master 文件将/home一行注释掉
sudo vim /etc/auto_master
# 注释后保存使用 wq! 强制保存哦
将/home一行注释掉,上述操作后会出现弹窗如下图,点击好就行啦,然后重启你的Mac
重启Mac之后进入根目录发现/home不见了,没关系,反正有也没啥用,自己再创建一下就好了,进入根目录下:
mkdir /home
# 卧槽,又给我提示:mkdir:/home:Read-only file system
# 只想说mmpCatalina,只管挖坑不管埋啊
怎么办,还能怎么办,继续解决啊:
首先看一下自己电脑的SIP(SIP是什么?Mac系统完整性保护机制): csrutil status,我的提示:System Integrity Protection status: enabled.开启状态,下面重点来了啊。
- 重启电脑,按住 cmd+R 不要松手进入恢复模式,登陆自己的账户,然后点击屏幕上方的工具栏找到命令行工具,输入命令 csrutil disable关闭SIP
- 正常重启,不要进入安全模式,执行命令 sudo mount -uw /
然后在你自己账户下面建立home目录:mkdir /Users/xxx/home,
然后建立软连接:sudo ln -s /Users/xxx/home /home - 重启电脑,按紧 cmd+R 进入恢复模式,在终端输入命令 csrutil enable,重新打开SIP
- 正常重启,运行我的IDEA,卧槽,终于好使了,开心😊如下图:
- 总结一下,Catalina版本坑不少,既然各位已经入坑了,那就大家一起填坑,如果您遇到了解决了,那就动动你的十姐妹留下一篇精华让后面入坑的童鞋瞻仰一下吧。