当前位置: 首页 > news >正文

ubuntu22.04部署Snipe-IT

文章目录

  • 参考链接
  • 一、写在前
  • 二、安装操作系统
  • 三、安装 PHP
  • 四、下载 Snipe-IT
  • 五、安装依赖
  • 六、安装数据库并创建用户
  • 七、安装 Snipe-IT
  • 八、安装 Nginx
  • 九、Web 继续安装 Snipe-IT
    • 补充:
  • 最后


参考链接

How to Install Snipe-IT on Ubuntu 22.04
https://www.rosehosting.com/blog/how-to-install-snipe-it-on-ubuntu-22-04/
官方手册:https://snipe-it.readme.io/v7.1.17/docs/installation
IT打工人利器:推荐两款开源的公司固定资产管理工具
https://cloud.tencent.com/developer/article/2407425
在安装snipe-it中遇到的坑
https://www.cnblogs.com/mingxi/p/18293822


一、写在前

踩的坑多了,悟出的心得:
a.安装前一定要先找官方文档,查看软件的依赖环境,以及软件对应的版本信息
b.我使用的官方教程(默认克隆的最新版),教程里写的是PHP8.1即可,但其实最新版需要的是PHP8.2,所以导致安装失败,
在这里插入图片描述

二、安装操作系统

建议选择最小化安装(系统安装过程略)

apt install net-tools -y
apt -y install wget
apt install psmisc -y
apt install vim -y
apt install eple-r* -y
apt install curl -y
apt install git -y
apt update -y

查看系统版本
在这里插入图片描述

三、安装 PHP

根据Snipe-IT文档页面,v7.1.17版本要求PHP版本在8.1及以上。Ubuntu 22.04附带了PHP 8.1.2。在这一步中,我们将直接安装PHP 8.1以及所需的扩展。

# apt install php8.1-{bcmath,common,ctype,curl,fileinfo,fpm,gd,iconv,intl,mbstring,mysql,soap,xml,xsl,zip,cli}

四、下载 Snipe-IT

使用下面的命令导航到您的Web服务器的根目录。没有就新建

cd /var/www/html

然后,克隆Snipe-IT GitHub仓库并使用下面的命令将内容保存到snipe-it目录中。

git clone https://github.com/snipe/snipe-it snipe-it
//一定要注意:上面克隆的是最新版8.0.3,ubuntu版本仓库默认的PHP版本不支持,
//使用git回退版本
git clone --branch v7.1.17 https://github.com/snipe/snipe-it.git snipe-it    //此操作回退的是标签,不能当做安装包使用,需要创建分支//创建分支
git switch -c snipe-it-v7.1.17
//有的说回退版本
git checkout v7.1.17   //没尝试

五、安装依赖

Composer是一个PHP包管理器,它允许我们管理我们在Snipe-IT中使用的各种供应商包的依赖关系。供应商包是其他人编写的PHP库,我们在Snipe-IT中使用它。
不需要全局安装composer,第一组命令主要用于全局安装 Composer,而第二组命令用于项目内安装 Composer 并安装项目依赖。如果你需要在多个项目中使用 Composer,全局安装更为方便;如果希望每个项目有独立的 Composer 环境,避免不同项目之间的依赖冲突,项目内安装是更好的选择。

cd /var/www/html/snipeit/
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
cd /var/www/html/snipeit/
curl -sS https://getcomposer.org/installer | php
php composer.phar install --no-dev --prefer-source

要检查Composer版本,可以运行以下命令:

# composer -V

六、安装数据库并创建用户

Snipe-IT基于Laravel 8框架。虽然Laravel支持MySQL/MariaDB、PostgreSQL、SQLite和MSSQL,但Snipe-IT只支持MySQL/MariaDB。在这一步中,我们将从默认存储库安装MariaDB服务器。要安装MariaDB服务器,执行以下命令:

apt install mariadb-server -y
//创建数据库
mysql
mysql> CREATE DATABASE snipeit;
mysql> show databases;
mysql> create user snipeit;
mysql> GRANT ALL ON snipeit.* TO snipeit@localhost identified by '1qaz@WSX';
mysql> FLUSH PRIVILEGES;
mysql> \q

七、安装 Snipe-IT

cd /var/www/html/snipe-it
cp .env.example .env
vim .env

输入您的应用程序URL和时间区

APP_URL=http://172.0.0.110
APP_TIMEZONE='Asia/Shanghai'
APP_LOCALE='zh-CN'

然后在数据库设置下,输入您的数据库凭据

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=1qaz@WSX
DB_PREFIX=null

设置Snipe-IT数据目录的所有权和权限。

# chown -R www-data: /var/www/html/snipe-it
# chmod -R 775 /var/www/html/snipe-it

接下来,更新Snipe-IT依赖项。

# composer update --no-plugins --no-scripts

更新Composer后,我们需要执行以下命令来安装所有应用程序依赖。(我对这步表示疑惑,但还是执行了)

# composer install --no-dev --prefer-source --no-plugins --no-scripts

在/var/www/snipe-it/。使用下面的命令生成Laravel APP Key-value。系统会自动把key填充到.env文件中。

# php artisan key:generate

八、安装 Nginx

Laravel支持多种web服务器,如Apache、Nginx或Litespeed。在这一步中,我们将安装和配置nginx。让我们先安装它,然后继续下一步。

# apt install nginx

安装后,nginx将自动启动,并且它已经配置为在重新启动时运行。所以,我们可以继续为我们的Snipe-IT网站创建一个新的nginx服务器块。

vim /etc/nginx/conf.d/snipeit.conf

在文件中插入以下内容,并确保将snipeit.yourdomain.com替换为指向服务器IP地址的实际域名或子域名。

server {listen 80;server_name snipeit.yourdomain.com;   //注意替换并删除我root /var/www/html/snipe-it/public;index index.php;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {include fastcgi.conf;include snippets/fastcgi-php.conf;fastcgi_pass unix:/run/php/php8.1-fpm.sock;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}

保存文件,然后退出。我们需要重新启动nginx来应用我们所做的更改。

# systemctl restart nginx

九、Web 继续安装 Snipe-IT

此时,我们可以导航到http://172.0.0.110并通过web浏览器继续安装。
这一步如果访问失败(页面显示:500),那大概率是安装包权限问题,
新建一个用户:useradd snipeit,
并将安装包chwon -R snipeit: snipe-it和chmod -R 775 snipe-it/
然后重启再尝试
在这里插入图片描述
Next
在这里插入图片描述
已创建数据库表;现在单击Next: Create User继续。
在这里插入图片描述
单击下一步:保存用户在这里插入图片描述
到这里已安装完毕
至于更精细化的设置:LDAP、中文、使用技巧等等。请详询官手册

补充:

由于我的英文实在不好,这里我选择切换成中文。
切换中文的地方有两处:(第一处生效了)
在这里插入图片描述
在这里插入图片描述


最后

上面执行的顺序我有所调整,如果你在安装过程中遇到问题,请留言。

如果成了,给个赞鼓励一下。

相关文章:

ubuntu22.04部署Snipe-IT

文章目录 参考链接一、写在前二、安装操作系统三、安装 PHP四、下载 Snipe-IT五、安装依赖六、安装数据库并创建用户七、安装 Snipe-IT八、安装 Nginx九、Web 继续安装 Snipe-IT补充: 最后 参考链接 How to Install Snipe-IT on Ubuntu 22.04 https://www.rosehost…...

【EDA】EDA中聚类(Clustering)和划分(Partitioning)

在VLSI物理设计自动化中,聚类(Clustering)和划分(Partitioning)是两个不同的关键步骤,主要区别如下: 1. 目标与核心任务 聚类(Clustering) 目标:将电路中的…...

Java 安全:如何实现用户认证与授权?

Java 安全:如何实现用户认证与授权? 在当今数字化的世界中,用户认证与授权是 Java 应用程序安全的关键环节。它们确保只有经过授权的用户才能访问特定资源,保护系统免受未授权访问的威胁。本文将深入探讨如何在 Java 中实现用户认…...

六个能够白嫖学习资料的网站

一、咖喱君的资源库 地址:https://flowus.cn/galijun/share/de0f6d2f-df17-4075-86ed-ebead0394a77 这是一个学习资料/学习网站分享平台,包含了英语、法语、德语、韩语、日语、泰语等几十种外国语言的学习资料及平台,这个网站的优势就是外语…...

AWS Glue ETL设计与调度最佳实践

一、引言 在AWS Glue中设计和调度ETL过程时,需结合其无服务器架构和托管服务特性,采用系统化方法和最佳实践,以提高效率、可靠性和可维护性。本文将从调度策略和设计方法两大维度详细论述,并辅以实际案例说明。 二、调度策略的最…...

《深入理解 AOP》

一、AOP 是什么 AOP(Aspect Oriented Programming),即面向切面编程,是软件开发中一种重要的编程范式。它通过横向抽取机制,将那些与业务逻辑本身无关、却为业务模块所共同调用的逻辑或责任(如事务处理、日…...

2022李宏毅老师机器学习课程笔记

机器学习笔记目录 1.绪论(内容概述)2.机器学习和深度学习的基本概念transformer 1.绪论(内容概述) 机器学习:让机器找一个函数,通过函数输出想要的结果。应用举例:语音识别,图像识别…...

时序数据库IoTDB在航空航天领域的解决方案

在快速发展的航空航天领域,高效、安全的数据管理成为了技术创新和持续发展的关键支撑。时序数据库IoTDB,凭借其国产自研、高效低流量数据同步、丰富的部署选择等优势,为航空航天产业提供了强有力的数据基础,助力产业加速转型升级。…...

洛谷 B3647:【模板】Floyd 算法

【题目来源】 https://www.luogu.com.cn/problem/B3647 【题目描述】 给出一张由 n 个点 m 条边组成的无向图。 求出所有点对 (i,j) 之间的最短路径。 【输入格式】 第一行为两个整数 n,m,分别代表点的个数和边的条数。 接下来 m 行,每行三…...

【25软考网工】第三章(4)生成树协议、广播风暴和MAC地址表震荡

目录 一、生成树协议1. 生成树技术背景1)单链路上行存在单点故障2)二层环路问题3)二层环路问题——广播风暴实验验证 广播风暴例题1:二层环路故障现象4)二层环路问题—— MAC地址表震荡实验验证 MAC地址表震荡的现象 2…...

解释器体系结构风格-笔记

解释器(Interpreter)是一种软件设计模式或体系结构风格,主要用于为语言(或表达式)定义其语法、语义,并通过解释器来解析和执行语言中的表达式。解释器体系结构风格广泛应用于编程语言、脚本语言、规则引擎、…...

删除新安装IBM Guardium Data Protection 12.1的baltimorecybertrustroot证书

登录web console,会显示 baltimorecybertrustroot证书过期警告。 采用下面的命令删除过期证书就可消除警告。 collector02.cpd.com> delete certificate keystore Select an alias from the list below to delete the corresponding certificate. Alias List:…...

反序列化漏洞1

一、PHP类与对象 1. 类 概念理解: 类是共享相同结构和行为的对象的集合,可以理解为特征的提取。例如将耳朵长、尾巴短、红眼睛、吃胡萝卜、蹦跳行走的动物特征抽象为"兔子"类。代码结构: 使用class关键字定义类类名遵循大驼峰命名法包含成员变量(属性)和…...

正则表达式三剑客之——awk命令

目录 一.什么是awk 二.awk的语法格式 1.选项 2. 模式(Pattern) 3. 操作(Action) 4. 输入文件(file) 5.总结 三.awk的工作原理 1. 逐行扫描输入 2. 匹配模式 1.正则表达式: 2.逻辑表…...

施磊老师基于muduo网络库的集群聊天服务器(七)

文章目录 数据表字符集问题支持中文和英文**为什么使用 utf8mb4?** 推荐 查看整个表, 再单独修改 客户端群组功能创建群组添加群组群组聊天接收在线群组消息接收离线群组消息补充服务器事件处理器补充服务器查询群组列表问题解决测试 目前报错总结目前为止最恶心的错…...

多模态(3):实战 GPT-4o 视频理解

最近,OpenAI 团队的 GPT-4o 模型,在多模态方面的能力有了大幅提升,这次我们就使用 GPT-4o 完成一个视频理解的实战。 1. 环境搭建 1.1 安装 FFmpeg 做视频处理,我们需要用到 FFmpeg 这款功能强大的开源多媒体处理工具。FFmpeg…...

基于python实现一个二维图片的路径规划问题

一、场景 基于如下的一个楼层平面图,假设有几个预置的点(实际项目中可能是动态的点,比如找车位,找工位),做路径规划,并画在平面图上 二、方案 1.准备平面室内图 可以自己用QGIS/cad等其他方式…...

云服务器centos 安装hadoop集群

百度 搜索 云服务器centos 安装hadoop 创建Hadoop用户 sudo useradd hadoop -m -s /bin/bash sudo passwd hadoop 123456 下载Hadoop wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz 解压并移动Hadoop到指定目录 tar …...

【k8s】sidecar边车容器

一、Sidecar 模式简介 Sidecar 模式是一种常见的微服务架构设计模式。它通过将附加功能或服务与主应用程序部署在同一容器或主机上,从而实现对主应用程序的增强和扩展。Sidecar 的名称来源于摩托车的边车,它与摩托车紧密相连,为主车提供额外…...

Web漏洞--XSS之订单系统和Shell箱子

本文主要内容 手法 XSS平台使用 XSS工具使用 XSS结合其他漏洞 XSS具体使用场景 某订单系统XSS盲打_平台 某Shell箱子系统XSS盲打_工具 [1]订单系统经典案例 第一个简易攻击流程(订单系统):通过平台完成XSS跨站之后&a…...

# 构建词汇表:自然语言处理中的关键步骤

构建词汇表:自然语言处理中的关键步骤 在自然语言处理(NLP)任务中,词汇表(Vocabulary)是文本数据预处理的核心组件之一。它将文本中的单词或字符映射为数值索引,从而让计算机能够理解和处理语言…...

新!在 podman-machine-default 中安装 CUDA、cuDNN、Anaconda、PyTorch 等并验证安装

#工作记录 一、前言 在 Windows 系统开发环境中,Podman Desktop 凭借强大的容器管理与 WSL-Linux 子系统集成能力备受开发者关注。 其中,podman-machine-default 是 Podman Desktop 安装后自带的默认 WSL-Fedora 子系统,支持与显卡通信&am…...

python_BeautifulSoup提取html中的信息

目录 描述: 过程: step one 下载html网页到本地 step two 提取html信息 list_con soup.select(.list-con) [0] li_list list_con.find_all(li) a li.find(span).find(a) title a.get(title) url a.get(href) span li.find(span).find(spa…...

pcd2pgm的launch文件实现

1.新建工作空间和克隆代码 mkdir -p pcd2pgm_launch/src && cd pcd2pgm_launch/src git clone https://github.com/Hinson-A/pcd2pgm_package 2. 编译 cd .. catkin_make -j4 3.修改launch 在launch文件目录下,可以用gedit 打开launch文件&#xff0c…...

Vue里面elementUi-aside 和el-main不垂直排列

先说解决方法 main.js少导包 import element-ui/lib/theme-chalk/index.css; //加入此行即可 问题复现 排查了一个小时终于找出来问题了,建议导包去看官方的文档,作者就是因为看了别人的导包流程导致的问题 导包官网地址Element UI导包快速入门...

论文阅读:2024 ACL ArtPrompt: ASCII Art-based Jailbreak Attacks against Aligned LLMs

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Artprompt: Ascii art-based jailbreak attacks against aligned llms https://www.doubao.com/chat/3846685176618754 https://arxiv.org/pdf/2402.11753 https://github…...

项目maven版本不一致 导致无法下载

路程:打开一个新项目发现,maven加载不了 报错: Error running ‘dataManage [clean]’ No valid Maven installation found. Either set the home directory in the configuration dialog or set the M2_HOME environment variable on your s…...

论文阅读:2024 NeurIPS Group Robust Preference Optimization in Reward-free RLHF

Group Robust Preference Optimization in Reward-free RLHF https://www.doubao.com/chat/3870738843518978 https://arxiv.org/pdf/2405.20304 速览 研究动机 传统RLHF忽视群体偏好差异,导致模型对少数群体表现不佳,需提升群体鲁棒性。研究问题 如…...

数据可视化平台产品介绍及功能特色

数据可视化平台是一款适用于高校教学和各领域企业的零门槛可视化工具,能够解决高校数据分析与可视化类课程教学、实训问题。平台通过浏览器即可访问,无需安装客户端。平台内置公式编辑器与指标构建器,学生可通过四则运算、分组聚合等方式衍生…...

MySQL索引优化、SQL分析与运行原理 - Java架构师面试实战

MySQL索引优化、SQL分析与运行原理 - Java架构师面试实战 第一轮提问 面试官:马架构,请问您对MySQL的B树索引有什么理解? 马架构:B树是一种平衡多路查找树,所有的数据节点都存储在叶子节点上。相比于B树&#xff0c…...

C++学习:六个月从基础到就业——STL:函数对象与适配器

C学习:六个月从基础到就业——STL:函数对象与适配器 本文是我C学习之旅系列的第二十九篇技术文章,也是第二阶段"C进阶特性"的第八篇,主要介绍C STL中的函数对象与适配器。查看完整系列目录了解更多内容。 引言 在前面的…...

Linux基础篇、第四章_02磁盘及分区管理fdisk 和 gdisk

题目:Linux 磁盘及分区管理 版本号: 1.0,0 作者: 老王要学习 日期: 2025.04.25 适用环境: Centos7 文档说明 本教程适用于 Centos7 环境,详细介绍 Linux 磁盘及分区管理操作。包含虚拟机添加磁盘的关机与开机添加方法、MBR 和 GPT 两种分区方式特点、…...

火山云的市场竞争

火山云是字节跳动旗下的云计算服务,对吧?那它的竞争对手应该包括国内外的大型云服务提供商。首先,国际市场上,像AWS、Azure、Google Cloud这些巨头肯定是大头。国内的话,阿里云、腾讯云、华为云这些应该都是主要的竞争…...

创建型设计模式之:简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式

创建型设计模式之:简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式 (一)简单工厂模式 简单工厂模式将对象的实例化过程封装到一个工厂类中,根据输入的条件创建不同类型的对象。 角色划分: 抽象产品…...

【Linux内核设计与实现】第三章——进程管理01

文章目录 1. 引言2. 进程&线程——概念3. 进程控制块/进程描述符(PCB)4. 进程内核栈(Kernel Stack)4.1. 进程内核栈的定义4.2. thread_info 体系结构相关进程描述4.3. 定位进程描述符(task_struct)和内核栈以及内核栈指针的问题 5. 进程 ID&#xff…...

正大模型视角下的市场结构判断逻辑

正大模型视角下的市场结构判断逻辑 在多数交易策略中,结构识别往往先于方向判断。以正大的数据研判风格为例,其核心逻辑是:价格行为不能孤立解读,必须结合时间与成交效率来判断当前结构的有效性。 例如,一个上涨过程&…...

4.25学习——文件上传之00截断

继昨天学习的基础文件上传内容,进一步学习文件上传的绕过方式 00截断绕过 原理:00截断是操作系统层的漏洞,由于操作系统是C语言或汇编语言编写的,这两种语言在定义字符串时,都是以\0(即0x00)作…...

黑马Redis(三)黑马点评项目

优惠卷秒杀 一、全局唯一ID 基于Redis实现全局唯一ID的策略: Component RequiredArgsConstructor public class RedisIdWorker {private static final Long BEGIN_TIMESTAMP1713916800L;private static final int COUNT_BITS 32;Resourceprivate final StringRed…...

dedecms织梦arclist标签noflag属性过滤多个参数

织梦dedecms系统arclist标签noflag属性默认是只能过滤一个参数,比如过滤推荐是noflagc,过滤有图片的文章是noflagc,在模板制作过程中,有时候我们为了seo和避免重复,需要过滤多个参数。今天小编就来跟大家讲讲织梦dedec…...

Jira、PingCode、Redmine等18款缺陷管理工具对比评测

本文主要介绍了以下:1. PingCode; 2. Worktile; 3. Jira; 4. Bugzilla; 5. TAPD; 6. 码云; 7. Redmine; 8. Trac; 9. 蓝鲸智云; 10. 阿里云效等等18款缺陷管理工具。 在现代软件开发和项目管理中,缺陷管理工具扮演着至关重要的角色。随着企业对软件质量的…...

京东以图搜图(拍立淘)API接口返回参数详解

京东以图搜图(拍立淘)API接口的返回参数通常以结构化JSON格式呈现,涵盖商品基础信息、相似度评分、库存状态及扩展字段,以下为关键参数详解及使用建议: 一、核心返回参数解析 状态标识类 status:请求状态…...

LSTM+KNN - 多元数据异常检测 !

大家好!我是我不是小 upper~ 今天想和大家分享一个超实用的案例:如何通过 LSTM 与 KNN 实现多元数据异常检测。 想象一下,在工厂的智能化监控场景中,各类传感器实时采集着温度、湿度、压力等海量数据。我们的目标,就是从中精准识别出设备潜在故障等异常情况。 LSTM 作为时…...

OpenHarmony之电源管理子系统公共事件定义

OpenHarmony之电源管理子系统公共事件定义 电源管理子系统面向应用发布如下系统公共事件,应用如需订阅系统公共事件,请参考公共事件接口文档。 COMMON_EVENT_BATTERY_CHANGED 表示电池充电状态、电平和其他信息发生变化的公共事件的动作。 值&#x…...

angular 实现可编辑可选择复制的表格

这个实现的核心就是ag-grid 当然有类似的库就不必多说&#xff0c;React, Vue和纯h5类似。简单贴一下代码 1.首先是h5部分&#xff0c;就一个id为supply-chain-material-grid-table的div&#xff0c;记住要设置高度 <div class"dki-supply-chain-page-body">…...

组织用户数统计实现

# 完整的组织用户数统计实现 完整的组织用户数统计实现&#xff0c;包括模拟SQL查询、完整的Java代码实现以及详细解释。 ## 1. 模拟SQL查询 假设我们有一个组织表(organization)和用户表(user)&#xff0c;以下是模拟查询SQL&#xff1a; sql -- 获取各组织及其用户数量&a…...

天机学堂day10作业,完善兑换优惠券功能

UserCouponServiceImpl /*** 兑换码兑换优惠券* param code*/TransactionalOverridepublic void exchangeCoupon(String code) {//1、校验code是否为空if (StringUtils.isBlank(code)) {throw new BadRequestException("非法参数&#xff01;");}//2、解析兑换码&…...

Python编程的真谛:超越语法,理解编程本质

你是否也曾陷入这样的误区&#xff1a;学了无数的 Python 语法、刷了几十套题&#xff0c;写起代码却仍然卡顿、举步维艰&#xff1f;这时候你才发现&#xff0c;真正阻碍进步的&#xff0c;从不是语法&#xff0c;而是你对“编程本质”的理解。 如果你只是死记硬背Python的语…...

C语言 函数补充

目录 static和extern函数 1.static和extern函数 static和extern都是C语言中的关键字 static 是 静态的 的意思&#xff0c;可以用来: - 修饰局部变量- 修饰全局变量- 修饰函数 extern 是用来声明外部符号的。 在讲解 static 和 extern 之前再讲一下: 作用域和生命周期。 …...

【AI图像创作变现】04实操路径—插图/绘本/创意图集

引言 如果说头像是“一个角色的起点”&#xff0c;那么插图、绘本和图集就是“这个角色能走多远”。相比于头像这种单图任务&#xff0c;插图类创作更强调批量性、叙事性与风格统一性&#xff0c;它既可以承载故事&#xff0c;也可以构成一套完整的内容产品结构。 这类任务特…...

Lesar: 面向 Lustre/Scade 语言的形式化模型检查工具

在《同步反应式系统》的第一课中&#xff0c;介绍了同步数据流语言 Lustre 生态中的形式化模型检查器 Lesar 的用法。Lesar 可对 lustre v4 语言以及 Scade 语言中部分数据流核心特性进行模型检查。 Lesar 介绍 Lesar 是 Verimag 研发维护的形式化方法模型检查工具。该工具的理…...