突然发现我的sublime text 的package control不起作用了,设置也变成灰色的了。
本以为是st出问题了,从官网重新下载,然后点菜单命令中的install package control,还是一样的不起作用。
启动st后,用ctrl+~ 打开st的console, 发现出错了,最后一行是:
Package Control.package_control.deps.oscrypto._ffi.FFIEngineError: Error initializing ctypes
查了下pc 的github主页,有人反馈这个问题,作者说是pc不支持openssl3, 自己看了下 /usr/local/lib/ 里面的链接,发现libcrypto.dylib链接的openssl@3.1.1 的库,用以下命令重新建软链:
ln -sf /usr/local/Cellar/openssl@1.1/1.1.1u/lib/libcrypto.dylib /usr/local/lib/
(注意这里一定要换成自己电脑上的正确路径,在我这里是:openssl@1.1/1.1.1u)
然后重启st就ok了。
应该是homebrew升级了openssl导致的,但是这个方法是修改了电脑上的openssl全局版本,可能会导致其他软件出问题,也可以下载pc 的4.0-beta版本,放到Installed Packages目录中,作者说4.0支持最新的openssl3。(不要下载4.0.0-beta3, 这个版本起不来,我用的是4.0.0-beta2)
关于这个问题的讨论在:
https://github.com/wbond/package_control/issues/1612
目前发现,是因为用brew 安装了mysql, MySQL是依赖于openssl@3的,brew info mysql如下:
Open source relational database management systemhttps://dev.mysql.com/doc/refman/8.0/en/Conflicts with: mariadb (because mysql, mariadb, and percona install the same binaries) percona-server (because mysql, mariadb, and percona install the same binaries)Not installedFrom: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/mysql.rbLicense: GPL-2.0-only with Universal-FOSS-exception-1.0==> DependenciesBuild: cmake ✘, pkg-config ✔Required: icu4c ✔, libevent ✔, libfido2 ✔, lz4 ✔, openssl@3 ✔, protobuf@21 ✔, zlib ✔, zstd ✔==> CaveatsWe've installed your MySQL database without a root password. To secure it run: mysql_secure_installationMySQL is configured to only allow connections from localhost by defaultTo connect run: mysql -u root
所以 brew install mysql 以后,/usr/local/lib 里面的库就会变成openSSL@3。