1fb726d48Sopenharmony_ci# SmartPerf 编译部署指导文档
2fb726d48Sopenharmony_ci
3fb726d48Sopenharmony_ci
4fb726d48Sopenharmony_ci## 编译环境搭建
5fb726d48Sopenharmony_ci注意:在linux编译环境安装时以root或者其他 sudo 用户身份运行下面的命令。
6fb726d48Sopenharmony_ci### node 环境安装
7fb726d48Sopenharmony_ci##### 下载Node js安装包(windows推荐, linux跳过此步骤)
8fb726d48Sopenharmony_ci从网站下载node js安装包 https://nodejs.org/en/download/current/9fb726d48Sopenharmony_ci##### 安装nodejs
10fb726d48Sopenharmony_ci- ubuntu 20.04 与Debian 11系统中,直接用apt-get安装,先切换到 root用户下,命令如下(node 版本 >= 16.15.1  npm 版本 >= 8.13.2)
11fb726d48Sopenharmony_ci```
12fb726d48Sopenharmony_ci        sudo su
13fb726d48Sopenharmony_ci        apt-get update 
14fb726d48Sopenharmony_ci        apt-get install nodejs npm
15fb726d48Sopenharmony_ci```
16fb726d48Sopenharmony_ci![](./src/figures/deploy/install_node.png)
17fb726d48Sopenharmony_ci
18fb726d48Sopenharmony_ci
19fb726d48Sopenharmony_ci- centos 系统中使用yum安装,先切换到root用户下,命令如下:
20fb726d48Sopenharmony_ci```
21fb726d48Sopenharmony_ci        sudo su 
22fb726d48Sopenharmony_ci        sudo yum -y install nodejs npm 
23fb726d48Sopenharmony_ci```
24fb726d48Sopenharmony_ci![](./src/figures/deploy/yum_install_node.png)
25fb726d48Sopenharmony_ci
26fb726d48Sopenharmony_ci- windows系统中, 用安装包一路next即可
27fb726d48Sopenharmony_ci
28fb726d48Sopenharmony_ci           
29fb726d48Sopenharmony_ci- 安装完成后运行检查是否安装成功
30fb726d48Sopenharmony_ci```
31fb726d48Sopenharmony_ci        node -v 
32fb726d48Sopenharmony_ci        npm -v
33fb726d48Sopenharmony_ci```
34fb726d48Sopenharmony_ci![](./src/figures/deploy/check_version.png)
35fb726d48Sopenharmony_ci
36fb726d48Sopenharmony_ci  出现版本号就代表安装成功了。
37fb726d48Sopenharmony_ci
38fb726d48Sopenharmony_ci##### 更换npm源
39fb726d48Sopenharmony_ci```
40fb726d48Sopenharmony_ci        npm config set registry http://registry.npmmirror.com
41fb726d48Sopenharmony_ci```   
42fb726d48Sopenharmony_ci
43fb726d48Sopenharmony_ci##### 安装tsc typeScript 编译器
44fb726d48Sopenharmony_ci直接使用npm 安装运行命令。
45fb726d48Sopenharmony_ci```
46fb726d48Sopenharmony_ci        npm install -g typescript
47fb726d48Sopenharmony_ci        tsc -v
48fb726d48Sopenharmony_ci```
49fb726d48Sopenharmony_ci 
50fb726d48Sopenharmony_ci 验证安装完成:
51fb726d48Sopenharmony_ci![](./src/figures/deploy/install_tsc.png)
52fb726d48Sopenharmony_ci
53fb726d48Sopenharmony_ci### go 编译环境安装
54fb726d48Sopenharmony_ci- ubuntu 环境下直接使用apt安装,以root用户执行(go 版本 >= 1.13.8 )
55fb726d48Sopenharmony_ci```
56fb726d48Sopenharmony_ci        apt-get install golang-go
57fb726d48Sopenharmony_ci```
58fb726d48Sopenharmony_ci![](./src/figures/deploy/install_golang.png)
59fb726d48Sopenharmony_ci
60fb726d48Sopenharmony_ci- centos系统中使用yum安装,先切换到root用户下,命令如下:
61fb726d48Sopenharmony_ci
62fb726d48Sopenharmony_ci```
63fb726d48Sopenharmony_ci        sudo su
64fb726d48Sopenharmony_ci        sudo yum -y install go 
65fb726d48Sopenharmony_ci```
66fb726d48Sopenharmony_ci![](./src/figures/deploy/yum_install_go.png)
67fb726d48Sopenharmony_ci
68fb726d48Sopenharmony_ci- windows 系统下 从官网下载安装包, 一路next 完成 安装即可
69fb726d48Sopenharmony_ci           
70fb726d48Sopenharmony_ci- 安装完成后 命令行运行验证是否安装成功
71fb726d48Sopenharmony_ci
72fb726d48Sopenharmony_ci```
73fb726d48Sopenharmony_ci        go version 
74fb726d48Sopenharmony_ci``` 
75fb726d48Sopenharmony_ci## 项目编译
76fb726d48Sopenharmony_ci#### 先下载sql.js的二进制包
77fb726d48Sopenharmony_ci从如下 https://github.com/sql-js/sql.js/releases/download/v1.6.2/sqljs-all.zip 获取到sql.js的二进制包。
78fb726d48Sopenharmony_ci将压缩包解压后,将文件放置到项目third-party 目录下,如果项目中无third-party目录,先创建third-party目录
79fb726d48Sopenharmony_ci
80fb726d48Sopenharmony_ci        
81fb726d48Sopenharmony_ci![](./src/figures/deploy/third_party.png)
82fb726d48Sopenharmony_ci
83fb726d48Sopenharmony_ci#### 先编译获取trace_streamer 的二进制包
84fb726d48Sopenharmony_ci参照:smartperf/trace_streamer/compile_trace_streamer.md 编译出wasm版本的二进制文件。
85fb726d48Sopenharmony_ci将获取到二进制文件放入到项目bin目录下,如果项目目录中无bin目录 先创建bin目录。
86fb726d48Sopenharmony_ci然后将trace_streamer的二进制文件放入bin目录中。
87fb726d48Sopenharmony_ci	   
88fb726d48Sopenharmony_ci![](./src/figures/deploy/bin_files.png)
89fb726d48Sopenharmony_ci
90fb726d48Sopenharmony_ci
91fb726d48Sopenharmony_ci#### 代码编译(依赖于上面node环境 和 go环境)
92fb726d48Sopenharmony_ci在项目目录安装项目依赖:
93fb726d48Sopenharmony_ci```
94fb726d48Sopenharmony_ci        npm install 
95fb726d48Sopenharmony_ci```
96fb726d48Sopenharmony_ci在项目目录下运行命令:
97fb726d48Sopenharmony_ci```
98fb726d48Sopenharmony_ci        npm run build 
99fb726d48Sopenharmony_ci```                
100fb726d48Sopenharmony_ci![](./src/figures/deploy/compile.png)
101fb726d48Sopenharmony_ci    编译成功后会有main 可执行文件生成。
102fb726d48Sopenharmony_ci    
103fb726d48Sopenharmony_ci## 项目部署
104fb726d48Sopenharmony_ci直接运行 ./main 可执行程序,完成项目的部署。
105fb726d48Sopenharmony_ci![](./src/figures/deploy/run_main.png)
106fb726d48Sopenharmony_ci ## 访问项目     
107fb726d48Sopenharmony_ci在浏览器上打开 https://[部署机器ip地址]:9000/application/ 
108fb726d48Sopenharmony_ci!!! 注意一定是https。
109fb726d48Sopenharmony_ci
110fb726d48Sopenharmony_ci![](./src/figures/deploy/visit_website.png)
111fb726d48Sopenharmony_ci
112fb726d48Sopenharmony_ci 备注:如果未出现如图所示网页,而是显示无法访问此网站。
113fb726d48Sopenharmony_ci可以在window cmd 里执行telnet [部署机器ip地址] 9000。
114fb726d48Sopenharmony_ci如果显示端口连接失败,可能是防火墙未对9000 端口放开。