Mac 安装 Navicat 步骤与汉化教程
Navicat 是数据库图形客户端,日常用它看表结构、跑查询、导数据比命令行直观,尤其是需要对着数据核对业务逻辑的时候。它支持 MySQL、PostgreSQL、MongoDB 等多种数据库,一个界面连所有库是它比较大的优势。
在 mac 上装它会遇到几个和系统安全机制相关的问题,这篇记的就是这些点。要先说清楚的是,Navicat 是商业软件,正经工作场景该买授权,下面记录的是安装过程中的技术操作。
下载地址
https://download.csdn.net/download/weixin_40013817/87576308?spm=1001.2014.3001.5503
安装步骤
解压
点击
Navicat_Premium_16_1_5_TNT.dmg,再点击Manual install
dmg 是 mac 的磁盘映像格式,双击后会挂载成一个虚拟磁盘出现在 Finder 里,里面才是实际内容。
这张图是挂载后打开的窗口,里面有几个选项,选手动安装那个。

接着如图所示将 navicat 拖进应用程序中
mac 上的应用就是一个后缀为 .app 的目录,安装本身只是把这个目录复制到 /Applications 下面,没有 Windows 那种写注册表的过程。所以「拖进去」字面上就是复制文件。
这张图是拖拽的操作,左边是 dmg 里的应用图标,右边是应用程序文件夹的快捷入口,拖过去即可。

装完记得在 Finder 侧边栏把挂载的磁盘映像推出,否则它会一直占着。
- 解决文件损坏等问题
这一步是 mac 上装非商店来源软件的典型障碍。打开应用时系统提示「文件已损坏,无法打开」或者「无法验证开发者」,实际上文件没坏,是被系统的门禁机制拦下了。
原理是这样:从浏览器下载的文件,系统会给它打上一个隔离标记的扩展属性。打开带这个标记的应用时,系统会去校验代码签名和公证信息,校验不过就拒绝执行。而这类经过第三方修改的安装包,原本的签名已经失效,所以必然过不了校验。
运行以下命令,可在 help.txt 查看此命令
sudo xattr -rd com.apple.quarantine /Applications/Navicat\ Premium.app
sudo spctl --master-disable
这两条命令的性质差别很大,值得分清楚,别不加区分地都执行。
第一条是移除隔离标记。xattr 是操作文件扩展属性的工具,-d 删除指定属性,-r 递归处理目录内所有文件,com.apple.quarantine 就是那个隔离标记。这条命令的作用范围仅限于命令里指定的那一个应用,改动是局部的、可控的。路径里的反斜杠是转义空格,因为应用名 Navicat Premium 中间有空格。
第二条是全局关闭系统的门禁校验,也就是让整台机器不再验证任何应用的来源。这条影响的是系统级别的安全策略,不只是这一个软件,之后从任何渠道下载的应用都不会再被拦截。
我的建议是先只跑第一条,绝大多数情况下这就够了。只有在第一条无效时才考虑第二条,而且用完应该用 sudo spctl --master-enable 及时改回来。顺带说一句,新版本的 macOS 已经不再支持通过这条命令直接关闭门禁,需要先在系统设置的隐私与安全性里手动允许一次,所以执行报错也不必意外。
另外还有个不用动命令行的办法:在应用图标上右键选择打开,系统会弹出一个带「仍要打开」选项的对话框,确认一次之后这个应用就被加进了例外名单。这个方式只作用于单个应用,比全局关门禁安全得多,遇到「无法验证开发者」的提示可以先试它。
汉化
Navicat 的多语言资源是以目录形式放在应用包里的,每种语言一个 .lproj 目录。所以加中文支持只需要把对应的目录放进去,不需要重新安装。
如图所示,将解压出来的文件 zh-Hans.lproj 粘贴到如图所示目录。
如何找到此目录:找到安装好的
navicat右键,显示包内容。
前面提过 .app 本质上是个目录,「显示包内容」就是让 Finder 把它当普通文件夹打开,进去能看到 Contents,资源文件都在里面。这是 mac 上很实用的一个入口,改应用内置资源、看应用的配置清单都靠它。
下图是目标目录的位置,把 zh-Hans.lproj 整个目录放到图中所示的层级下。zh-Hans 是简体中文的标准语言标识,Hans 指简体字,繁体是 zh-Hant,名字不能改,系统靠它匹配语言。

放好后重启应用,界面语言会跟随系统语言自动切到中文。如果没变,去偏好设置里看有没有语言选项手动指定一下。
需要注意的是,修改应用包内容会让原本的代码签名失效,如果之前没跑过移除隔离标记那步,这时候可能又会被系统拦住,重新执行一次第一条命令即可。另外应用升级会覆盖整个包,语言目录会丢,每次升级后都得重新放一遍。

还没有留言,来发表第一条吧~