如何在OSX上安装适配版本的libevent以修复Telegram CLI运行问题
解决Telegram CLI依赖libevent 2.0.5版本的问题(OSX)
遇到这种依赖版本不兼容的情况确实挺闹心的,不过咱们可以通过安装指定版本的libevent,再让Telegram CLI指向这个版本来搞定,具体步骤如下:
一、安装libevent 2.0.5版本
我推荐用源码编译单独安装的方式,这样能把旧版本放在独立目录,不会和brew安装的新版本冲突:
- 先从libevent官方渠道下载2.0.5版本的源码压缩包,解压到本地任意目录。
- 打开终端,切换到解压后的源码目录,执行以下命令编译安装:
如果你的Mac是M系列芯片,编译时需要加上架构适配参数:# 指定专属安装目录,避免覆盖现有版本 ./configure --prefix=/usr/local/opt/libevent@2.0.5 # 开始编译 make # 安装到指定路径 sudo make install./configure --prefix=/usr/local/opt/libevent@2.0.5 ARCHFLAGS="-arch arm64" make sudo make install
如果你更习惯用brew管理,也可以尝试提取旧版本formula到自己的tap(步骤稍复杂):
- 先创建自己的brew仓库:
brew tap yourname/oldversions - 提取libevent 2.0.5的formula:
brew extract libevent@2.0 yourname/oldversions - 最后安装:
brew install yourname/oldversions/libevent@2.0.5
(注:部分超旧版本可能需要手动找对应commit的formula文件)
二、让Telegram CLI加载libevent 2.0.5
安装好旧版本后,需要让Telegram CLI优先使用这个版本的库:
方法1:临时指定路径运行
每次启动Telegram CLI前,先设置环境变量:
export DYLD_LIBRARY_PATH=/usr/local/opt/libevent@2.0.5/lib:$DYLD_LIBRARY_PATH # 然后正常启动Telegram CLI telegram-cli
方法2:永久设置环境变量
把上面的export命令添加到你的shell配置文件里(比如~/.zshrc或~/.bash_profile,根据你用的shell选择):
- 打开配置文件:
open ~/.zshrc(bash用户用open ~/.bash_profile) - 在文件末尾添加:
export DYLD_LIBRARY_PATH=/usr/local/opt/libevent@2.0.5/lib:$DYLD_LIBRARY_PATH - 保存后执行
source ~/.zshrc让设置生效,之后每次打开终端运行Telegram CLI都会自动加载旧版本的libevent。
方法3:重新编译Telegram CLI(源码编译用户适用)
如果Telegram CLI是你自己从源码编译的,直接在编译时指定libevent路径即可:
# 进入Telegram CLI源码目录 ./configure --with-libevent=/usr/local/opt/libevent@2.0.5 make sudo make install
这样编译出来的Telegram CLI会直接依赖2.0.5版本,不用再额外设置环境变量。
注意事项
- 尽量不要强制卸载brew安装的libevent 2.1.8,避免影响其他依赖这个版本的工具;用独立目录安装旧版本的方式更安全。
- 如果设置后还是有问题,可以用
otool -L telegram-cli查看Telegram CLI当前依赖的库路径,确认是否指向了2.0.5版本。
内容的提问来源于stack exchange,提问作者LA_
相关产品推荐
相关产品推荐

