海滨擎蟹

Spring boot 项目调试报错:'/data' could not be created

前言

项目需要添加一项新的渠道服务商,活安排给我了。没有接触过核心的业务,所以对于需要修改的地方不太懂。跟之前的同事确认了一下,明白自己需要完成的部分代码的位置。

之后 copy 之前的一个渠道服务商的写法,把主要的一些需要自定义的 bean 定义好替换上去。之后再根据接口文档要求,对请求主体加密,以及修改一些响应的处理。主要的脉络流程跟之前的渠道服务商是一致的。

完成之后,想要本地调试一下请求接口,结果提示一个外部引入的依赖包里定义的 bean 不存在,有错误。按照同事的提醒,maven 清理更新之后再运行没用。想了一下,可能因为是公司自己维护的项目(nexus),所以版本号一致没变,从而导致 maven 在更新时不会更新到本地 maven 库。所以我把对应的 jar 删除后再点击 maven 更新,然后就好了。

之后运行报错:'/data' could not be created。这个错误位于 pdf 操作工具类中,对应的设备配置项就是一个字体文件地址,恰好是 /data/xxx.otf。据同事说,windows 和 linux 上运行都没有问题,猜测可能是目录不存在,创建没有权限。查看 Mac 根目录,确实没有 /data 目录。尝试创建 mkdir /data 报错:mkdir: /data: Read-only file system。所以问题变成了如何解决目录创建的问题。

解决

也想过修改项目配置,将文件夹改成其他存在的目录。但部署到 linux 就不一定存在了,且修改不确定是否会有报错,或者其他问题。所以,唯一可行的途径就是 Mac 下创建 /data 目录。

百度到 AI 智能回答:

按照步骤重新挂载根目录,然后提示磁盘空间不够,清理到 50 多个 G 还是不行,也就说这个方法不适合我的情况。

之后搜索到一篇教程 mac Apple M1 在根目录无法创建文件和文件夹 mkdir: /data : Read-only file system,测试可行。

以下是主要步骤:

mkdir /Users/xxx/data
sudo vim /etc/synthetic.conf
# 添加一行,空白部分要使用 tab 分隔
data    /Users/xxx/data

Inter : Command+R
Apple M1 : 启动长按电源键, 直到出现 “选项” 界面

在 recovery 模式下打开 terminal, 关闭 SIP

# 关闭
csrutil disable
# 查看状态
csrutil status

再选择重新启动后, 正常启动根目录会出现 /data

此时 ll 可以看到 data 是一个指向 /Users/xxx/data 目录的 Symbol(相当于软链 ln -s)。

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »