CentOS 7 安装 efb v2 来收发微信
上一篇文章已经介绍了如何安装 v1,这篇文章来介绍如何安装 v2 版本的 ehforwarderbot
安装依赖
yum install -y gcc file-devel libwebp-tools git screen
# 安装 python3.6 和 pip3
wget https://www.moerats.com/usr/shell/Python3/CentOS_Python3.6.sh && sh CentOS_Python3.6.sh
yum install python3-pip python3-dev python3-setuptools
# 下载 ffmpeg
wget https://www.moerats.com/usr/down/ffmpeg/ffmpeg-git-$(getconf LONG_BIT)bit-static.tar.xz && tar xvf ffmpeg-git-*-static.tar.xz
mv ffmpeg-git-*/ffmpeg ffmpeg-git-*/ffprobe /usr/bin/
rm -rf ffmpeg-git-*
安装 efb
安装 efb(ehforwarderbot)
二选一:
# 安装稳定版
pip3 install ehforwarderbot
# 安装开发版
pip3 install git+https://github.com/blueset/ehforwarderbot.git
安装 ETB(efb-telegram-master)和 EWS(efb-wechat-slave)
# 安装TG和微信模块
pip3 install efb-telegram-master efb-wechat-slave
配置 efb
配置 efb(ehforwarderbot)
mkdir -p ~/.ehforwarderbot/profiles/default
vi ~/.ehforwarderbot/profiles/default/config.yaml
保存下列代码到 config.yaml
:
master_channel: "blueset.telegram"
slave_channels:
- "blueset.wechat"
这只是登录一个微信号,如果你要同时登录多个微信号,那么配置文件就需要改为:
# 比如我要同时登录并收发3个微信号
master_channel: blueset.telegram
slave_channels:
- blueset.wechat
- blueset.wechat#moe123
- blueset.wechat#rats321
# #号后面指定id,只能是字母、数字、下划线
配置 ETB
# 同样的也建在 default 文件夹,如果你上面更改了 default 文件夹,那这里也要更改
mkdir ~/.ehforwarderbot/profiles/default/blueset.telegram
vi ~/.ehforwarderbot/profiles/default/blueset.telegram/config.yaml
保存下列代码到 blueset.telegram/config.yaml
:
token: "机器人的 TOKEN"
admins:
- 你自己的 Userid
flags:
# 关闭自动语言设置,使用 systemd 启动时默认中文
auto_locale: false
配置 EWS
# 同样的也建在 default 文件夹,如果你上面更改了 default 文件夹,那这里也要更改
mkdir ~/.ehforwarderbot/profiles/default/blueset.wechat
vi ~/.ehforwarderbot/profiles/default/blueset.wechat/config.yaml
保存下列代码到 blueset.wechat/config.yaml
:
flags:
# tg 端编辑消息时以撤回并重新发送的方式发送到微信
delete_on_edit: true
# 每当请求会话列表时,强制刷新会话列表
refresh_friends: true
# 使用 iTerm2 图像协议 显示二维码。本功能只适用于 iTerm2 用户
imgcat_qr: true
# 在收到第三方合作应用分享给微信的链接时,其附带的预览图将缩略图上传到 sm.ms
app_shared_link_mode: upload
设置守护进程
创建 efb 服务
vi /etc/systemd/system/efb.service
保存以下配置到 efb.service
:
[Unit]
Description=EH Forwarder Bot instance
After=network.target
Wants=network.target
Documentation=https://github.com/blueset/ehForwarderBot
[Service]
Type=simple
Environment='LANG=zh_CN.UTF-8' 'PYTHONIOENCODING=utf_8' 'EFB_DATA_PATH=/root/.ehforwarderbot'
ExecStart=/usr/local/bin/ehforwarderbot --verbose
Restart=on-abort
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
使用 systemctl 管理 efb
# 开机启动
sudo systemctl enable efb
# 启动
sudo systemctl start efb
# 关闭
sudo systemctl stop efb
# 重启
sudo systemctl restart efb
# 查看运行详情
sudo systemctl status efb
# 查看更加详细的运行详情
sudo systemctl status efb -l
登录 efb
- 如果不使用 systemctl 管理,则执行
ehforwarderbot --verbose
进行启动 - 如果使用 systemctl 进行管理
sudo systemctl start efb
sudo systemctl status efb -l
然后复制二维码连接到浏览器,扫码登陆
安装中遇到的错误
缺少 cairo 依赖
描述:
raise OSError(error_message) # pragma: no cover
OSError: no library called "cairo" was found
解决方案:
yum install -y cairo-devel libtiff* && pip3 install cairosvg cairocffi
描述:
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-g3q2qdl8/cairocffi/
原因:pip 版本过低
解决方案:
pip3 install --upgrade pip
python 安装失败
描述:
configure: error: in `/usr/local/src/Python-3.6.4':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
解决方案:yum install gcc -y
描述:
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1
解决方案:yum install zlib* -y
pip 安装依赖失败
描述:install --record /tmp/pip-f5erwx9h-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-34xxo8de/cairocffi/
解决方案:
pip install -U setuptools
pip install -U wheel
如何迁移
- 保留
/root/.ehforwarderbot/profiles/default/blueset.telegram
下的config.yaml
和tgdata.db
文件 - 保留
/root/.ehforwarderbot/profiles/default/blueset.wechat
下的wxpy_puid.pkl
文件(这个文件存着对应微信好友的 UID,与 tgdata 的 chatassoc 表相对应)