macOS 软件彻底卸载篇

image-20240316193810542

软件长期使用不卸载,并且随着软件不断更新,它的占用空间会越来越大。

比如我的 Xcode 用 App Cleaner 检测到竟然占用了 101G,可安装至今还不到 6 个月。
比如 JetBrains 家的 IDE 可以通过 JetBrains Toolbox 进行软件的卸载,但是它仍然不能进行彻底卸载,即使通过 App Cleaner 也不能彻底卸载,那么就需要我们手动删除了,那需要手动删除的文件或目录是哪些呢?

Python3 报错 dyld cache '/System/Library/dyld/dyld_shared_cache_x86_64h' not loaded: syscall to map cache into shared region failed

在执行 Python3 命令的时候报如下错误:

1
2
3
4
5
6
$ python3
dyld[44774]: dyld cache '/System/Library/dyld/dyld_shared_cache_x86_64h' not loaded: syscall to map cache into shared region failed
dyld[44774]: Library not loaded: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
Referenced from: /Library/Frameworks/Python.framework/Versions/3.6/Resources/Python.app/Contents/MacOS/Python
Reason: tried: '/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation' (no such file), '/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation' (no such file)
[1] 44774 abort python3

估计是 Python 版本有问题,自 macOS Monterey 12.3 后,Python 2 已经从系统移除,安装命令行开发者工具后会自动安装 Python 3,那就可以换成 macOS 的 Python3 试试。

ClashX Pro 开启增强模式后 Git 连接不上 GitHub

代理软件如何实现真全局代理或对指定应用代理? - 干志雄的博客 这篇文章中讲了通过 ClashX Pro 开启增强模式来显示真全局代理,但是开启后会导致 Git 连接不上 GitHub 的问题。

1
2
3
$ ssh -T git@github.com
kex_exchange_identification: Connection closed by remote host
Connection closed by 28.0.0.102 port 22

增强模式是利用 TUN ,创建虚拟网卡改路由表优先走这块虚拟网卡接管所有流量。IP 28.0.0.101 是虚拟 IP,目的是为了接管系统流量。

这个问题的原因就是某些节点因为安全问题禁用了 22 端口,而 SSH 默认使用的就是 22 端口,因此连接就会被拒绝。解决方法就是把 22 端口换成 443 端口,即通过 HTTPS 端口建立的 SSH 连接。

Read more

macOS 截取窗口的正确姿势

macOS 虽然自带截图,但大多数人仍然会安装第三方的截图软件,比如我使用截图软件就是 Snipaste,他不光免费,而且还支持贴图的功能,能满足我的日常使用。

但它有个问题就是截取窗口的时候,并不是安装窗口形状截取的,它只能截取矩形,比如截取圆角的窗口,窗口圆角之外并非透明,而是上层窗口或桌面背景,如下图所示:

对于追求完美的我,这点我无法容忍。

好在 macOS 自带的截图不会存在这个问题,但在使用时需要点技巧来避免截取生成的窗口阴影。

代理软件如何实现真全局代理或对指定应用代理?

在 Xcode 中使用 SPM 解决依赖时,经常出现 Error while fetching remote repositoryhttps://github.com/xxx/xxx: An unknown error occurred. failed to connect to github.com: Operation timed out (-1),在国内访问 Github 是及其不稳定的,因此首先要解决的是让电脑访问 GitHub 速度加快,那当然是科学上网了(作为一名程序员,如果不会科学上网吗,那真的该反思了),再让 Xcode 走系统代理,即可解决此问题。

代理软件本人常用的代理软件如下:

  • Clash:一个 Go 语言开发的多平台代理客户端,Github
  • ClashX:Clash 的 Mac 图形客户端,Github
  • ClashX Pro: 是 Clash 的增强版,闭源,但也是免费。
  • ClashForAndroid:Clash 的 Android 图形客户端,Github
  • Clash for Windows:Clash 的 Windows/macOS/Linux 图形客户端,Github

代理软件默认只对浏览器代理,Terminal 可以通过 export 设置代理,但像 Xcode 这类应用是不支持直接设置代理的,那如何使这类软件遵循系统代理呢?

解决 Rider Debug Console 窗口不显示 Console.Write/WriteLine 的输出

自从使用 Rider 后,基本上就没有用过 VS 了。虽然这不是什么大问题,但真的很烦人。

这是 Rider 的一个 bug,虽然通过 Debug.Write/WriteLine 是可以在 Debug Output 窗口输出的。但是对于第三方的代码,你不可能因为 Rider 而去重写他人的代码,因为团队开发中,其他成员可能用的是 VS,VS 是没有这个问题。

如何使用 grep 输出标题?

我们知道 ps 命令是一个方便的实用程序,用于列出系统上当前正在运行的进程。此外,grep 命令擅长过滤文本。

在本教程中,我们将探索如何结合 head、grep、sed、awk 命令来查找所需的进程并保留ps输出的标题行,以及为什么我们不应该使用 ps -ef | {head -1; grep 'patter';} 方法。

Read more