为避免部署云崽时重复性的输入指令耗时费力,(以及俺老重装服务器),故写了一键部署脚本来直接部署Yunzai的v3,内含个人认为的主要功能的其他插件包的安装和依赖,新人码代码不熟练,望多指正!

若直接复制代码报错无法运行,可直接到https://gitee.com/piedianz/testshell下载Ubuntuinstallyz.sh,配合说明.txt食用


tips:1.本文适用于Ubuntu系统,服务器和安卓的终端可用,win的话没试过不过后面的插件包部分应该能用脚本执行

2.脚本安装了py-plugin,并提供选项安装v3分支或者main分支

v3分支是直接安装依赖,并且poetry使用的是pip install poetry(python install太慢了)

main分支虽然可选安装但是并非本地,若想本地部署py请查看https://gitee.com/realhuhu/py-plugin的main分支,不过个人建议使用远程

3.脚本使用手动编译方式编译ffmpeg,安装在Yunzai-Bot的同级目录,安装时间可能比较长,(服务器的话二十分钟左右,手机看自身性能和网络状况),服务器建议在tmux或者screen运行(防止连接中断脚本停止运行)

当然也可以试试sudo apt install ffmpeg,不过可能ubuntu20.04的apt安装的版本不符合要求

脚本代码如下,可自行取所需

#! /bin/bash#本脚本用于部署Yunzai-Bot v3
#于2022.11.20if [ $EUID -ne 0 ]; thenecho "请先输入sudo su root 切换成root权限"exit
fiecho "开始安装和更新相关环境依赖"
apt update              #列出可更新的软件清单
apt-get install -y sudo #安装sudo权限  -y表示执行过程中全部是yes
apt-get install -y curl #安装curl,curl是用于请求web服务器的工具#安装nodejs
echo "开始安装nodejs"
#/dev/null相当于一个黑洞,任何输出信息都会直接丢失,此处表示将标准输出(1) 以及标准错误输出(2)都重定向到null中去,即不输出
#若type有输出,则exit code 为0
if ! type node >/dev/null 2>&1; thencurl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - #curl的-s表示不输出错误和进度信息,-L表示让http请求跟随服务器的重定向sudo apt-get install -y nodejs
elseecho "nodejs已安装"
fi
echo "安装nodejs完成"#若没有npm则安装npm
if ! type npm >/dev/null 2>&1; thenapt install npm -yecho 'npm安装成功'
elseecho 'npm已安装'
fi#安装并运行redis
echo "开始安装redis"
apt-get install redis -y
#启动redis服务,save中的默认参数配置
redis-server --save 900 1 --save 300 10 --daemonize yes
echo "redis安装完成"#安装chromium浏览器
echo "开始安装chromium浏览器"
apt install chromium-browser -y
echo "安装chromium完成"#安装中文字体
echo "开始安装中文字体"
apt install -y --force-yes --no-install-recommends fonts-wqy-microhei
echo "安装中文字体完成"#安装git
echo "开始安装git"
apt install git -y
git config --global http.sslVerify false #去除https的ssl验证,方便拉取项目
echo "安装git完成"#克隆云崽本体
echo "开始克隆Yunzai-Bot"
if [ ! -d "Yunzai-Bot/" ]; then #如果不存在Yunzai-Bot文件夹,-d表示是否存在文件夹git clone --depth=1 -b main https://github.com/Le-niao/Yunzai-Bot.gitif [ ! -d "Yunzai-Bot/" ]; thenecho "克隆失败"exit 0elseecho "克隆完成"fi
elseecho "Yunzai-Bot已安装"
ficd Yunzai-Bot/
echo "开始安装模块"
if [ ! -d "node-mudules/" ]; thenif ! type pnpm >/dev/null; thennpm install pnpm -gfi;if ! type cnpm >/dev/null; thennpm install cnpm -g --registry=https://registry.npmmirror.comfi;pnpm install -Pecho "安装模块完成"
elseecho "模块已安装"
fiecho "开始安装依赖"
sudo apt install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget libgbm-dev
echo "安装依赖完成"
echo "云崽本体安装完成"#安装其他主要插件包echo -n "你想装哪个版本的py-plugin(新版v3请输入v3,旧版py请输入main,不想请crtl + c退出):"read ans
if [ ${ans} == v3 ]; thenecho "开始安装v3分支py-plugin";echo "安装v3云崽依赖"pnpm install iconv-lite @grpc/grpc-js @grpc/proto-loader -wif ! type python >/dev/null 2>&1; thenecho "正在为您安装python3.10"curl -sL https://gitee.com/piedianz/testshell/raw/dev/ubuntu_install_python3.10_apt.sh | sudo -E bash -fi;PY_VERSION=`python -V 2>&1|awk '{print $2}'|awk -F '.' '{print $2}'`  #第一个用空格分割,取第二部分版本号3.10.8,第二个以'.'分割,取第二个数字10if [[ ${PY_VERSION} -lt 10 ]]; thenecho -n "检测到您的py版本小于3.10,是否安装python3.10(yes/no):"read ans1if [ ${ans1} == yes ]; thenecho "正在为您安装python3.10"curl -sL https://gitee.com/piedianz/testshell/raw/dev/ubuntu_install_python3.10_apt.sh | sudo -E bash -elseecho "请保证你的python版本大于等于3.9"fi;fi;if [ ! -d plugins/py-plugin/ ]; thenecho "克隆项目中"git clone https://github.com/realhuhu/py-plugin.git ./plugins/py-pluginfi;cd plugins/py-pluginif ! type poetry >/dev/null 2>&1; thenecho "开始安装poetry"#python installpip install poetryif [ $? == 0 ]; thenecho "poetry安装完成"elseecho "poetry安装失败,请自行百度安装方法"exit 1;fi;fi;echo "开始安装相关依赖"poetry install;if [ $? == 0 ]; thenecho "依赖安装成功";elseecho "依赖安装失败,更换方法2"poetry run pip install -r requirements.txt --trusted-host mirrors.aliyun.comif [ $? == 0 ]; thenecho "依赖安装成功";elseecho "依赖安装失败"exit 1;fi;fi;echo "v3分支py-plugin安装完成,有关插件安装请查看https://gitee.com/realhuhu/py-plugin/tree/v3/"cd ../../
elif [ ${ans} == main ]; thenecho "开始安装main分支py-plugin";if [ ! -d plugins/py-plugin/ ]; thenecho "安装py依赖中"pnpm install @grpc/grpc-js @grpc/proto-loader -wecho "克隆py项目中"git clone -b main https://github.com/realhuhu/py-plugin.git ./plugins/py-pluginif [ ! -d plugins/py-plugin/ ]; thenecho "py安装失败"exitfiecho "py安装成功,因部署本地py问题较多,此处建议使用远程使用py的功能"echo "有关远程可去https://gitee.com/realhuhu/py-plugin的main分支查看"fi;
elseecho "未恰当选择,继续安装其他插件";
fi;echo "开始安装Guoba-Plugin"
if [ ! -d plugins/Guoba-Plugin/ ]; thengit clone --depth=1 https://gitee.com/guoba-yunzai/guoba-plugin.git ./plugins/Guoba-Plugin/pnpm install --filter=guoba-pluginif [ ! -d plugins/Guoba-Plugin/ ]; thenecho "锅巴安装失败"exitfiecho "锅巴安装成功"
fiecho "开始安装miao-plugin"
if [ ! -d plugins/miao-plugin/ ]; thengit clone https://gitee.com/yoimiya-kokomi/miao-plugin.git ./plugins/miao-plugin/pnpm add image-size -wif [ ! -d plugins/miao-plugin/ ]; thenecho "喵喵安装失败"exitfiecho "喵喵安装成功"
fiecho "开始安装xiaoyao-cvs-plugin"
if [ ! -d plugins/xiaoyao-cvs-plugin/ ]; thengit clone https://gitee.com/Ctrlcvs/xiaoyao-cvs-plugin.git ./plugins/xiaoyao-cvs-plugin/if [ ! -d plugins/xiaoyao-cvs-plugin/ ]; thenecho "图鉴安装失败"exitfiecho "图鉴安装成功"
fiecho "开始安装earth-k-plugin"
if [ ! -d plugins/earth-k-plugin/ ]; thengit clone https://gitee.com/SmallK111407/earth-k-plugin.git ./plugins/earth-k-plugin/echo '安装土块画图相关依赖'cnpm install node-machine-idif [ ! -d plugins/earth-k-plugin/ ]; thenecho "土块安装失败"exitfiecho "土块安装成功"
fiecho "开始安装flower-plugin"
if [ ! -d plugins/flower-plugin/ ]; thengit clone --depth=1 https://github.com/Nwflower/flower-plugin.git ./plugins/flower-plugin/if [ ! -d plugins/flower-plugin/ ]; thenecho "花佬插件安装失败"exitfiecho "花佬插件安装成功"
fiecho "开始安装yenai-plugin"
if [ ! -d plugins/yenai-plugin/ ]; thengit clone https://gitee.com/yeyang52/yenai-plugin.git ./plugins/yenai-pluginif [ ! -d plugins/yenai-plugin/ ]; thenecho "椰奶安装失败"exitfiecho "椰奶安装成功"
fiecho "开始安装suiyue"
if [ ! -d plugins/suiyue/ ]; thengit clone https://gitee.com/Acceleratorsky/suiyue.git ./plugins/suiyue/if [ ! -d plugins/suiyue/ ]; thenecho "碎月安装失败"exitfiecho "碎月安装成功"
fiecho "开始安装xitian-plugin"
if [ ! -d plugins/xitian-plugin/ ]; thengit clone https://gitee.com/XiTianGame/xitian-plugin.git ./plugins/xitian-plugin/if [ ! -d plugins/xitian-plugin/ ]; thenecho "戏天插件管理器安装失败"exitfiecho "戏天插件管理器安装成功"
fi#由于apt安装的ffmpeg版本过低,可能不支持amr的转换
#有关ffmpeg的下载和编译,此处采用手动编译安装的方式echo '开始安装ffmpeg'
if ! type ffmpeg >/dev/null 2>&1; then#下载ffmpeg并解压,目录设置为自己所在目录echo '开始下载ffmpeg'wget http://www.ffmpeg.org/releases/ffmpeg-5.1.tar.gztar -zxvf ffmpeg-5.1.tar.gzecho '下载解压完成'#打开和编译cd ffmpeg-5.1/echo '安装yasm(有yasm的话就不用管)'apt install yasm pkg-config libopencore-amrnb-dev libopencore-amrwb-devecho '安装yasm完成'#编译echo '此过程可能比较漫长,请耐心等候'./configure --enable-gpl --enable-version3 --enable-nonfree --disable-ffplay --disable-ffprobe --enable-libopencore-amrnb --enable-libopencore-amrwbmakemake installecho '手动编译完成,恭喜!'#指示如何配置环境路径dir=$(pwd)echo "请将 ${dir}/ffmpeg 添加到登录过的云崽的config/config/bot.yaml的ffmpeg_path中,建议通过锅巴登录进行添加"echo '可根据需要改变环境变量'
elseecho 'ffmpeg已安装'
fiecho '本脚本已安装云崽本体及主要插件包,按自己需要删减'
echo "脚本结束,恭喜你部署完成!"

写了这么多但可能很多判断压根不需要,如果由于插件依赖的安装导致掉了其他依赖可根据node app的报错提示重新安装即可!

这样写的太慢啦果然还是不熟练

Ubuntu一键部署Yunzai-Bot v3相关推荐

  1. 在Oracle Linux上部署Yunzai Bot v3保姆式教程/甲骨文云/云崽Bot/原神

    去我的博客查看本文:在Oracle Linux上部署Yunzai Bot v3保姆式教程 – 肚 (iocky.com) 本文也在Github与gitee可用. 初始配置 直接注册最低配置的就ok了, ...

  2. 安装ubuntu系统操作系统详细流程、ubuntu管理包命令apt和dpkg命令详细说明、一键部署openstack环境、DBeaver下载驱动报错和登录提示RSA public key.. 解决方法

    文章目录 安装ubuntu操作系统 安装vmware,我这的版本是16 . 创建虚拟机 设置网络.[你没有啥特殊需求,忽略该步骤] 开启处理器虚拟化 开始安装ubuntu系统 配置sshd和修改roo ...

  3. ubuntu一键化部署方案

    ubuntu一键化部署方案 近来对于开发的项目进行部署,每次都是先下载相关的软件,拷贝的指定的位置然后解压,配置path,将工程拷贝到指定的位置修改相关度额配置文件,十分麻烦和费时,能不能把事情尽量简 ...

  4. zabbix 时间错误_一键部署Zabbix+Grafana+Icinga+SmokePing监控系统

    管理学上有一句名言,If You Can't Measure It, You Can't Manage It.对于监控的重要性我就不细说了,原先我们使用Nagios.Catti.SmokePing.I ...

  5. 一键部署VS插件:让.NET开发者更幸福

    作者:鱼东东 链接:http://www.cnblogs.com/yudongdong/p/10385199.html 一键发布工具(ant deploy tool) 下载地址: https://ma ...

  6. netcore一键部署到linux服务器以服务方式后台运行

    AntDeploy 是我开发一款开源一键发布插件 将本地vs中的代码,一键打包,部署到任意的远程服务器 部署方式支持 windows服务,linux服务,docker容器,iis 支持增量发布(只更新 ...

  7. 原神机器人Yunzai Bot搭建

    原神机器人Yunzai Bot搭建 1.安装环境 (1)首先,你需要一台电脑或者VPS云服务器(最好是云服务器,阿里云.腾讯云.华为云.雨云都是不错的选择,不限配置) (2)安装云崽运行环境 云崽机器 ...

  8. 初学AI的你也能一键部署模型服务?奥利给!!

    作者:Leon Wang,现为中科院特别研究助理 (博士后),在 AI.数据科学和科学计算等方面相关的工程实践上积累了丰富的经验. 编辑:王老湿 <AI炼丹炉实践指南>专栏前 6 篇: 学 ...

  9. k8s 集群一键部署(持续更新)

    介绍 使用原生shell脚本构建k8s一键部署资源包,软件最终命名:kubefit***.tgz 机制介绍: 简单化:只需要配置集群IP地址和制定的安装配置文件 个性化:支持自定义部署位置 易用化:内 ...

最新文章

  1. C#学习笔记-stream,win8.1开发小记
  2. Hadoop hdfs配置
  3. DB2 SQL 递归实现多行合并
  4. python循环输出三角形图案的画_python循环输出三角形图案的例子
  5. 前端学习(2849):简单秒杀学习之浮动
  6. TIP 2021论文:多曝光图像融合及超分辨的联合实现
  7. 手机号正则表达式验证_想精通正则表达式 这几个正则表达式学习资料及工具你必须有!...
  8. vue.js:634 [Vue warn]: Error in render: “TypeError: Cannot read property ‘matched‘ of undefined“
  9. 再拔头筹,FusionInsight为华为云大数据打造硬实力
  10. 20180908 2018-2019-2 《密码与安全新技术专题》第3周作业
  11. GridView控件RowDataBound事件中获取列字段的几种途径
  12. TCP握手协议的巧计方法
  13. 2017年12款小型企业的最佳杀毒软件 你知道几个?
  14. Ubuntu虚拟机中无法使用罗技鼠标滚轮功能
  15. STM32官方应用笔记分类汇总
  16. 2014清华计算机系直博名单,2014年清华大学博士研究生拟录取名单公示
  17. ORA-12154: TNS: 无法解析指定的连接标识符
  18. 2019年AI领域回顾:稳定发展还是幻想破灭?
  19. 【给小白玩的脚本】自动发歌词、发弹幕
  20. centos7 配置虚拟ip

热门文章

  1. Windows 搜索
  2. Allavsoft for Mac(专业视频下载工具)
  3. 【每日早报】2019/07/31
  4. codewars 7kyu Vowel Count
  5. 流氓并不可怕,就怕流氓有文化 -- 这是一个知识改变命运的例子
  6. 云计算设计模式(二十)——调度程序代理管理者模式
  7. lan8742a怎么用_LAN8742A
  8. inconsistent datatypes: expected DATE got NUMBER
  9. 社区版pyCharm创建Django项目
  10. 计算机毕业设计ssm水果生鲜销售系统7826c系统+程序+源码+lw+远程部署