Yunzai-Bot icon indicating copy to clipboard operation
Yunzai-Bot copied to clipboard

Ubuntu 22.04 安装+遇到过的错误及解决方案分享

Open Shuery-Shuai opened this issue 2 years ago • 42 comments

云崽_Ubuntu_22.04_安装指南

提示:使用浏览器配合 Markdown Viewer 插件并开启插件本地文件访问权限阅览此文档更舒服哦~


注意:以下命令都在 Aarch64 架构上的 Ubuntu 执行,不同架构间的软件包可能有所不同,但大多一致。

环境准备

安装_node_及_npm

curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -
sudo apt update && sudo apt install nodejs -y

提示:当使用 npm 命令出现 Cannot read properties of null (reading '...') 这类错误时,可使用 cnpm 进行安装。

安装_redis

sudo apt install redis redis-server -y

安装_Chrome_Binary-可选

注意:若是 Aarch64 架构不可跳过,若是其他架构云崽运行时报错 puppeteer 启动失败 可再来安装。


提示:可使用 uname -a 查看系统架构。

sudo apt install chromium-browser -y

安装其他依赖

sudo apt install libgbm-dev libasound2-dev -y

安装字体

sudo apt install -y --force-yes --no-install-recommends fonts-wqy-microhei

提示

  1. 若云崽发送的图片中会出现或者等符号,则可尝试安装其他中文字体解决。

  2. 自定义安装中文字体:

    1. 安装字体管理软件-可选

      注意:某些精简系统可能没有字体管理软件,可通过 fc-list 命令查看,若提示 Command not found,则此步不可跳过。

      sudo apt install xfonts-utils -y
      sudo apt install fontconfig -y
      
    2. 安装中文字体

      注意:此处以原神字体为例。

      sudo mkdir -p /usr/share/fonts/truetype/mihoyo && cd /usr/share/fonts/truetype/mihoyo
      sudo wget https://file.letsshareall.com/others/fonts/汉仪文黑-85W_Heavy.ttf -O HanyiWenhei85W-Heavy.ttf
      sudo fc-cache -fv
      

      提示:安装完成后可运行 fc-list :lang=zh 查看是否安装成功。若显示 SDK_SC_Web,汉仪文黑,汉仪文黑\-85W:style=85W,Heavy 即安装成功。

安装_ffmpeg-可选

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

  1. 安装编译工具

    sudo apt install gcc g++ make yasm -y
    
  2. 下载、编译并安装 opencore-amr

    cd /usr/local/src
    sudo wget https://sourceforge.net/projects/opencore-amr/files/opencore-amr/opencore-amr-0.1.5.tar.gz/download
    sudo tar -xf download -C .
    sudo mkdir opencore-amr-0.1.5/build && cd opencore-amr-0.1.5/build
    sudo ../configure
    sudo make && sudo make install
    
  3. 克隆、编译并安装 ffmpeg

    cd /usr/local/src
    sudo git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
    sudo mkdir ffmpeg/build && cd ffmpeg/build
    sudo ../configure --enable-gpl --enable-version3 --enable-nonfree --disable-ffplay --disable-ffprobe --enable-libopencore-amrnb --enable-libopencore-amrwb
    sudo make && sudo make install
    

提示

  1. 以上在 /usr/local/src 中的文件在安装成功之后都可以选择删除,若以后需要重新编译,可再把源码下载下来进行操作。

  2. 安装完 FFmpeg 后运行时出现 ffmpeg: error while loading shared libraries: *.so.0: cannot open shared object file: No such file or directory 这类的消息,可尝试运行以下命令解决:

    sudo echo "/usr/local/lib" >> /etc/ld.so.conf
    sudo ldconfig
    

安装_python3-可选

注意:若要使用黄历等需要 Python 3.8 或以上的插件,则此步不可跳过。


提示:可使用 python3 --version 查看 Python 版本,若在 3.8 以上即可跳过这步。

  1. 安装编译环境

    sudo apt install -y zlib1g zlib1g-dev libffi-dev openssl libssl-dev
    
  2. 下载、编译并安装 python3

    cd /usr/local/src
    sudo wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tar.xz
    sudo tar -xf Python-3.10.4.tar.xz
    sudo mkdir Python-3.10.4/build && cd Python-3.10.4/build
    sudo ../configure
    sudo make && sudo make install
    

提示

  1. 若使用 python3 命令时提示 Command not found,请使用以下命令修复:

    sudo rm -rf /usr/bin/python3
    sudo ln -s /usr/bin/python3.10 /usr/bin/python3
    
  2. 若想保持黄历使用 python 命令,可使用以下命令更改 python 的使用版本:

    sudo rm -rf /usr/bin/python
    sudo ln -s /usr/bin/python3.10 /usr/bin/python
    sudo rm -rf /usr/bin/pip
    sudo ln -s /usr/bin/pip3.10 /usr/bin/pip
    

注意

  1. 黄历插件调用 Python 时使用的是 python 而不是 python3,可将其改为 python3

  2. 使用 python3 命令时,安装模块的命令为 pip3 而非 pip

  3. python 指向 python3 后,可能会导致 Cent OS 等系统使用 yum 命令出错,请使用 vim /usr/bin/yum 命令编辑 yum 文件并将文件开头 #!/usr/bin/python 改为 #!/usr/bin/python2

运行云崽

克隆项目

cd ~
git clone https://github.com/Le-niao/Yunzai-Bot.git

提示:若以上命令执行太慢或失败,可切换为 Yunzai-Bot@Gitee

安装喵喵插件-可选

cd ~/Yunzai-Bot
git clone https://github.com/yoimiya-kokomi/miao-plugin ./plugins/miao-plugin
npm install moment

提示:若 git clone 命令执行太慢或失败,可切换为 miao-plugin@Gitee

安装_Python_插件-可选

注意:此插件需要安装 Python 3.X

cd ~/Yunzai-Bot
git clone https://github.com/lcwf/python-plugin.git ./plugins/python-plugin
npm install node-schedule
cd ~/Yunzai-Bot/plugins/python-plugin
pip install -r requirement.txt
echo export PATH="~/.local/bin:$PATH" >> ~/.bashrc
source ./bashrc

提示

  1. git clone 命令执行太慢或失败,可切换为 python-plugin@Gitee

  2. pip install 命令执行太慢或失败,可在命令后添加参数 -i https://mirrors.aliyun.com/pypi/simple

安装依赖

cd ~/Yunzai-Bot
sudo npm install cnpm -g
cnpm install

提示

  1. 若以 npm 命令执行太慢或失败,可指定国内 NPM 源进行安装。如 npm install cnpm -g --registry=https://registry.npm.taobao.org

  2. 若用 cnpm 安装成功后运行时出现问题,可尝试再使用 npm install 解决。

运行项目

  1. 首次运行

    cd ~/Yunzai-Bot
    redis-server --save 900 1 --save 300 10 --daemonize yes
    node app
    

    注意:运行后请更改 ~/Yunzai-Bot/config/config.js 中的配置。


    提示

    1. 有关远程登录的风险问题,可以看这里

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

      cd ~/Yunzai-Bot/node_modules/puppeteer/.local-chromium/linux-{version}/chrome-linux
      sudo apt install apt-file
      sudo apt-file update
      ldd chrome | grep not
      

      之后会展示所有缺失的依赖组件,再使用 apt-file search {*.so.*}(请将 {*.so.*} 换成缺失的依赖组件)命令查询组件,而后使用 sudo apt install {*} -y(请将 {*} 换为查询到的组件)来安装组件。

  2. 后台启动

    cd ~/Yunzai-Bot
    npm start
    
  3. 后台重启

    cd ~/Yunzai-Bot
    npm restart
    
  4. 后台查看运行日志

    cd ~/Yunzai-Bot
    npm run log
    

Shuery-Shuai avatar May 19 '22 14:05 Shuery-Shuai

谢谢 大佬

wukong1024 avatar Jun 18 '22 03:06 wukong1024

Screenshot_20220726-124318_Termux

KudouShinnyan avatar Jul 26 '22 04:07 KudouShinnyan

尝试 npm install cnpm -g --registry=https://registry.npmmirror.com 或者直接使用 npm 而不安装 cnpm

Shuery-Shuai avatar Jul 26 '22 06:07 Shuery-Shuai

尝试 npm install cnpm -g --registry=https://registry.npmmirror.com 或者直接使用 npm 而不安装 cnpm

Screenshot_20220726-175848_Termux (仍然不行)

KudouShinnyan avatar Jul 26 '22 10:07 KudouShinnyan

请问你是通过哪种方式在 Termux 上安装 Ubuntu 的? 以及请运行 lsb_release -a 查看一下 Ubuntu 版本。

Shuery-Shuai avatar Jul 26 '22 12:07 Shuery-Shuai

Screenshot_20220726-224817_Termux 是这个https://github.com/MFDGaming/ubuntu-in-termux (另外, 跟Yunzai作者提供的步骤一样安装的18.04可以正常用Yunzai, 不过莪比较希望能在新版的Ubuntu运行)

KudouShinnyan avatar Jul 26 '22 14:07 KudouShinnyan

image 卡在了这里怎么回事

507840158 avatar Jul 31 '22 06:07 507840158

image 卡在了这里怎么回事

使用 Ctrl + C 终止进程,再尝试使用 sudo service snapd restartsudo systemctl restart snapd 手动重启试试。

Shuery-Shuai avatar Jul 31 '22 06:07 Shuery-Shuai

感谢

------------------ 原始邮件 ------------------ 发件人: "Le-niao/Yunzai-Bot" @.>; 发送时间: 2022年7月31日(星期天) 下午2:32 @.>; @.@.>; 主题: Re: [Le-niao/Yunzai-Bot] Ubuntu 22.04 安装+遇到过的错误及解决方案分享 (Issue #154)

卡在了这里怎么回事

使用 Ctrl + C 终止进程,再尝试使用 sudo service snapd restart 或 sudo systemctl restart snapd 手动重启试试。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

507840158 avatar Jul 31 '22 06:07 507840158

Screenshot_20220726-224817_Termux 是这个https://github.com/MFDGaming/ubuntu-in-termux (另外, 跟Yunzai作者提供的步骤一样安装的18.04可以正常用Yunzai, 不过莪比较希望能在新版的Ubuntu运行)

我之前使用 proot-distro install ubuntu 安装的最新版系统可以运行云崽,但是有一点问题。

用脚本安装的没有试过。

Shuery-Shuai avatar Jul 31 '22 06:07 Shuery-Shuai

Screenshot_20220726-224817_Termux 是这个https://github.com/MFDGaming/ubuntu-in-termux (另外, 跟Yunzai作者提供的步骤一样安装的18.04可以正常用Yunzai, 不过莪比较希望能在新版的Ubuntu运行)

我之前使用 proot-distro install ubuntu 安装的最新版系统可以运行云崽,但是有一点问题。

用脚本安装的没有试过。

之前在用的是Yunzai 2.x的, 现在3.0作者没说是在咕咕更新了所以在试3.0了, 算是能运行, 不过有新的问题, 莪的主力机(K20Pro类原生安卓12)尝试Ubuntu 22.04可以登上, 然后在机器人的主力机(其实是闲置的米5s放宿舍插着充电器挂着)尝试了Ubuntu 22.04, 到了滑动验证的时候没正常弹出提交的命令行, 改用Ubuntu 20.04可以登上, 但在需要用到Chromium的时候提示Chromium启动失败, chromium-browser是已经装上了的 Screenshot_20220731-145125_Termux

KudouShinnyan avatar Jul 31 '22 07:07 KudouShinnyan

之前在用的是Yunzai 2.x的, 现在3.0作者没说是在咕咕更新了所以在试3.0了, 算是能运行, 不过有新的问题, 莪的主力机(K20Pro类原生安卓12)尝试Ubuntu 22.04可以登上, 然后在机器人的主力机(其实是闲置的米5s放宿舍插着充电器挂着)尝试了Ubuntu 22.04, 到了滑动验证的时候没正常弹出提交的命令行, 改用Ubuntu 20.04可以登上, 但在需要用到Chromium的时候提示Chromium启动失败, chromium-browser是已经装上了的

请问使用 snap install chromium 后提示了什么?

Shuery-Shuai avatar Jul 31 '22 07:07 Shuery-Shuai

请问使用 snap install chromium 后提示了什么?

Screenshot_20220731-153636_Termux

KudouShinnyan avatar Jul 31 '22 07:07 KudouShinnyan

请问使用 snap install chromium 后提示了什么?

Screenshot_20220731-153636_Termux

若是运行 snap 会有什么提示吗?

Shuery-Shuai avatar Jul 31 '22 07:07 Shuery-Shuai

若是运行 snap 会有什么提示吗?

2022-7-31_16-6-57

KudouShinnyan avatar Jul 31 '22 07:07 KudouShinnyan

若是运行 snap 会有什么提示吗?

(各种尝试然后屈服于ubuntu18.04和停止支持的node.js 17了, 在ubuntu18.04则是试了用node.js18和16都不行)

KudouShinnyan avatar Jul 31 '22 17:07 KudouShinnyan

若是运行 snap 会有什么提示吗?

(各种尝试然后屈服于ubuntu18.04和停止支持的node.js 17了, 在ubuntu18.04则是试了用node.js18和16都不行)

我是ubuntu16,04,nodejs版本从4更新到了14,nodejs -v可以查看。之前有遇到同样的问题,把报错在google上搜了之后GitHub有一样的issue便解决了

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - 然后再nodejs -v如果已经变成14则问题解决 npm install -g cnpm --registry=https://registry.npmmirror.com cnpm install node app

qllokirin avatar Aug 03 '22 08:08 qllokirin

我是ubuntu16,04,nodejs版本从4更新到了14,nodejs -v可以查看。之前有遇到同样的问题,把报错在google上搜了之后GitHub有一样的issue便解决了

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - 然后再nodejs -v如果已经变成14则问题解决 npm install -g cnpm --registry=https://registry.npmmirror.com cnpm install node app

(哪方面的解决? 指的是让莪在Ubuntu18.04即使是nodejs17能正常用, 停止支持了就不使用它吗, 长期支持版16不行直接用长期支持版14吗? 话说莪现在用CentOS⑨+nodejs18算是一切正常)

KudouShinnyan avatar Aug 03 '22 09:08 KudouShinnyan

我是ubuntu16,04,nodejs版本从4更新到了14,nodejs -v可以查看。之前有遇到同样的问题,把报错在google上搜了之后GitHub有一样的issue便解决了

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - 然后再nodejs -v如果已经变成14则问题解决 npm install -g cnpm --registry=https://registry.npmmirror.com cnpm install node app

(哪方面的解决? 指的是让莪在Ubuntu18.04即使是nodejs17能正常用, 停止支持了就不使用它吗, 长期支持版16不行直接用长期支持版14吗? 话说莪现在用CentOS+nodejs18算是一切正常)

我当时是nodejs版本远低于14(乐佬有说nodejs需大于等于14),然后无法正常安装,升级到14之后就好了。这个是我遇到的问题 你现在一切正常,那就行。我想如果我的经历对你有帮助那就更好了

qllokirin avatar Aug 03 '22 09:08 qllokirin

我当时是nodejs版本远低于14(乐佬有说nodejs需大于等于14),然后无法正常安装,升级到14之后就好了。这个是我遇到的问题 你现在一切正常,那就行。我想如果我的经历对你有帮助那就更好了

主要是莪比较喜欢用新一点版本的系统和软件, 更旧的Ubuntu16.04就不考虑了, 莪是在用安卓设备插着充电器挂着的(这样就不太担心电费又不用买服务器), 是用Termux装Ubuntu, Ubuntu18.04、20.04、22.04都是长期服务版, 那莪就优先22.04了, 一开始在忘了是20.04还是22.04尝试用Yunzai2.x是失败了的, 所以就跟作者流程一样用18.04了, 能正常用, 之后看到楼主这个贴所以又想尝试22.04, 结果还是一样, 到了Yunzai3.0, 在Ubuntu22.04和20.04相对能正常用, nodejs也是用最新的18, 但有新问题, 需要发图的时候提示Chromium启动失败, 所以在Ubuntu最终仍是只有18.04可以正常用, 至于在nodejs, 在18.04尝试了nodejs最新的18、和长期支持的16不能用(14没试), 所以在Ubuntu18.04只能用nodejs17了, 然后有个熟人他比较希望莪用的Linux是CentOS, 然后莪就在Termux尝试装最新的CentOS⑨, nodejs也用最新的18了, 一切正常

KudouShinnyan avatar Aug 03 '22 09:08 KudouShinnyan

哦哦明白了。谢谢你的讲解。我用16.04主要是那是实验室的数据库服务器,拿来挂个机器人正好,属于是白嫖了

qllokirin avatar Aug 03 '22 09:08 qllokirin

我现在使用的是Ubuntu 20.04LTS,使用腾讯云预置Node.js镜像是Node.js 14版本。我感觉太老旧就重新安装了一个Ubuntu 20.04LTS原版镜像,Node.js是用的官方源代码直接安装的;如果有人不太好安装deb之类的打包格式,可以试试源代码编译安装,但是编译耗时挺久的。

zyz102218-gmail avatar Aug 03 '22 14:08 zyz102218-gmail

我现在使用的是Ubuntu 20.04LTS,使用腾讯云预置Node.js镜像是Node.js 14版本。我感觉太老旧就重新安装了一个Ubuntu 20.04LTS原版镜像,Node.js是用的官方源代码直接安装的;如果有人不太好安装deb之类的打包格式,可以试试源代码编译安装,但是编译耗时挺久的。

(Ubuntu20.04貌似可以直接用这个https://github.com/nodesource/distributions/blob/master/README.md#debinstall )

KudouShinnyan avatar Aug 04 '22 04:08 KudouShinnyan

我之前npm出错,无法使用npm,删干净之后用nodejs上的二进制文件重新安装了,在这里分享一下踩坑的经验 删除教程:https://stackoverflow.com/questions/33870520/npm-install-cannot-find-module-semver 中Schmudde的方法 安装教程:https://blog.csdn.net/qq_44214671/article/details/121131866

顺便说一下手动提取滑动验证ticket的办法,也是网上找到的: https://blog.csdn.net/m0_51607907/article/details/124244034

最后感谢楼主的教程,之前是在windows下搭建的,很轻松,以为ubuntu下也很简单,直到puppeteer报错一万次,我还真的准备一个个的安装依赖,所幸看到了教程,免于重复劳动之苦。

Pull256 avatar Aug 05 '22 05:08 Pull256

我之前npm出错,无法使用npm,删干净之后用nodejs上的二进制文件重新安装了,在这里分享一下踩坑的经验 删除教程:https://stackoverflow.com/questions/33870520/npm-install-cannot-find-module-semver 中Schmudde的方法 安装教程:https://blog.csdn.net/qq_44214671/article/details/121131866

顺便说一下手动提取滑动验证ticket的办法,也是网上找到的: https://blog.csdn.net/qq_44214671/article/details/121131866

最后感谢楼主的教程,之前是在windows下搭建的,很轻松,以为ubuntu下也很简单,直到puppeteer报错一万次,我还真的准备一个个的安装依赖,所幸看到了教程,免于重复劳动之苦。

你获取ticket的方法是不是贴错链接了()

qllokirin avatar Aug 05 '22 05:08 qllokirin

我之前npm出错,无法使用npm,删干净之后用nodejs上的二进制文件重新安装了,在这里分享一下踩坑的经验 删除教程:https://stackoverflow.com/questions/33870520/npm-install-cannot-find-module-semver 中Schmudde的方法 安装教程:https://blog.csdn.net/qq_44214671/article/details/121131866 顺便说一下手动提取滑动验证ticket的办法,也是网上找到的: https://blog.csdn.net/qq_44214671/article/details/121131866 最后感谢楼主的教程,之前是在windows下搭建的,很轻松,以为ubuntu下也很简单,直到puppeteer报错一万次,我还真的准备一个个的安装依赖,所幸看到了教程,免于重复劳动之苦。

你获取ticket的方法是不是贴错链接了() 改好了,说实话这windows的剪贴板不给劲啊,经常出现ctrl+c之后复制不上的问题

Pull256 avatar Aug 05 '22 08:08 Pull256

屏幕截图 2022-08-14 105332 大佬这个是什么情况啊

why2357 avatar Aug 14 '22 02:08 why2357

Screenshot_20220816_093811 大佬这咋搞

XiaoGanCN avatar Aug 16 '22 01:08 XiaoGanCN

屏幕截图 2022-08-14 105332 大佬这个是什么情况啊

有没有试过这里的方式来获取 Ticket?

Shuery-Shuai avatar Aug 16 '22 12:08 Shuery-Shuai

Screenshot_20220816_093811 大佬这咋搞

有没有尝试使用 pnpm install 或者 npm install 或者 cnpm install

Shuery-Shuai avatar Aug 16 '22 12:08 Shuery-Shuai