云崽安装教程
准备运行云崽
更新源索引及应用
提示
Linux 上的软件包管理命令基本都可以根据当前系统使用的包管理器(如:apt、yum 等)来选择对应命令进行使用。
sudo apt update && \
sudo apt upgrade -y/
注意
某些系统可能已改用
dnf作包管理器。这些系统请将以下所有的yum改成dnf。
sudo yum updatesudo pacman -Syusudo 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 -ysudo yum install wget curl -ysudo pacman -S wget curlsudo 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 -ysudo 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提示
在安装完成后,以上库皆可删除。但之后重新安装时记得下回来哦。
/
- Debian/Ubuntu#Debian
sudo apt remove --purge -y \ gcc g++ make cmake yasm pkg-config build-essential checkinstallFedora/RHEL/CentOS#Fedora#RHELsudo yum remove --purge gcc g++ make cmake yasm pkg-config build-essential checkinstall -yAlpine# sudo apk del gcc g++ make cmake yasm
安装编辑应用
sudo apt install vim -ysudo yum install vim -ysudo pacman -S vimsudo apk add vim安装字体
注意
此处以自定义安装原神字体为例。若不想安装原神字体,可直接安装字体包。
/
- Debian/Ubuntu#Debian
sudo apt install --force-yes --no-install-recommends fonts-wqy-microhei -yFedora/RHEL/CentOS#Fedora#RHELsudo yum groupinstall fonts -yArchsudo pacman -S noto-fonts-cjkAlpinesudo apk add wqy-zenhei
创建并进入字体存放文件夹
Debian/Ubuntu#Debiansudo mkdir -p /usr/share/fonts/truetype/mihoyo && \ cd /usr/share/fonts/truetype/mihoyoFedora/RHEL/CentOS#Fedora#RHELsudo mkdir -p /usr/share/fonts/mihoyo && \ cd /usr/share/fonts/mihoyoArch/Alpine#Archsudo 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
注意
若不想编译安装,可直接使用包管理器安装(不为最新版)。
/
- Debian/Ubuntu#Debian
sudo apt install git -yFedora/RHEL/CentOS#Fedora#RHELsudo yum install git -yArchsudo pacman -S gitAlpinesudo 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-infosudo 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包解决。/
- Debian/Ubuntu#Debian
sudo apt install xz-utils -yFedora/RHEL/CentOS#Fedora#RHELsudo yum install xz -y
cd git-2.38.0 && \ sudo make configuresudo ./configure --prefix=/usrsudo make all doc infosudo 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
注意
若不想进行编译安装,可直接使用包管理器进行安装。
\
- Debian/Ubuntu#Debian
sudo apt install redis-server -yFedora/RHEL/CentOS#Fedora#RHELsudo yum install redis -yArchsudo pacman -S redisAlpinesudo 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 makesudo make install
提示
详见官方文档。
安装 Chromium
注意
Chromium 的编译安装至少需要 8GB 主存(运行内存),推荐 16GB 主存。
若不想编译安装,可直接使用包管理器进行安装。
- Debian
sudo apt install chromium -yUbuntusudo apt install chromium-browser -yFedora/RHEL/CentOS#Fedora#RHELsudo yum install chromium -yArchsudo pacman -S chromiumAlpinesudo apk add chromium
准备安装 Chromium
安装
depot-tools进入用户文件夹并克隆
depot-toolscd ~ && \ 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 EOFsource ~/.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 请先安装编译工具。
若不想手动编译安装,可用包管理器安装。
- Arch
sudo pacman -S ffmpeg- /
注意
Arch 安装的 FFmpeg 支持 AMR 转码,无需自行编译。
Alpine# sudo apk add ffmpeg- /
注意
Alpine 这样安装的 FFmpeg 并不能将音频转码成 AMR 格式。
- /
准备安装 FFmpeg
安装 opencore-amr
提示
安装已经编译好的包 OpenCore-AMR。
下载
OpenCore-AMR.tar.gzcd /usr/local && \ sudo wget https://file.letsshareall.com/applications/linux/OpenCore-AMR.tar.gz解压
OpenCore-AMR.tar.gzsudo tar -xf OpenCore-AMR.tar.gz移动
opencore-amrsudo 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 ./configuresudo makesudo make install
安装 FFmpeg 编译依赖库
提示
安装已经编译好的包 FFmpeg。
下载
FFmpeg.tar.gzcd /usr/local && \ sudo wget https://github.com/LetsShareAll/file/releases/download/applications/FFmpeg.tar.gz解压
FFmpeg.tar.gzsudo tar -xf FFmpeg.tar.gz移动
ffmpegsudo cp -rf /usr/local/ffmpeg/* /usr/local/ && \ sudo rm -rf /usr/local/ffmpeg安装 LibIconv 库
下载
LibIconv.tar.gzcd /usr/local && \ sudo wget https://file.letsshareall.com/applications/linux/LibIconv.tar.gz解压
LibIconv.tar.gzsudo tar -xf LibIconv.tar.gz移动
libiconvsudo cp -rf /usr/local/libiconv/* /usr/local/ && \ sudo rm -rf /usr/local/libiconv
安装 LibSDL、LibSndio、LibVA、LibVDPAU 等库
Debian/Ubuntu#Debiansudo apt install libsdl2-2.0-0 libsndio7.0 libva-drm2 libva-x11-2 libvdpau1 -yFedora/CentOS/RHEL#Fedora#CentOSyum 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-devyum install -y \
autoconf automake bzip2 bzip2-devel cmake freetype-devel \
gcc gcc-c++ git libtool make pkgconfig zlib-devel提示
在编译安装完成后,这些库可以移除。
请务必在所有步骤完成后执行!
/
- Debian/Ubuntu#Debian
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-devFedora/RHEL/CentOS#Fedora#RHELyum 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 makesudo 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
使用独立脚本进行安装
Debian/Ubuntu/Fedora/RHEL/CentOS/Arch#Debian#Ubuntu#Fedora#RHEL#CentOScurl -fsSL https://get.pnpm.io/install.sh | sh -Alpine下载 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 依赖
Debian/Ubuntu#Debiansudo 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-0Fedora/RHEL/CentOS#Fedora#RHELyum 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-filesudo 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.gzcd /usr/local && \ sudo wget https://github.com/LetsShareAll/file/releases/download/applications/Python.tar.gz解压
Python.tar.gzsudo tar -xf Python.tar.gz移动
python3sudo 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-devsudo yum install -y zlib-devel bzip2-devel expat-devel gdbm-devel openssl-devel \
ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel提示
在所有步骤完成后,编译依赖可以卸载。
/
- Debian/Ubuntu#Debian
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-devFedora/RHEL/CentOS#Fedora#RHELsudo 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.xzcd Python-3.11.0 && \ sudo ./configure --enable-optimizationssudo makesudo 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/pythonsudo rm -rf /usr/local/bin/pip && \ sudo ln -s /usr/local/bin/pip3 /usr/local/bin/pip若使用
pip命令时提示Command not found,可使用包管理器重新下载 PIP 修复。- Debian/Ubuntu#Debian
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 EOFsource ~/.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 EOFsource ~/.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
Debian/Ubuntu#Debiansudo apt install nginx -yFedora/RHEL/CentOS#Fedora#RHELsudo yum install nginx -yArchsudo pacman -S nginxAlpine# sudo apk add nginx配置 Nginx
Debian/Ubuntu#Debiansudo vim /etc/nginx/sites-enabled/defaultArchsudo 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、socatDebian/Ubuntu#Debianapt install cron socatArchpacman -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
Debian/Ubuntu#Debiansudo vim /etc/nginx/sites-enabled/defaultArchsudo 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 installpoetry 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。博客现已支持讨论。
相关信息
因原项目已被关闭,因此这个链接目前也无法查看,留在这里仅作纪念。
猜测是因为当时的项目有“米游社签到”的功能,它的分支项目 Miao-Yunzai 就删除了此功能。就是可惜了当时花了那么多时间精力写的教程了(。>︿<)_θ。