云崽安装教程
准备运行云崽
更新源索引及应用
提示
Linux 上的软件包管理命令基本都可以根据当前系统使用的包管理器(如:apt
、yum
等)来选择对应命令进行使用。
sudo apt update && \
sudo apt upgrade -y
/
注意
某些系统可能已改用
dnf
作包管理器。这些系统请将以下所有的yum
改成dnf
。
sudo yum update
sudo pacman -Syu
sudo apk update && \
sudo apk upgrade
安装常用应用
安装包管理器
注意
当系统已使用 Dandified YUM 作包管理器时,可跳过此步。
sudo yum install dnf -y
安装必要软件库
sudo pacman -S --needed git base-devel
提示
使用
--needed
参数后将不会重新安装已有且最新的目标软件。获取、编译并安装 Yet Another Yogurt
进入用户目录并下载源码
cd ~ && \ git clone https://aur.archlinux.org/yay.git
编译源码并安装
cd yay && \ makepkg -si
提示
安装完成后可将源码删除。
cd ~ && \ rm -rf yay
安装下载应用
sudo apt install wget curl -y
sudo yum install wget curl -y
sudo pacman -S wget curl
sudo apk add wget curl
相关信息
wget
即 GNU Wget,用于下载在网络上的资源。curl
即 Client URL,用于向 Web 服务器发出请求并在命令行输出结果。
安装编译库
注意
- 若要使用语音功能,则需要安装 FFmpeg,Debian/Ubuntu/Fedora/RHEL/CentOS~~/Alpine~~ 就需要安装编译库,或者不安装编译库直接使用编译好的包。
sudo apt install gcc g++ make cmake yasm pkg-config build-essential checkinstall -y
sudo yum install gcc g++ make cmake yasm pkg-config -y
/
注意
无需自行编译源码,可跳过此步。
/
注意
暂时不知如何编译 FFmpeg,可以跳过此步。如若有谁知道,劳烦在下面提出。
Alpine 需先创建源码文件夹。# sudo mkdir -p /usr/local/src
# sudo apk add gcc g++ make cmake yasm
提示
在安装完成后,以上库皆可删除。但之后重新安装时记得下回来哦。
/
sudo apt remove --purge -y \ gcc g++ make cmake yasm pkg-config build-essential checkinstall
sudo yum remove --purge gcc g++ make cmake yasm pkg-config build-essential checkinstall -y
# sudo apk del gcc g++ make cmake yasm
安装编辑应用
sudo apt install vim -y
sudo yum install vim -y
sudo pacman -S vim
sudo apk add vim
安装字体
注意
此处以自定义安装原神字体为例。若不想安装原神字体,可直接安装字体包。
/
sudo apt install --force-yes --no-install-recommends fonts-wqy-microhei -y
sudo yum groupinstall fonts -y
sudo pacman -S noto-fonts-cjk
sudo apk add wqy-zenhei
创建并进入字体存放文件夹
sudo mkdir -p /usr/share/fonts/truetype/mihoyo && \ cd /usr/share/fonts/truetype/mihoyo
sudo mkdir -p /usr/share/fonts/mihoyo && \ cd /usr/share/fonts/mihoyo
sudo mkdir -p /usr/share/fonts/ttf/miHoYo && \ cd /usr/share/fonts/ttf/miHoYo
下载字体并更改其权限
sudo wget https://file.letsshareall.com/others/fonts/汉仪文黑-85W_Heavy.ttf \ -O HanyiWenhei85W-Heavy.ttf && \ sudo chmod 644 HanyiWenhei85W-Heavy.ttf
相关信息
-O
参数等价于--output-document=
,用于将下载的文档写入目标文件。易混淆的参数有等价于--output-file=
的-o
,用于将下载日志信息写入目标文件。
提示
若安装中文字体后云崽发送的图片中会出现
?
或者□
等符号,则可尝试重启云崽或系统解决,若问题依旧,则请尝试安装其他中文字体。
Git
安装注意
若不想编译安装,可直接使用包管理器安装(不为最新版)。
/
sudo apt install git -y
sudo yum install git -y
sudo pacman -S git
sudo apk add git
准备安装 Git
安装 Git 依赖库
sudo apt install dh-autoreconf libcurl4-gnutls-dev libexpat1-dev \ gettext libz-dev libssl-dev -y
安装附加依赖库
sudo apt install asciidoc xmlto docbook2x -y
相关信息
这些依赖库可为 Git 提供添加各种格式文档(doc、html、info)的支持。
安装
install-info
sudo apt install install-info -y
安装 Git 依赖库
sudo dnf install dh-autoreconf curl-devel expat-devel gettext-devel \ openssl-devel perl-devel zlib-devel -y
安装附加依赖库
sudo dnf install asciidoc xmlto docbook2X -y
安装
getopt
包sudo dnf install getopt -y
创建
docbook2x
软链接sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
相关信息
此处创建软链接是因为 Git 编译时使用的库名与 Dandified YUM 安装库时使用的库名不同。
获取、编译并安装 Git
进入用户源码目录并下载源码
cd /usr/local/src && \ sudo wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.38.0.tar.xz
解压、编译源码并安装
sudo tar -xf git-2.38.0.tar.xz -C .
相关信息
-C
参数等价于--directory=
,用于指定解压的目标目录。注意
当解压
*.tar.xz
文件时出现找不到 xz 命令
错误时,可尝试安装xz-utils
包解决。/
sudo apt install xz-utils -y
sudo yum install xz -y
cd git-2.38.0 && \ sudo make configure
sudo ./configure --prefix=/usr
sudo make all doc info
sudo make install install-doc install-html install-info
提示
一般经过源码编译安装的软件,都可在源码目录中
Makefile
文件所在目录使用sudo make uninstall
命令卸载。经过源码编译安装的软件,可通过更新源码并再次编译安装以更新软件。
当今后想要更新 Git 时,可使用 Git 获取源码并根据以上教程进行编译更新。
sudo git clone git://git.kernel.org/pub/scm/git/git.git /usr/local/src/
可以使用
git config
命令让 Git 使用代理服务器.git config --global http.https://github.com.proxy http://127.0.0.1:7890 git config --global http.https://github.com.proxy socks5://127.0.0.1:7891
使用
git config --unset
取消代理。git config --global --unset http.proxy git config --global --unset https.proxy
详见官方文档。
Redis
安装注意
若不想进行编译安装,可直接使用包管理器进行安装。
\
sudo apt install redis-server -y
sudo yum install redis -y
sudo pacman -S redis
sudo apk add redis
获取、编译并安装 Redis
进入用户源码目录并下载源码
cd /usr/local/src && \ sudo wget https://download.redis.io/redis-stable.tar.gz
解压、编译源码并安装
sudo tar -xf redis-stable.tar.gz -C .
cd redis-stable && \ sudo make
sudo make install
提示
详见官方文档。
Chromium
安装注意
Chromium 的编译安装至少需要 8GB 主存(运行内存),推荐 16GB 主存。
若不想编译安装,可直接使用包管理器进行安装。
sudo apt install chromium -y
sudo apt install chromium-browser -y
sudo yum install chromium -y
sudo pacman -S chromium
sudo apk add chromium
准备安装 Chromium
安装
depot-tools
进入用户文件夹并克隆
depot-tools
cd ~ && \ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
将
depot-tools
添加至$PATH
并刷新环境变量的修改cat ~/.bashrc << EOF # depot_tools export PATH="\$PATH:\${HOME}/depot_tools" # depot_tools end EOF
source ~/.bashrc
相关信息
cat
某些内容后跟 `` 某文件是在某文件内容后追加某些内容。EOF
即End Of File
,用于在终端处理多行内容。它以<< EOF
开始,以EOF
结尾。
获取、编译并安装 Chromium
进入用户源码目录并下载源码
cd /usr/local/scr && \ sudo mkdir chromium && \ cd chromium && \ sudo fecth --nohooks --no-history chromium
相关信息
fetch
来自于准备阶段下载的depot_tools
,可以获取源码及软件依赖。添加
--no-history
参数则fetch
不会获取所有历史源码。此举可有效节省大量时间。
进入源码目录并安装用于编译的附加依赖
cd src && \ sudo ./build/install-build-deps.sh
运行钩子
gclient runhooks
相关信息
在此处运行的钩子为 Chromium 特定的钩子,将会下载可能会用到的附加二进制文件等。
提示
你可以选择在这时安装用于使用谷歌服务的 API 密钥。此为非必须步骤。
编译源码并安装
gn gen out/Default
提示
详见官方文档。
FFmpeg-可选
安装注意
若要使用语言功能插件,则一定得安装 FFmpeg。
Debian/Ubuntu/Fedora/RHEL/CentOS/Alpine 请先安装编译工具。
若不想手动编译安装,可用包管理器安装。
sudo pacman -S ffmpeg
- /
注意
Arch 安装的 FFmpeg 支持 AMR 转码,无需自行编译。
# sudo apk add ffmpeg
- /
注意
Alpine 这样安装的 FFmpeg 并不能将音频转码成 AMR 格式。
- /
准备安装 FFmpeg
opencore-amr
安装提示
安装已经编译好的包 OpenCore-AMR。
下载
OpenCore-AMR.tar.gz
cd /usr/local && \ sudo wget https://file.letsshareall.com/applications/linux/OpenCore-AMR.tar.gz
解压
OpenCore-AMR.tar.gz
sudo tar -xf OpenCore-AMR.tar.gz
移动
opencore-amr
sudo cp -rf /usr/local/opencore-amr/* /usr/local/ && \ sudo rm -rf /usr/local/opencore-amr
卸载编译软件包
OpenCore-AMR
。sudo rm -rf /usr/local/include/opencore-amr* && \ sudo rm -rf /usr/local/lib/libopencore-amr* && \ sudo rm -rf /usr/local/lib/pkgconfig/opencore-amr*
进入用户源码目录并下载源码
cd /usr/local/src && \ sudo wget \ https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-0.1.6.tar.gz/download
解压、编译源码并安装
sudo tar -xf download -C .
cd opencore-amr-0.1.6 && \ sudo ./configure
sudo make
sudo make install
安装 FFmpeg 编译依赖库
提示
安装已经编译好的包 FFmpeg。
下载
FFmpeg.tar.gz
cd /usr/local && \ sudo wget https://github.com/LetsShareAll/file/releases/download/applications/FFmpeg.tar.gz
解压
FFmpeg.tar.gz
sudo tar -xf FFmpeg.tar.gz
移动
ffmpeg
sudo cp -rf /usr/local/ffmpeg/* /usr/local/ && \ sudo rm -rf /usr/local/ffmpeg
安装 LibIconv 库
下载
LibIconv.tar.gz
cd /usr/local && \ sudo wget https://file.letsshareall.com/applications/linux/LibIconv.tar.gz
解压
LibIconv.tar.gz
sudo tar -xf LibIconv.tar.gz
移动
libiconv
sudo cp -rf /usr/local/libiconv/* /usr/local/ && \ sudo rm -rf /usr/local/libiconv
安装 LibSDL、LibSndio、LibVA、LibVDPAU 等库
sudo apt install libsdl2-2.0-0 libsndio7.0 libva-drm2 libva-x11-2 libvdpau1 -y
yum install SDL2 libva libvdpau -y
卸载安装的已编译软件包 FFmpeg。
sudo rm -rf /usr/local/bin/ffmpeg && \ sudo rm -rf /usr/local/bin/ffprobe && \ sudo rm -rf /usr/local/include/libav* && \ sudo rm -rf /usr/local/include/libpostproc && \ sudo rm -rf /usr/local/include/libsw* && \ sudo rm -rf /usr/local/lib/libav*.a && \ sudo rm -rf /usr/local/lib/libpostproc.a && \ sudo rm -rf /usr/local/lib/libsw*.a && \ sudo rm -rf /usr/local/lib/pkgconfig/libav* && \ sudo rm -rf /usr/local/lib/pkgconfig/libpostproc.pc && \ sudo rm -rf /usr/local/lib/pkgconfig/libsw* && \ sudo rm -rf /usr/local/share/doc/ffmpeg && \ sudo rm -rf /usr/local/share/man/*/ffmpeg* && \ sudo rm -rf /usr/local/share/man/*/ffprobe* && \ sudo rm -rf /usr/local/share/man/*/libav* && \ sudo rm -rf /usr/local/share/man/*/libsw* && \ sudo rm -rf /usr/local/share/ffmpeg && \ sudo rm -rf /usr/local/bin/iconv && \ sudo rm -rf /usr/local/include/iconv.h && \ sudo rm -rf /usr/local/include/*charset.h && \ sudo rm -rf /usr/local/lib/libcharset* && \ sudo rm -rf /usr/local/lib/libiconv* && \ sudo rm -rf /usr/local/share/doc/iconv* && \ sudo rm -rf /usr/local/share/locale/*/*/libiconv.mo && \ sudo rm -rf /usr/local/share/man/*/iconv*
注意
只是删除了安装的文件,其他的用户配置及数据均需自己删除。
sudo apt-get update -qq && sudo apt-get -y install \
autoconf \
automake \
libass-dev \
libfreetype6-dev \
libgnutls28-dev \
libmp3lame-dev \
libsdl2-dev \
libtool \
libva-dev \
libvdpau-dev \
libvorbis-dev \
libxcb1-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
meson \
ninja-build \
texinfo \
yasm \
zlib1g-dev \
libunistring-dev libaom-dev libdav1d-dev
yum install -y \
autoconf automake bzip2 bzip2-devel cmake freetype-devel \
gcc gcc-c++ git libtool make pkgconfig zlib-devel
提示
在编译安装完成后,这些库可以移除。
请务必在所有步骤完成后执行!
/
sudo apt remove --purge -y \ autoconf \ automake \ libass-dev \ libfreetype6-dev \ libgnutls28-dev \ libmp3lame-dev \ libsdl2-dev \ libtool \ libva-dev \ libvdpau-dev \ libvorbis-dev \ libxcb1-dev \ libxcb-shm0-dev \ libxcb-xfixes0-dev \ meson \ ninja-build \ texinfo \ yasm \ zlib1g-dev \ libunistring-dev libaom-dev libdav1d-dev
yum remove --purge -y \ autoconf automake bzip2 bzip2-devel cmake freetype-devel \ gcc gcc-c++ git libtool make pkgconfig zlib-devel
获取、编译并安装 FFmpeg
进入用户源码目录并下载源码
cd /usr/local/src && \ sudo git clone --depth=1 https://git.ffmpeg.org/ffmpeg.git ffmpeg
相关信息
--depth
参数用于指定克隆深度。当depth=1
时,将会只克隆仓库的最近一次提交数据。此举可有效解决仓库过大无法克隆或仓库占用存储太高的问题。解压、编译源码并安装
cd ffmpeg && \ sudo ./configure --enable-gpl --enable-version3 --enable-nonfree --disable-ffplay \ --enable-ffprobe --enable-libopencore-amrnb --enable-libopencore-amrwb
相关信息
--enable-gpl --enable-version3
即使用 GPL(General Pubilc License,GNU 通用公共许可协议)进行编译。开启后方可使--enable-nonfree
即允许只用非自由代码。--disable-ffplay
即关闭 FFplay 功能。因我们只需要语音编码功能,此处可关闭。--enable-ffprobe
即开启 FFprobe 功能。此功能用于查看多媒体文件信息。--enable-libopencore-amrnb --enable-libopencore-amrwb
即开启 AMR 编码功能。QQ 语音就是使用 AMR 编码,因此我们此处开启之。
sudo make
sudo make install
注意
安装完 FFmpeg 后运行时出现 ffmpeg: error while loading shared libraries: *.so.0: cannot open shared object file: No such file or directory
这类的消息,可尝试运行以下命令解决:
sudo sh -c "echo '/usr/local/lib' /etc/ld.so.conf" && \
sudo ldconfig
提示
详见官方文档。
PNPM
安装使用独立脚本进行安装
curl -fsSL https://get.pnpm.io/install.sh | sh -
下载 PNPM 并更改其权限
sudo curl -fsSL \ "https://github.com/pnpm/pnpm/releases/latest/download/pnpm-linuxstatic-x64" \ -o /bin/pnpm && \ sudo chmod +x /bin/pnpm
将当前用户的 Shell 更改为 Bash
sudo usermod -s /bin/bash username && \ chsh -s /bin/bash
安装 PNPM
pnpm setup && \ source ~/.bashrc
安装 Node
sudo apk add nodejs
相关信息
-f
即--fail
,表示在服务器错误时,阻止一个返回的表示错误原因的 HTML 页面,而由curl
命令返回一个错误码 22 来提示错误。-s
即--silent
,安静模式。不显示进度表或错误信息。使curl
静音。它仍然会输出您请求的数据,甚至可能输出到终端 STDOut,除非您对它进行重定向。-S
参数指定只输出错误信息,通常与-s
一起使用。-L
,--location:如果服务器报告请求的页面已移动到其他位置(用 location:header 和 3xx 响应代码),此选项将使curl
在新位置上重新执行请求。--show-error
:当与-s
即--silent
一起使用时,它会使curl
在失败时显示错误消息。-o
参数将服务器的回应保存成文件,等同于wget
命令。sh -
即运行上一命令返回的命令行输出。
使环境变量更改在此终端会话生效
source ~/.bashrc
安装 Node
pnpm env use --global latest
提示
当运行
pnpm add packge -w
出现ERROR --workspace-root may only be used inside a workspace
时,请移除-w
参数。此情况一般在使用 V2 版云崽时利用 PNPM 安装依赖出现。详见官方文档。
下载云崽
下载云崽源码
下载云崽 V3
cd ~ && \ git clone --depth=1 https://github.com/Le-niao/Yunzai-Bot.git
下载云崽 V2
cd ~ && \ git clone --depth=1 https://github.com/yoimiya-kokomi/Yunzai-Bot.git
注意
若以上命令执行太慢或失败,可切换为 Yunzai-Bot@Gitee。
git clone --depth=1 https://gitee.com/yoimiya-kokomi/Yunzai-Bot.git
当使用云崽 V2 时,利用 PNPM 管理依赖可能会出现
Error [ERR_MODULE_NOT_FOUND]: Cannot find package
错误,此时可以pnpm add packge
。# 假设缺少 date-format pnpm add data-format
安装云崽依赖
安装 Puppeteer 依赖
sudo apt install -y libgbm-dev libasound2-dev libcups2 libxkbcommon0 \ libxcomposite1 libnss3 libatk1.0-0 libxdamage1 libxfixes3 \ libxrandr2 libpango-1.0-0 libcairo2 libatk-bridge2.0-0
yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 \ libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 \ libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 -y && \ yum install libdrm libgbm libxshmfence -y && \ yum install nss -y && \ yum update nss -y
安装 Node 依赖
cd ~/Yunzai-Bot && \ pnpm install
注意
安装依赖时可能会报
ENOENT not found: node
错误,具体解决方法请前往安装 PNPM下的提示查看。若安装依赖时出现
node_modules/.pnpm/puppeteer@13.7.0/node_modules/puppeteer: Running install script... ELIFECYCLE Command failed.
错误,可以添加--ignore-scripts
参数安装 Puppeteer。安装 Puppeteer 时忽略安装脚本
cd ~/Yunzai-Bot && \ pnpm install puppeteer -w --ignore-scripts
手动使用安装脚本
node ./node_modules/puppeteer/install.js
若运行云崽后提示
chrome-linux/chrome: error while loading shared libraries: *.so.*
,可尝试运行以下步骤解决(请将{version}
替换为 Linux 版本号,可在输入命令到linux
后使用Tab
键自动补全目录):安装
apt-file
sudo apt install apt-file -y
更新
apt-file
缓存sudo apt-file update
查找缺失依赖
cd ~/Yunzai-Bot/node_modules/puppeteer/.local-chromium/linux-{version}/chrome-linux && \ ldd chrome | grep not
之后会展示所有缺失的依赖组件,再使用
apt-file search {*.so.*}
(请将{*.so.*}
换成缺失的依赖组件)命令查询组件,而后使用sudo apt install {*} -y
(请将{*}
换为查询到的组件)来安装组件。
下载云崽插件-可选
喵喵插件
下载下载喵喵插件源码
cd ~/Yunzai-Bot && \
git clone --depth=1 https://github.com/yoimiya-kokomi/miao-plugin.git ./plugins/miao-plugin
注意
若以上命令执行太慢或失败,可切换为 miao-plugin@Gitee。
git clone --depth=1 https://gitee.com/yoimiya-kokomi/miao-plugin.git ./plugins/miao-plugin
安装喵喵插件依赖
pnpm add image-size -w
提示
详见官方文档。
PY 插件
下载Python
安装提示
安装已经编译好的包 Python。
下载
Python.tar.gz
cd /usr/local && \ sudo wget https://github.com/LetsShareAll/file/releases/download/applications/Python.tar.gz
解压
Python.tar.gz
sudo tar -xf Python.tar.gz
移动
python3
sudo cp -rf /usr/local/python/* /usr/local/ && \ sudo rm -rf /usr/local/python
创建
python
及pip
链接sudo ln -s python3 /usr/local/bin/python && \ sudo ln -s pip3 /usr/local/bin/pip
卸载安装的已编译好的包 Python。
sudo rm -rf /usr/local/bin/2to3* && \ sudo rm -rf /usr/local/bin/idle3* && \ sudo rm -rf /usr/local/bin/pip* && \ sudo rm -rf /usr/local/bin/py* && \ sudo rm -rf /usr/local/include/python* && \ sudo rm -rf /usr/local/lib/libpy* && \ sudo rm -rf /usr/local/lib/py* && \ sudo rm -rf /usr/local/lib/pkgconfig/python* && \ sudo rm -rf /usr/local/share/man/*/python*
注意
Alpine 暂时不知如何正常使用 Poetry,因此请勿安装 PY 插件。若有大佬知道,请于下方指出。
若是 Python 运行时报错
python服务器已关闭 Error: 14 UNAVAILABLE: Connection dropped
,请在运行云崽时实时监测服务器的主存(运行内存)是否充足。free -h -s 3
准备安装 Python
安装编译依赖
sudo apt install -y libreadline-dev libncursesw5-dev libssl-dev libexpat1-dev \
libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
sudo yum install -y zlib-devel bzip2-devel expat-devel gdbm-devel openssl-devel \
ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel
提示
在所有步骤完成后,编译依赖可以卸载。
/
sudo apt remove --purge -y libreadline-dev libncursesw5-dev libssl-dev libexpat1-dev \ libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
sudo yum remove --purge -y zlib-devel bzip2-devel expat-devel gdbm-devel openssl-devel \ ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel
获取、编译并安装 Python
进入用户源码目录并下载源码
cd /usr/local/src && \ sudo wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz
解压、编译源码并安装
sudo tar -xf Python-3.11.0.tar.xz
cd Python-3.11.0 && \ sudo ./configure --enable-optimizations
sudo make
sudo make install
注意
若使用
python3
命令时提示Command not found
,请通过创建软链接修复。sudo rm -rf /usr/local/bin/python3 sudo ln -s /usr/local/bin/python3.10 /usr/local/bin/python3
若想使
python
命令指向python3
,可通过创建软链接更改python
的使用版本。pip
同理。更改后若跳出-bash: /usr/bin/python: No such file or directory
错误,请重新启动终端。sudo rm -rf /usr/local/bin/python && \ sudo ln -s /usr/local/bin/python3 /usr/local/bin/python
sudo rm -rf /usr/local/bin/pip && \ sudo ln -s /usr/local/bin/pip3 /usr/local/bin/pip
若使用
pip
命令时提示Command not found
,可使用包管理器重新下载 PIP 修复。sudo apt-get install python3-pip -y
将
python
指向python3
后,可能会导致 Cent OS 等系统使用yum
命令出错,请使用vim /usr/bin/yum
命令编辑 yum 文件并将文件开头#!/usr/bin/python
改为#!/usr/bin/python2
。若出现
Consider setting $PYTHONHOME to <prefix[:<exec_prefix]
,可将PYTHONHOME
、PYTHONPATH
加入环境变量。sudo cat ~/.bashrc << EOF # Python export PYTHONHOME=/usr/local/bin export PYTHONPATH=/usr/local/lib/python3.10 # Python end EOF
source ~/.bashrc
提示
详见官方文档
Poetry
安装注意
Alpine 请通过 sudo apk add poetry
安装。
使用脚本安装 Poetry
cd ~ && \ curl -sSL https://install.python-poetry.org | python3 -
将 Poetry 添加至用户环境变量并刷新修改
cat ~/.bashrc << EOF # poetry export POETRY_HOME="\$HOME/.local/bin" export PATH="\$POETRY_HOME:\$PATH" # poetry end EOF
source ~/.bashrc
注意
若安装依赖时出现
FileNotFoundError: [Errno 2] No such file or directory: '~/.local/share/pypoetry/venv/bin/python'
错误,可尝试重新开启终端(关闭当前终端并开启新终端)解决。若运行时出现
Error: spawn poetry ENOENT
错误,可以通过手动创建 Poetry 软链接解决。sudo ln -s ~/.local/bin/poetry /usr/bin/poetry
提示
安装完成后可使用
poetry --version
测试是否安装成功。详见官方文档。
下载 PY 插件源码
cd ~/Yunzai-Bot && \
git clone --depth=1 https://github.com/realhuhu/py-plugin.git ./plugins/py-plugin
注意
若以上命令执行太慢或失败,可切换为 py-plugin@Gitee。
git clone --depth=1 https://gitee.com/realhuhu/py-plugin.git ./plugins/py-plugin
安装 PY 插件依赖
安装 Node 依赖
pnpm add @grpc/grpc-js @grpc/proto-loader iconv-lite -w
安装 Python 依赖
cd ~/Yunzai-Bot/plugins/py-plugin && \ poetry install
注意
安装 Python 依赖时若出现
Failed to install /home/<username>/.cache/pypoetry/artifacts/*****/*.whl
错误时,可尝试以下方式解决:重新安装
卸载
curl -sSL https://install.python-poetry.org | python3 - --uninstall
安装
curl -sSL https://install.python-poetry.org | python3 -
清除缓存
rm -rf ~/.cache
在运行云崽时,若 PY 插件
No module named 'sqlitedict'
错误发生,可以手动安装sqlitedict
解决。pip install -U sqlitedict
提示
详见官方文档。
图鉴插件
下载下载图鉴插件源码
cd ~/Yunzai-Bot && \
git clone --depth=1 https://github.com/ctrlcvs/xiaoyao-cvs-plugin.git ./plugins/xiaoyao-cvs-plugin
注意
若以上命令执行太慢或失败,可切换为 xiaoyao-cvs-plugin@Gitee。
git clone --depth=1 https://gitee.com/Ctrlcvs/xiaoyao-cvs-plugin.git ./plugins/xiaoyao-cvs-plugin
安装图鉴插件依赖
pnpm add promise-retry superagent -w
提示
详见官方文档。
闲心插件
下载注意
此插件不适用于 V2 版本云崽。
cd ~/Yunzai-Bot && \
git clone --depth=1 https://github.com/xianxincoder/xianxin-plugin.git ./plugins/xianxin-plugin
注意
若以上命令执行太慢或失败,可切换为 xianxin-plugin@Gitee。
git clone --depth=1 https://gitee.com/xianxincoder/xianxin-plugin.git ./plugins/xianxin-plugin
提示
详见官方文档。
锅巴插件
下载下载锅巴插件源码
cd ~/Yunzai-Bot && \
git clone --depth=1 https://gitee.com/guoba-yunzai/guoba-plugin.git ./plugins/guoba-plugin
注意
若以上命令执行太慢或失败,可切换为 guoba-plugin@Gitee。
git clone --depth=1 https://gitee.com/guoba-yunzai/guoba-plugin.git ./plugins/guoba-plugin
安装锅巴插件依赖
pnpm install --filter=guoba-plugin
提示
详见官方文档。
启用 HTTPS 访问锅巴管理界面
注意
此操作需要域名。
请确保先运行云崽且锅巴插件成功运行,否则证书可能获取失败。
安装 Nginx
sudo apt install nginx -y
sudo yum install nginx -y
sudo pacman -S nginx
# sudo apk add nginx
配置 Nginx
sudo vim /etc/nginx/sites-enabled/default
sudo vim /etc/nginx/nginx.conf
更改其中的
server
块为:server{ listen 80; # 域名 server_name <your.domain.com>; index index.php index.html index.htm; location / { proxy_pass http://127.0.0.1:50831; proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 当以 HTTP 访问时是否重定向至 HTTPS。此项请在配置 HTTPS 后开启。 #if ($ssl_protocol = "") { return 301 https://$host$request_uri; } }
提示
详见官方文档。
安装证书
切换 Root 用户
su - root
安装
cron
、socat
apt install cron socat
pacman -S cron socat
安装 ACME.SH
curl https://get.acme.sh | sh -s email=your.email@example.com && \ source ~/.bashrc
生成证书
acme.sh --issue -d <your.domain.com> --nginx --server letsencrypet
复制证书
mkdir -p /usr/share/ssl/<your.domian.com&& \ acme.sh --install-cert -d <your.domain.com>\ --key-file /usr/share/ssl/<your.domain.com>.key \ --fullchain-file /usr/share/ssl/<your.domain.com>/fullchain.cer \ --reloadcmd "systemctl restart nginx"
开启 ACME.SH 自动更新
acme.sh --upgrade --auto-upgrade
切回普通用户
su - <username
提示
详见官方文档。
配置 HTTPS
sudo vim /etc/nginx/sites-enabled/default
sudo vim /etc/nginx/nginx.conf
添加
server
块:server { listen 443 ssl; server_name <your.domain.com>; ssl_certificate /usr/share/ssl/<your.domain.com>/fullchain.cer; ssl_certificate_key /usr/share/ssl/<your.domain.com>.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:50831; proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
提示
详见官方文档。
配置锅巴
vim ~/Yunzai-Bot/plugins/guoba-plugin/config/application.yaml
更改其中的
server
块为:server: host: https://<your.domain.com> port: 50831 splicePort: false
成就插件
下载cd ~/Yunzai-Bot && \
git clone --depth=1 https://github.com/zolay-poi/achievements-plugin.git ./plugins/achievements-plugin
提示
- 若以上命令执行太慢或失败,可切换为 achievements-plugin@Gitee。
git clone --depth https://gitee.com/zolay-poi/achievements-plugin.git ./plugins/achievements-plugin
- 详见官方文档。
TRSS 插件
下载注意
TRSS 插件对计算机要求较高,会占用较多的系统资源(如存储空间约 3 G),请酌情使用。
准备 TRSS 插件环境
下载 TRSS 插件源码
cd ~/Yunzai-Bot && \
git clone --depth=1 https://github.com/TimeRainStarSky/TRSS-Plugin.git plugins/TRSS-Plugin
提示
若以上命令执行太慢或失败,可切换为 TRSS-Plugin@Gitee。
git clone --depth=1 https://gitee.com/TimeRainStarSky/TRSS-Plugin.git plugins/TRSS-Plugin
安装 TRSS 插件依赖
pnpm install
安装原神语音合成功能
下载原神语音合成仓库
cd ~/Yunzai-Bot/plugins/TRSS-Plugin && \ git clone --depth=1 https://github.com/TimeRainStarSky/genshin-voice.git
提示
若以上命令执行太慢或失败,可切换为 genshin-voice@Gitee。
git clone --depth=1 https://gitee.com/TimeRainStarSky/genshin-voice.git
安装 Python 依赖
cd genshin-voice && \ poetry install
poetry run pip install monotonic-align
下载原神语音模型
curl -LO https://github.com/TimeRainStarSky/TRSS-Plugin/releases/download/latest/G_809000.pth.xz
解压原神语音模型
xz -dv G_809000.pth.xz
提示
详见官方文档。
运行云崽
运行 Redis
mkdir ~/Yunzai-Bot/data && \
cd ~/Yunzai-Bot/data && \
redis-server --save 900 1 --save 300 10 --daemonize yes
相关信息
这将会使 Redis 生成的 dump.rdb
文件存放至 Yunzai-Bot/data
文件夹中。
注意
若 dump.rdb
不在此文件夹下,则可能在 /var/lib/redis/
目录下。可以通过 whereis redis
命令查找 Redis 安装位置,再通过命令 cat /path/to/redis/redis.conf | grep "dir "
查看数据库文件存储位置。
提示
若想要恢复 Redis 数据,请将 dump.rdb
文件放置在 Redis 数据库文件存储位置,再运行 Redis。注意 dump.rdb
文件的权限。
sudo chown redis:redis /var/lib/redis/dump.rdb && \
sudo chmod 644 /var/lib/redis/dump.rdb
首次运行云崽
cd ~/Yunzai-Bot && \
node app
注意
运行后请更改云崽的配置。
V3 配置位置:
~/Yunzai-Bot/config/config/
V2 配置位置:
~/Yunzai-Bot/config/config.js
使用 V3 云崽时若安装了 FFmpeg,请在云崽配置中加入 FFmpeg 位置。
查看 FFmpeg 安装位置
whereis ffmpeg && \ whereis ffprobe
修改配置
vim ~/Yunzai-Bot/config/config/bot.yaml
修改为
# 日志等级:trace,debug,info,warn,fatal,mark,error,off # mark时只显示执行命令,不显示聊天记录 log_level: info # 群聊和频道中过滤自己的消息 ignore_self: true # 被风控时是否尝试用分片发送 resend: false # ffmpeg # 假设位置为 /usr/local/bin/ffmpeg 及 /usr/local/bin/ffprobe。 ffmpeg_path: /usr/local/bin/ffmpeg ffprobe_path: /usr/local/bin/ffprobe # chromium其他路径 chromium_path:
提示
QQ 登录提示存在安全风险解决方法有以下几种。
在此处讨论。
在本地登录后将登录数据传至服务端
先在本地登录
可以尝试先在 WSL 上登录账号。该方法也可以使用其他的 Linux 虚拟机。如果有能力的话,也可以直接在本地 Windows 或是安卓上进行登录操作。成功以后将云崽数据传至服务端。
进入
Yunzai-Bot
文件夹。cd /path/to/Yunzai-Bot
使用
tar
命令打包上的Yunzai-Bot/data
文件夹。tar -cf data.tar data
将
data.tar
从本地上传至服务器。scp data.tar user@server.ip:/path/to/Yunzai-Bot/
再在服务器上操作
进入
Yunzai-Bot
文件夹。cd /path/to/Yunzai-Bot
删除服务器上的
Yunzai-Bot/data
文件夹。rm -rf data
解压
data.tar
至Yunzai-Bot
文件夹。tar -xf data.tar -C data
使用
node app
启动项目。node app
使用代理进行登录
你可以在服务器端搭建代理服务(PPTP、v2ray 什么的),之后手机上以全局模式连接此代理,再进行扫码登录的操作。具体操作比较麻烦,可以百度以下。
在服务端使用 Windows
该灵感来自这里。
先使用 Windows 系统登录 QQ 挂几天,再将服务器改为 Linux 系统使用云崽。
后台启动
cd ~/Yunzai-Bot && \
pnpm start
后台重启
cd ~/Yunzai-Bot && \
pnpm restart
后台查看运行日志
cd ~/Yunzai-Bot && \
pnpm run log
友好链接
教程更新地址:锐毅的生活记录分享馆
因 Github Issue 不方便频繁更新,就建了个博客放这个了。
原教程地址:Issues #154
博客现已支持讨论。