跳至主要內容

云崽安装教程

锐毅原创教程应用云崽教程云崽Linux大约 27 分钟

准备运行云崽

更新源索引及应用

提示

Linux 上的软件包管理命令基本都可以根据当前系统使用的包管理器(如:aptyum 等)来选择对应命令进行使用。

sudo apt update && \
sudo apt upgrade -y

安装常用应用

安装包管理器

安装下载应用

sudo apt install wget curl -y

相关信息

  • 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 apt remove --purge -y \
         gcc g++ make cmake yasm pkg-config build-essential checkinstall
      

安装编辑应用

sudo apt install vim -y

安装字体

注意

此处以自定义安装原神字体为例。若不想安装原神字体,可直接安装字体包。

  • /

    • sudo apt install --force-yes --no-install-recommends fonts-wqy-microhei -y
      
  1. 创建并进入字体存放文件夹

    sudo mkdir -p /usr/share/fonts/truetype/mihoyo && \
    cd /usr/share/fonts/truetype/mihoyo
    
  2. 下载字体并更改其权限

    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,用于将下载日志信息写入目标文件。

提示

安装 Gitopen in new window

注意

若不想编译安装,可直接使用包管理器安装(不为最新版)。

  • /

    • sudo apt install git -y
      

准备安装 Git

  1. 安装 Git 依赖库

    sudo apt install dh-autoreconf libcurl4-gnutls-dev libexpat1-dev \
       gettext libz-dev libssl-dev -y
    
  2. 安装附加依赖库

    sudo apt install asciidoc xmlto docbook2x -y
    
    • 相关信息

      这些依赖库可为 Git 提供添加各种格式文档(doc、html、info)的支持。

  3. 安装 install-info

    sudo apt install install-info -y
    

获取、编译并安装 Git

  1. 进入用户源码目录并下载源码

    cd /usr/local/src && \
    sudo wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.38.0.tar.xz
    
  2. 解压、编译源码并安装

    sudo tar -xf git-2.38.0.tar.xz -C .
    

    相关信息

    -C 参数等价于 --directory=,用于指定解压的目标目录。

    注意

    当解压 *.tar.xz 文件时出现 找不到 xz 命令 错误时,可尝试安装 xz-utils 包解决。

    • /

      • sudo apt install xz-utils -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
    
  • 详见官方文档open in new window

安装 Redisopen in new window

注意

若不想进行编译安装,可直接使用包管理器进行安装。

  • \

    • sudo apt install redis-server -y
      

获取、编译并安装 Redis

  1. 进入用户源码目录并下载源码

    cd /usr/local/src && \
    sudo wget https://download.redis.io/redis-stable.tar.gz
    
  2. 解压、编译源码并安装

    sudo tar -xf redis-stable.tar.gz -C .
    
    cd redis-stable && \
    sudo make
    
    sudo make install
    

安装 Chromiumopen in new window

注意

  • Chromium 的编译安装至少需要 8GB 主存(运行内存),推荐 16GB 主存。

  • 若不想编译安装,可直接使用包管理器进行安装。

    • sudo apt install chromium -y
      

准备安装 Chromium

  1. 安装 depot-tools

    1. 进入用户文件夹并克隆 depot-tools

      cd ~ && \
      git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
      
    2. depot-tools 添加至 $PATH 并刷新环境变量的修改

      cat ~/.bashrc << EOF
      
      # depot_tools
      export PATH="\$PATH:\${HOME}/depot_tools"
      # depot_tools end
      EOF
      
      source ~/.bashrc
      

      相关信息

      • cat 某些内容后跟 `` 某文件是在某文件内容后追加某些内容。

      • EOFEnd Of File,用于在终端处理多行内容。它以 << EOF 开始,以 EOF 结尾。

获取、编译并安装 Chromium

  1. 进入用户源码目录并下载源码

    cd /usr/local/scr && \
    sudo mkdir chromium && \
    cd chromium && \
    sudo fecth --nohooks --no-history chromium
    

    相关信息

    • fetch 来自于准备阶段下载的 depot_tools,可以获取源码及软件依赖。

    • 添加 --no-history 参数则 fetch 不会获取所有历史源码。此举可有效节省大量时间。

  2. 进入源码目录并安装用于编译的附加依赖

    cd src && \
    sudo ./build/install-build-deps.sh
    
  3. 运行钩子

    gclient runhooks
    

    相关信息

    在此处运行的钩子为 Chromium 特定的钩子,将会下载可能会用到的附加二进制文件等。

    提示

    你可以选择在这时安装用于使用谷歌服务的 API 密钥open in new window。此为非必须步骤。

  4. 编译源码并安装

    gn gen out/Default
    

    相关信息

    Chromium 使用将 Ninjaopen in new window 作为主要编译工具的 GNopen in new window 工具生成 .ninja 文件。

安装 FFmpegopen in new window-可选

注意

  • 若要使用语言功能插件,则一定得安装 FFmpeg。

  • Debian/Ubuntu/Fedora/RHEL/CentOS/Alpine 请先安装编译工具

  • 若不想手动编译安装,可用包管理器安装。

    • sudo pacman -S ffmpeg
      
      • /
        • 注意

          Arch 安装的 FFmpeg 支持 AMR 转码,无需自行编译。

准备安装 FFmpeg

安装 opencore-amropen in new window

提示

  • 安装已经编译好的包 OpenCore-AMR。

    1. 下载 OpenCore-AMR.tar.gz

      cd /usr/local && \
      sudo wget https://file.letsshareall.com/applications/linux/OpenCore-AMR.tar.gz
      
    2. 解压 OpenCore-AMR.tar.gz

      sudo tar -xf OpenCore-AMR.tar.gz
      
    3. 移动 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*
    
  1. 进入用户源码目录并下载源码

    cd /usr/local/src && \
    sudo wget \
       https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-0.1.6.tar.gz/download
    
  2. 解压、编译源码并安装

    sudo tar -xf download -C .
    
    cd opencore-amr-0.1.6 && \
    sudo ./configure
    
    sudo make
    
    sudo make install
    
安装 FFmpeg 编译依赖库

提示

  • 安装已经编译好的包 FFmpeg。

    1. 下载 FFmpeg.tar.gz

      cd /usr/local && \
      sudo wget https://github.com/LetsShareAll/file/releases/download/applications/FFmpeg.tar.gz
      
    2. 解压 FFmpeg.tar.gz

      sudo tar -xf FFmpeg.tar.gz
      
    3. 移动 ffmpeg

      sudo cp -rf /usr/local/ffmpeg/* /usr/local/ && \
      sudo rm -rf /usr/local/ffmpeg
      
    4. 安装 LibIconv 库

      1. 下载 LibIconv.tar.gz

        cd /usr/local && \
        sudo wget https://file.letsshareall.com/applications/linux/LibIconv.tar.gz
        
      2. 解压 LibIconv.tar.gz

        sudo tar -xf LibIconv.tar.gz
        
      3. 移动 libiconv

        sudo cp -rf /usr/local/libiconv/* /usr/local/ && \
        sudo rm -rf /usr/local/libiconv
        
    5. 安装 LibSDL、LibSndio、LibVA、LibVDPAU 等库

      sudo apt install libsdl2-2.0-0 libsndio7.0 libva-drm2 libva-x11-2 libvdpau1 -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

提示

在编译安装完成后,这些库可以移除。

请务必在所有步骤完成后执行!

  • /

    • 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
      

获取、编译并安装 FFmpeg

  1. 进入用户源码目录并下载源码

    cd /usr/local/src && \
    sudo git clone --depth=1 https://git.ffmpeg.org/ffmpeg.git ffmpeg
    

    相关信息

    --depth 参数用于指定克隆深度。当 depth=1 时,将会只克隆仓库的最近一次提交数据。此举可有效解决仓库过大无法克隆或仓库占用存储太高的问题。

  2. 解压、编译源码并安装

    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

安装 PNPMopen in new window

  1. 使用独立脚本进行安装

    curl -fsSL https://get.pnpm.io/install.sh | sh -
    

    相关信息

    • -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 - 即运行上一命令返回的命令行输出。
  2. 使环境变量更改在此终端会话生效

    source ~/.bashrc
    
  3. 安装 Node

    pnpm env use --global latest
    

提示

  • 当运行 pnpm add packge -w 出现 ERROR --workspace-root may only be used inside a workspace 时,请移除 -w 参数。此情况一般在使用 V2 版云崽时利用 PNPM 安装依赖出现。

  • 详见官方文档open in new window

下载云崽

下载云崽源码

  • 下载云崽 V3open in new window

    cd ~ && \
    git clone --depth=1 https://github.com/Le-niao/Yunzai-Bot.git
    

    注意

    若以上命令执行太慢或失败,可切换为 Yunzai-Bot@Giteeopen in new window

    git clone --depth=1 https://gitee.com/Le-niao/Yunzai-Bot.git
    
  • 下载云崽 V2open in new window

    cd ~ && \
    git clone --depth=1 https://github.com/yoimiya-kokomi/Yunzai-Bot.git
    

    注意

    • 若以上命令执行太慢或失败,可切换为 Yunzai-Bot@Giteeopen in new window

      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
      

安装云崽依赖

  1. 安装 Puppeteeropen in new window 依赖

    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
    
  2. 安装 Nodeopen in new window 依赖

    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。

      1. 安装 Puppeteer 时忽略安装脚本

        cd ~/Yunzai-Bot && \
        pnpm install puppeteer -w --ignore-scripts
        
      2. 手动使用安装脚本

        node ./node_modules/puppeteer/install.js
        
    • 若运行云崽后提示 chrome-linux/chrome: error while loading shared libraries: *.so.*,可尝试运行以下步骤解决(请将 {version} 替换为 Linux 版本号,可在输入命令到 linux 后使用 Tab 键自动补全目录):

      1. 安装 apt-file

        sudo apt install apt-file -y
        
      2. 更新 apt-file 缓存

        sudo apt-file update
        
      3. 查找缺失依赖

        cd ~/Yunzai-Bot/node_modules/puppeteer/.local-chromium/linux-{version}/chrome-linux && \
        ldd chrome | grep not
        
      4. 之后会展示所有缺失的依赖组件,再使用 apt-file search {*.so.*}(请将 {*.so.*} 换成缺失的依赖组件)命令查询组件,而后使用 sudo apt install {*} -y(请将 {*} 换为查询到的组件)来安装组件。

下载云崽插件-可选

下载喵喵插件open in new window

下载喵喵插件源码
cd ~/Yunzai-Bot && \
git clone --depth=1 https://github.com/yoimiya-kokomi/miao-plugin.git ./plugins/miao-plugin

注意

若以上命令执行太慢或失败,可切换为 miao-plugin@Giteeopen in new window

git clone --depth=1 https://gitee.com/yoimiya-kokomi/miao-plugin.git ./plugins/miao-plugin
安装喵喵插件依赖
pnpm add image-size -w

下载 PY 插件open in new window

安装 Pythonopen in new window

注意

若不想自行编译安装,可直接使用包管理器安装,括号里为当前最高版本,但不一定是当前系统支持的最高版本。请注意版本,若要安装 TRSS-Pluginopen in new window,则 Python 版本应大于等于 3.10。

提示

  • 安装已经编译好的包 Python。

    1. 下载 Python.tar.gz

      cd /usr/local && \
      sudo wget https://github.com/LetsShareAll/file/releases/download/applications/Python.tar.gz
      
    2. 解压 Python.tar.gz

      sudo tar -xf Python.tar.gz
      
    3. 移动 python3

      sudo cp -rf /usr/local/python/* /usr/local/ && \
      sudo rm -rf /usr/local/python
      
    4. 创建 pythonpip 链接

      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 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
      
获取、编译并安装 Python
  1. 进入用户源码目录并下载源码

    cd /usr/local/src && \
    sudo wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz
    
  2. 解压、编译源码并安装

    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],可将 PYTHONHOMEPYTHONPATH 加入环境变量。

    sudo cat ~/.bashrc << EOF
    
    # Python
    export PYTHONHOME=/usr/local/bin
    export PYTHONPATH=/usr/local/lib/python3.10
    # Python end
    EOF
    
    source ~/.bashrc
    
安装 Poetryopen in new window

注意

Alpine 请通过 sudo apk add poetry 安装。

  1. 使用脚本安装 Poetry

    cd ~ && \
    curl -sSL https://install.python-poetry.org | python3 -
    
  2. 将 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
    

提示

下载 PY 插件源码
cd ~/Yunzai-Bot && \
git clone --depth=1 https://github.com/realhuhu/py-plugin.git ./plugins/py-plugin

注意

若以上命令执行太慢或失败,可切换为 py-plugin@Giteeopen in new window

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 错误时,可尝试以下方式解决:

    • 重新安装

      1. 卸载

        curl -sSL https://install.python-poetry.org | python3 - --uninstall
        
      2. 安装

        curl -sSL https://install.python-poetry.org | python3 -
        
    • 清除缓存

      rm -rf ~/.cache
      
  • 在运行云崽时,若 PY 插件 No module named 'sqlitedict' 错误发生,可以手动安装 sqlitedict 解决。

    pip install -U sqlitedict
    

下载图鉴插件open in new window

下载图鉴插件源码
cd ~/Yunzai-Bot && \
git clone --depth=1 https://github.com/ctrlcvs/xiaoyao-cvs-plugin.git ./plugins/xiaoyao-cvs-plugin

注意

若以上命令执行太慢或失败,可切换为 xiaoyao-cvs-plugin@Giteeopen in new window

git clone --depth=1 https://gitee.com/Ctrlcvs/xiaoyao-cvs-plugin.git ./plugins/xiaoyao-cvs-plugin
安装图鉴插件依赖
pnpm add promise-retry superagent -w

下载闲心插件open in new window

注意

此插件不适用于 V2 版本云崽。

cd ~/Yunzai-Bot && \
git clone --depth=1 https://github.com/xianxincoder/xianxin-plugin.git ./plugins/xianxin-plugin

注意

若以上命令执行太慢或失败,可切换为 xianxin-plugin@Giteeopen in new window

git clone --depth=1 https://gitee.com/xianxincoder/xianxin-plugin.git ./plugins/xianxin-plugin

下载锅巴插件open in new window

下载锅巴插件源码
cd ~/Yunzai-Bot && \
git clone --depth=1 https://gitee.com/guoba-yunzai/guoba-plugin.git ./plugins/guoba-plugin

注意

若以上命令执行太慢或失败,可切换为 guoba-plugin@Giteeopen in new window

git clone --depth=1 https://gitee.com/guoba-yunzai/guoba-plugin.git ./plugins/guoba-plugin
安装锅巴插件依赖
pnpm install --filter=guoba-plugin
启用 HTTPS 访问锅巴管理界面

注意

  • 此操作需要域名。

  • 请确保先运行云崽且锅巴插件成功运行,否则证书可能获取失败。

  1. 安装 Nginxopen in new window

    sudo apt install nginx -y
    
  2. 配置 Nginx

    sudo vim /etc/nginx/sites-enabled/default
    

    更改其中的 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; }
    }
    
  3. 安装证书

    1. 切换 Root 用户

      su - root
      
    2. 安装 cronsocat

      apt install cron socat
      
    3. 安装 ACME.SHopen in new window

      curl https://get.acme.sh | sh -s email=your.email@example.com && \
      source ~/.bashrc
      
    4. 生成证书

      acme.sh --issue -d <your.domain.com> --nginx --server letsencrypet
      
    5. 复制证书

      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"
      
    6. 开启 ACME.SHopen in new window 自动更新

      acme.sh --upgrade --auto-upgrade
      
    7. 切回普通用户

      su - <username
      
  4. 配置 HTTPS

    sudo vim /etc/nginx/sites-enabled/default
    
    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;
        }
    }
    
  5. 配置锅巴

    vim ~/Yunzai-Bot/plugins/guoba-plugin/config/application.yaml
    

    更改其中的 server 块为:

    server:
      host: https://<your.domain.com>
      port: 50831
      splicePort: false
    

下载成就插件open in new window

cd ~/Yunzai-Bot && \
git clone --depth=1 https://github.com/zolay-poi/achievements-plugin.git ./plugins/achievements-plugin

提示

git clone --depth https://gitee.com/zolay-poi/achievements-plugin.git ./plugins/achievements-plugin

下载 TRSS 插件open in new window

注意

TRSS 插件对计算机要求较高,会占用较多的系统资源(如存储空间约 3 G),请酌情使用。

准备 TRSS 插件环境
  1. 安装 Python

  2. 安装 Poetry

下载 TRSS 插件源码
cd ~/Yunzai-Bot && \
git clone --depth=1 https://github.com/TimeRainStarSky/TRSS-Plugin.git plugins/TRSS-Plugin

提示

若以上命令执行太慢或失败,可切换为 TRSS-Plugin@Giteeopen in new window

git clone --depth=1 https://gitee.com/TimeRainStarSky/TRSS-Plugin.git plugins/TRSS-Plugin
安装 TRSS 插件依赖
pnpm install
安装原神语音合成功能
  1. 下载原神语音合成仓库

    cd ~/Yunzai-Bot/plugins/TRSS-Plugin && \
    git clone --depth=1 https://github.com/TimeRainStarSky/genshin-voice.git
    

    提示

    若以上命令执行太慢或失败,可切换为 genshin-voice@Giteeopen in new window

    git clone --depth=1 https://gitee.com/TimeRainStarSky/genshin-voice.git
    
  2. 安装 Python 依赖

    cd genshin-voice && \
    poetry install
    
    poetry run pip install monotonic-align
    
  3. 下载原神语音模型

    curl -LO https://github.com/TimeRainStarSky/TRSS-Plugin/releases/download/latest/G_809000.pth.xz
    
  4. 解压原神语音模型

    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 位置。

    1. 查看 FFmpeg 安装位置

      whereis ffmpeg && \
      whereis ffprobe
      
    2. 修改配置

      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 登录提示存在安全风险解决方法有以下几种。

此处open in new window讨论。

  • 在本地登录后将登录数据传至服务端

    1. 先在本地登录

      可以尝试先在 WSL 上登录账号。该方法也可以使用其他的 Linux 虚拟机。如果有能力的话,也可以直接在本地 Windows 或是安卓上进行登录操作。成功以后将云崽数据传至服务端。

      1. 进入 Yunzai-Bot 文件夹。

        cd /path/to/Yunzai-Bot
        
      2. 使用 tar 命令打包上的 Yunzai-Bot/data 文件夹。

        tar -cf data.tar data
        
      3. data.tar 从本地上传至服务器。

        scp data.tar user@server.ip:/path/to/Yunzai-Bot/
        
    2. 再在服务器上操作

      1. 进入 Yunzai-Bot 文件夹。

        cd /path/to/Yunzai-Bot
        
      2. 删除服务器上的 Yunzai-Bot/data 文件夹。

        rm -rf data
        
      3. 解压 data.tarYunzai-Bot 文件夹。

        tar -xf data.tar -C data
        
      4. 使用 node app 启动项目。

        node app
        
  • 使用代理进行登录

    你可以在服务器端搭建代理服务(PPTPv2ray 什么的),之后手机上以全局模式连接此代理,再进行扫码登录的操作。具体操作比较麻烦,可以百度以下。

  • 在服务端使用 Windows

    该灵感来自这里open in new window

    先使用 Windows 系统登录 QQ 挂几天,再将服务器改为 Linux 系统使用云崽。

后台启动

cd ~/Yunzai-Bot && \
pnpm start

后台重启

cd ~/Yunzai-Bot && \
pnpm restart

后台查看运行日志

cd ~/Yunzai-Bot && \
pnpm run log

友好链接