使用Ubuntu 22.04安装Frappe-Bench【二】

系列文章目录

第一章 使用VMware创建Ubuntu 22.04【一】


文章目录

  • 系列文章目录
  • 前言
    • 什么是Frappe-Bench?
    • 使用安装ERPNext能实现什么效果? 官网给了一个说明
  • 一、使用Ubuntu 22.04安装Frappe-Bench
    • 一、安装要求
    • 二、安装命令
    • 三、 可能出现问题
  • 总结


前言

什么是Frappe-Bench?

Frappe-Bench是一个开源的应用程序集成框架,用于开发和管理Web应用程序。它是Frappe框架的一部分,其中包含许多有用的工具和库,可以帮助开发人员快速构建和部署Web应用程序。Frappe-Bench的目标是简化应用程序开发的过程,并提供一种灵活的方式来管理和扩展应用程序。它提供了一个命令行界面,可以轻松地创建和管理应用程序,包括数据库管理、安装和管理依赖项等。总之,Frappe-Bench是一个强大的工具,用于创建、管理和扩展Web应用程序。

使用安装ERPNext能实现什么效果? 官网给了一个说明

官网跳转
在这里插入图片描述

在这里插入图片描述


提示:以下是本篇文章正文内容,下面提供安装Frappe基础环境

一、使用Ubuntu 22.04安装Frappe-Bench

一、安装要求

系统环境:Ubuntu 22.04
硬件: 2核4G (最低配)

安装要求:

版本14基础架构::
Node.js 14 or 16
MariaDB 10.6.6+

版本15基础架构:
Node.js 18
MariaDB 10.6.6+

Farppe 需要用到的版本:
Python 3.10 or Python 3.11
Redis 6                                       (缓存)
yarn 1.12+                                    (js 依赖管理)
pip 20+                                       (py 依赖管理)
wkhtmltopdf (version 0.12.5 with patched qt)  (创建PDF)
cron                                          (定时任务)
NGINX                                         (接口代理转发)

二、安装命令

从桌面找到控制台(Terminal)打开后输入下方命令

1、新建管理员账号并切换

su 
--输入管理员密码

# 忘记密码,通过下方命令重置
sudo passwd

#利用管理员新建一个ERP系统用户
adduser fra

#我这里新建了个 fra的账号
user fra
passwd fra

#将用户添加到sudo组 相当于赋予普通用户ROOT权限,不过运行其他命令前需要加sudo
usermod -aG sudo fra

#切换管理员账户
su - fra

2、更新apt安装源,享受更快的下载速度和更稳定的软件包更新。

#进入目录 备份sources.list文件
cd /etc/apt
sudo cp -a sources.list sources.list.backup

#浏览器打开下方链接,选择对应系统版本
#使用清华的源替换掉自带的信息
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

#使用gedit打开sources.list,粘贴上面的内容
sudo nano sources.list

#保存和退出
ctrl + s 保存信息
ctrl + x 退出界面

3、设置DNS解析,防止系统出现无法解析软件源的域名

#编辑配置文件
sudo nano /etc/resolv.conf

#加入解析地址
nameserver 8.8.8.8
nameserver 8.8.4.4

#保存和退出
ctrl + s 保存信息
ctrl + x 退出界面

4、更新和升级服务器的一些依赖

sudo apt update -y && sudo apt upgrade -y && shutdown -r now

#解读
apt update              更新本地包列表
apt upgrade -y          智能地处理与新版本包的依赖关系
shutdown -r now		    重启机器

#下方一条命令可忽略运行
sudo apt-get dis-upgrade -y  解决依赖性问题,尝试解决和移除。会造成文件依赖的破坏风险

5、Install ssh 如要远程连接的话,选择安装

sudo apt install openssh-server    安装过程中需要输入Y和回车即可
ip addr show    记录服务器IP可通过第三方软件进行远程连接

6、如要Vim的话,选择安装

sudo apt -y install vim  使用笔记本方便编辑记录

7、安装 curl 和node.js18

#下载curl 使用curl命令指定下载链接到本地存储库
sudo snap install curl
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -

#安装node到系统
sudo apt-get install nodejs -y

#Yarn NPM的包管理工具
sudo npm install -g yarn

#查看版本node版本是否是18+
npm -v && node -v && yarn -v 

8、安装对应软件

sudo apt install -y python3.10-dev python3-setuptools python3-pip python3-distutils virtualenv python3.10-venv software-properties-common mariadb-server mariadb-client redis-server xvfb libfontconfig wkhtmltopdf libmysqlclient-dev nginx cron wget ansible pkg-config libcairo2-dev libjpeg-dev libgif-dev librsvg2-dev ttf-wqy-zenhei ttf-wqy-microhei ca-certificates locales tzdata supervisor

9、配置MariaDB

#打开配置文件
sudo nano /etc/mysql/my.cnf

# 将光标移动到最后空白行,复制以下文本内容,粘贴后注意格式和换行要同下方
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[mysql]
default-character-set = utf8mb4

#保存和退出
ctrl + s 保存信息
ctrl + x 退出界面

#配置数据库
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

[server]
user = mysql
pid-file = /run/mysqld/mysqld.pid
socket = /run/mysqld/mysqld.sock
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
bind-address = 127.0.0.1
query_cache_size = 16M
log_error = /var/log/mysql/error.log


[mysqld]
innodb-file-format=barracuda
innodb-file-per-table=1
innodb-large-prefix=1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

#保存和退出
ctrl + s 保存信息
ctrl + x 退出界面

#重启服务
sudo service mysql restart


#运行命令打开配置信息
sudo mysql_secure_installation

#配置过程
Enter current password for root (enter for none):  # 输入(mysql)密码,初次安装默认没有,直接回车 
Switch to unix_socket authentication [Y/n] n # 是否切换到unix套接字身份验证[Y/n]
Change the root password? [Y/n] y #是否设置root用户密码
New password: # 新密码
Re-enter new password:  # 再次输入密码
Remove anonymous users? [Y/n] y # 是否删除匿名用户,建议删除
Disallow root login remotely? [Y/n] n # 是否禁止root远程登录,建议不开启
Remove test database and access to it? [Y/n] n # 是否删除test数据库,可以保留
Reload privilege tables now? [Y/n] y # 是否重新加载权限表,也可以直接回车
Thanks for using MariaDB! # 看到这句话证明设置成功

10、安装配置Python中pip 切换国内源

#先查看pip版本如果大于20+,则不需要运行升级命令
pip --version

# 升级 pip 到最新的版本  -版本大于20+ 可忽略
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

#配置清华软件源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# root用户也更新一下pip源
sudo pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

11、安装Frappe-Bench

#安装frappe-bench
sudo -H pip3 install frappe-bench

#查看版本并确定是否安装成功
bench --version

12、初始化Frappe-Bench

#网络可能会超时 --默认源是github
bench init frappe-bench

#或者使用国内源下载 --修改源为gitee
bench init --frappe-branch version-15 frappe-bench --frappe-path=https://gitee.com/mirrors/frappe --verbose 


#进入目录启动
cd frappe-bench/
bench start

三、 可能出现问题

1、在主机中无法正常复制内容到虚拟机

出现这种无法正常复制的问题一般是虚拟机中组件安装异常,需要手工卸载并安装

#卸载
sudo apt autoremove open-vm-tools

#重新安装
sudo apt install open-vm-tools -y
sudo apt install open-vm-tools-desktop -y

#查看是否安装成功
vmware-user

2、使用sudo apt update运行异常,“Temporary failure resolving ‘security.ubuntu.com’” 表示你的系统无法解析安全软件源的域名。

#编辑配置文件
sudo nano /etc/resolv.conf

#加入解析地址
nameserver 8.8.8.8
nameserver 8.8.4.4

3、镜像源下载数据缓慢,切换数据源

#unbantu镜像源参考
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

#pip源参考
#国内几个站点如下:
https://pypi.douban.com/simple/ 豆瓣
http://mirrors.aliyun.com/pypi/simple/ 阿里
http://pypi.hustunique.com/simple/ 华中理工大学
http://pypi.sdutlinux.org/simple/ 山东理工大学
http://pypi.mirrors.ustc.edu.cn/simple/ 中国科学技术大学
https://pypi.tuna.tsinghua.edu.cn/simple/ 清华

总结

以上就是今天要介绍的内容,本文简单介绍了Frappe-Bench的安装初始化,如遇到安装问题,请关注本社区可及时交流和讨论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/778827.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

hnust 1816: 算法10-9:简单选择排序

hnust 1816: 算法10-9:简单选择排序 题目描述 选择排序的基本思想是:每一趟比较过程中,在n-i1(i1,2,…,n-1)个记录中选取关键字最小的记录作为有序序列中的第i个记录。 在多种选择排序中,最常用且形式最为简单的是简单选择排序。…

JavaScript中的立即执行函数表达式(Immediately Invoked Function Expression, IIFE)

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介JavaScript中的立即执行函数表达式(Immediately Invoked Function Expression, IIFE)1. 引言2. IIFE的概念2.1 概述2.2 语法2.3 历史背景 3. IIFE的作用3.1 创建独立作用域3.2 模块化代码3.3 防止变量提升3.…

动态路由--RIP配置(思科cisco)

一、简介 RIP协议(Routing Information Protocol,路由信息协议)是一种基于距离矢量的动态路由选择协议。 在RIP协议中,如果路由器A和网络B直接相连,那么路由器A到网络B的距离被定义为1跳。若从路由器A出发到达网络B需要…

Apache Seata分布式事务启用Nacos做配置中心

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 Seata分布式事务启用Nacos做配置中心 Seata分布式事务启用Nacos做配置中心 项目地址 本文作…

FreeU: Free Lunch in Diffusion U-Net——【代码复现】

这篇文章发表于CVPR 2024,官网地址:ChenyangSi/FreeU: FreeU: Free Lunch in Diffusion U-Net (CVPR2024 Oral) (github.com) 一、环境准备 提前准备好python、pytorch环境 二、下载项目依赖 demo下有一个requirements.txt文件, pip inst…

Fill - UVA 10603

网址如下&#xff1a; Fill - UVA 10603 - Virtual Judge (vjudge.net) 感觉有点浮躁&#xff0c;没法完全将思绪投入题的思考中 脑袋糊糊的 一道bfs题 代码如下&#xff1a; #include<queue> #include<cstdio> #include<cstring> #include<vector&g…

开放式耳机哪个牌子好?悠律、漫步者、韶音全面对比与推荐

对于现在的无线耳机市场而言&#xff0c;开放式耳机迎来的真正的大爆发&#xff0c;关键的是它采用了定向传声方式&#xff0c;我们在运动时除了可以感受到音乐带来的快乐外&#xff0c;还能时刻保持对外界环境音的警觉。 今天&#xff0c;我们将为大家详细对比推荐三款备受瞩…

Redis中list类型操作命令(操作演示、命令语法、返回值、时间复杂度、注意事项等)

文章目录 lpush 命令lrange 命令lpushx 命令rpush 命令rpushx 命令lpop 命令rpop 命令lindex 命令linsert 命令llen 命令lrem 命令ltrim 命令lset 命令blpop 和 brpop lpush 命令 从左侧向列表中插入指定的元素 语法&#xff1a;lpush key value [value……] 时间复杂度&#…

大厂面试官赞不绝口的后端技术亮点【后端项目亮点合集(2)】

本文将持续更新~~ hello hello~ &#xff0c;这里是绝命Coding——老白~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#xff1a;绝命C…

第三方商城对接重构(HF202407)

文章目录 项目背景一、模块范围二、问题方案1. 商品模块整体来说这块对接的不是太顺利,梳理了几条大概的思路:2. 订单模块3. 售后4. 发票5. 结算单经验总结项目背景 作为供应商入围第三方商城成功,然后运营了一段时间,第三方通知要重构, 需要重新对接打通接口完成系统对接…

【网络管理工具】NETworkManager工具的基本使用教程

【网络管理工具】NETworkManager工具的基本使用教程 一、NETworkManager工具介绍1.1 NETworkManager简介1.2 NETworkManager特点1.3 NETworkManager使用场景 二、下载NETworkManager软件包2.1 下载地址2.2 下载软件 三、运行NETworkManager工具3.1 解压NETworkManager3.2 运行N…

WPF中Background=“{x:Null}“ 和 Transparent

WPF中关于背景透明和背景无 此时&#xff0c;我代码中是写的有有个控件&#xff0c;一个Border &#xff0c;一个TextBox &#xff0c;范围都是全屏这么大&#xff0c;可以输入TextBox 因为&#xff0c;当border没有设置背景的时候&#xff0c;实际上是&#xff1a; <Borde…

实现原理:远程过程调用(RPC)

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

Linux多进程和多线程(七)进程间通信-信号量

进程间通信之信号量 资源竞争 多个进程竞争同一资源时&#xff0c;会发生资源竞争。 资源竞争会导致进程的执行出现不可预测的结果。 临界资源 不允许同时有多个进程访问的资源, 包括硬件资源 (CPU、内存、存储器以及其他外 围设备) 与软件资源(共享代码段、共享数据结构) …

2024上半年网络工程师考试《应用技术》试题二

试题二(20分) 阅读以下说明,回答问题,将解答填入对应的解答栏内。 某单位网络拓扑如下图所示.SW1、SW2为核心层交换机&#xff0c;PC网关配置在核心层&#xff0c;SW3-SW4为接入层交换机,行政部PC划为vlan10,销售部PC划为vlan20。 【问题1】(4分) 要求实现骨干链路冗余&…

[leetcode hot 150]第一百三十题,被围绕的区域

题目&#xff1a; 给你一个 m x n 的矩阵 board &#xff0c;由若干字符 X 和 O 组成&#xff0c;捕获 所有 被围绕的区域&#xff1a; 连接&#xff1a;一个单元格与水平或垂直方向上相邻的单元格连接。区域&#xff1a;连接所有 0 的单元格来形成一个区域。围绕&#xff1a…

图的应用之最短路径

引入 应用 算法思想 Dijistra算法 用于解决单个顶点间的最短路径问题 将顶点看成两部分&#xff1a; 最短路径顶点集合A与尚未确定最短路径顶点集合B。 先将顶点按最短路径由小到大依次加入到A中&#xff0c;选择由源点到A中最短的顶点&#xff0c;并记录距离与顶点&#xf…

154. 寻找旋转排序数组中的最小值 II(困难)

154. 寻找旋转排序数组中的最小值 II 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java 1. 题目描述 题目中转&#xff1a;154. 寻找旋转排序数组中的最小值 II 2.详细题解 该题是153. 寻找旋转排序数组中的最小值的进阶题&#xff0c;在153. 寻找旋转排序数组中的最小值…

讲个SystemVerilog随机约束小坑

正文 记录个在写SystemVerilog随机约束时遇到的一个小坑&#xff0c;如果没有认真去查看随机结果是否符合预期&#xff0c;还真不容易发现。 为了方便讲述&#xff0c;写了如下示例代码。类cl_a里有个随机变量aa&#xff0c;初始值为222。在module top里对类cl_a例化并进行约…

【Web】

1、配仓库 [rootlocalhost yum.repos.d]# vi rpm.repo ##本地仓库标准写法 [baseos] namemiaoshubaseos baseurl/mnt/BaseOS gpgcheck0 [appstream] namemiaoshuappstream baseurlfile:///mnt/AppStream gpgcheck0 2、挂载 [rootlocalhost ~]mount /dev/sr0 /mnt mount: /m…