4、一粒云二次封装与迁移 – 多系统安装测试

目录 运维

写好安装程序后,就可以进行多系统的安装测试了。准备了OpenEuler,AnolisOS,Debian10这3个发行版进行测试。

将package.tar.gz包与安装程序放在同一个路径下。

root@yliyun:/opt/yliyun# ls
 index	       node_modules   package-lock.json  ''$'\260\262''װ'$'\312''ֲ'$'\341''.html'
 index.js      package	      package.tar.gz	 ''$'\260\262''װ'$'\312''ֲ'$'\341''.md'
 install.log   package.json   script

执行

node index.js

1、OpenEuler

        _ ___   __             ___           _        _ _
  _   _| (_) \ / /   _ _ __   |_ _|_ __  ___| |_ __ _| | |
 | | | | | |\ V / | | | '_ \   | || '_ \/ __| __/ _` | | |
 | |_| | | | | || |_| | | | |  | || | | \__ \ || (_| | | |
  \__, |_|_| |_| \__,_|_| |_| |___|_| |_|___/\__\__,_|_|_|
  |___/

Server IP:                192.168.0.22
Server core number:       2
Installation path:        /opt/yliyun
Data packet:              /opt/yliyun/package.tar.gz
Packet verification:      dd8035ffaa09834becc6c1b1b5c92e24

✔ Data verification completed!!!
 gcc                                              [OK]
 g++                                              [NO]

首次安装提示缺失g++

yum install g++ make cmake autoconf tcl libaio tar -y

使用yum安装缺失的包。

        _ ___   __             ___           _        _ _
  _   _| (_) \ / /   _ _ __   |_ _|_ __  ___| |_ __ _| | |
 | | | | | |\ V / | | | '_ \   | || '_ \/ __| __/ _` | | |
 | |_| | | | | || |_| | | | |  | || | | \__ \ || (_| | | |
  \__, |_|_| |_| \__,_|_| |_| |___|_| |_|___/\__\__,_|_|_|
  |___/

Server IP:                192.168.0.22
Server core number:       2
Installation path:        /home/yliyun
Data packet:              /home/yliyun/package.tar.gz
Packet verification:      dd8035ffaa09834becc6c1b1b5c92e24


✔ Data verification completed!!!
 gcc                                              [OK]
 g++                                              [OK]
 make                                             [OK]
 cmake                                            [OK]
 autoconf                                         [OK]
 libaio.so.1                                      [OK]
 libnuma.so.1                                     [OK]
 libncurses.so.5                                  [NO]

libncurses.so.5没有通过。

在OpenEuler中没有找到libncurses.so.5只有libncurses.so.6
你可以从CentOS上拷贝一个libncurses.so.5,libtinfo.so.5到此系统的/usr/lib64目录下,或者将libncurses.so.6,libtinfo.so.6软连接为libncurses.so.5,libtinfo.so.5

注意: 这就是一个非常典型的动态链接库版本过低的问题,mysql5.6需要依赖ncurses5,这在CentOS7上是正常的,但到了基于CentOS8分支的系统,则不会在yum中携带这个ncurses5的包,而是换成了最新的ncurses6.3

ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5

进行链接。

✔ Data verification completed!!!
 gcc                                              [OK]
 g++                                              [OK]
 make                                             [OK]
 cmake                                            [OK]
 autoconf                                         [OK]
 libaio.so.1                                      [OK]
 libnuma.so.1                                     [OK]
 libncurses.so.5                                  [OK]
 libtinfo.so.5                                    [OK]
 tar                                              [OK]
 tcl                                              [OK]

顺利通过。

.....
Installation completed
yliyun {start|stop}
[root@openeuler yliyun]# yliyun start

出现yliyun {start|stop}则为安装完毕,使用yliyun start命令启动yliyun服务,yliyun stop来关闭yliyun服务。

2、AnolisOS

[root@localhost home]# ./yliyun
        _ ___   __             ___           _        _ _
  _   _| (_) \ / /   _ _ __   |_ _|_ __  ___| |_ __ _| | |
 | | | | | |\ V / | | | '_ \   | || '_ \/ __| __/ _` | | |
 | |_| | | | | || |_| | | | |  | || | | \__ \ || (_| | | |
  \__, |_|_| |_| \__,_|_| |_| |___|_| |_|___/\__\__,_|_|_|
  |___/

Server IP:                192.168.0.21192.168.122.1
Server core number:       2
Installation path:        /home
Data packet:              /home/package.tar.gz
Packet verification:      9c1bb239b369c9075dd24b6459006972


✔ Data verification completed!!!
 gcc                                              [NO]

首次进行依赖检测,发现连gcc也没有安装完成

yum install gcc gcc-g++ make cmake autoconf libaio tar tcl -y
✔ Data verification completed!!!
 gcc                                              [OK]
 g++                                              [OK]
 make                                             [OK]
 cmake                                            [OK]
 autoconf                                         [OK]
 libaio.so.1                                      [OK]
 libnuma.so.1                                     [OK]
 libncurses.so.5                                  [OK]
 libtinfo.so.5                                    [OK]
 tar                                              [OK]
 tcl                                              [OK]

AnolisOS与OpenEuler区别不大,都是基于CentOS开发。也许一个是基于CentOS7一个是基于CentOS8所以没有遇到OpenEuler中libncurses.so.5的问题。

3、Debian10

 

        _ ___   __             ___           _        _ _
  _   _| (_) \ / /   _ _ __   |_ _|_ __  ___| |_ __ _| | |
 | | | | | |\ V / | | | '_ \   | || '_ \/ __| __/ _` | | |
 | |_| | | | | || |_| | | | |  | || | | \__ \ || (_| | | |
  \__, |_|_| |_| \__,_|_| |_| |___|_| |_|___/\__\__,_|_|_|
  |___/

Server IP:                192.168.0.23
Server core number:       2
Installation path:        /home/yliyun
Data packet:              /home/yliyun/package.tar.gz
Packet verification:      65f07f9eee608d87da2a2b4ce12cb811


✔ Data verification completed!!!
 gcc                                              [NO]

安装依赖

apt install gcc g++ autoconf cmake make tcl libaio1 libnuma1 libncurses5 -y
root@debian:/home/yliyun# ./index
        _ ___   __             ___           _        _ _
  _   _| (_) \ / /   _ _ __   |_ _|_ __  ___| |_ __ _| | |
 | | | | | |\ V / | | | '_ \   | || '_ \/ __| __/ _` | | |
 | |_| | | | | || |_| | | | |  | || | | \__ \ || (_| | | |
  \__, |_|_| |_| \__,_|_| |_| |___|_| |_|___/\__\__,_|_|_|
  |___/

Server IP:                192.168.0.23
Server core number:       2
Installation path:        /home/yliyun
Data packet:              /home/yliyun/package.tar.gz
Packet verification:      65f07f9eee608d87da2a2b4ce12cb811


✔ Data verification completed!!!
 gcc                                              [OK]
 g++                                              [OK]
 make                                             [OK]
 cmake                                            [OK]
 autoconf                                         [OK]
 libaio.so.1                                      [OK]
 libnuma.so.1                                     [OK]
 libncurses.so.5                                  [OK]
 libtinfo.so.5                                    [OK]
 tar                                              [OK]
 tcl                                              [OK]
✔ Decompressing package...
✔ Create a yliyun directory structure
✔ Installing work
✔ Installing zlib
✔ Installing libfastcommon
✔ Installing fastdfs
✔ Create FastDFS configuration
✔ Installing redis
✔ Installing Openresty
✔ Create openresty configuration
✔ Installing Nodejs
✔ Installing pm2
✔ Installing common
✔ Installing plugins
✔ Installing mysql
✔ Mysql initialize
✔ Create startup file


Installation completed
yliyun {start|stop}

执行后直接一把过。

特别需要注意的就是,Debian10使用远程xterm连接时,环境变量可能会有问题。 请在./yliyun安装前,输入export PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin来临时设置变量

4、启动测试

root@debian:/home/yliyun# yliyun start
Starting MySQL
[ .k
vm.overcommit_memory = 1
Starting Redis server...
ngx_http_fastdfs_set pid=27898
[PM2] Applying action restartProcessId on app [app](ids: 0,3)
[PM2] Applying action restartProcessId on app [socket](ids: 1)
[PM2] [app](3) ✓
[PM2] [app](0) ✓
[PM2] Applying action restartProcessId on app [conv](ids: 2)
[PM2] [socket](1) ✓
[PM2] Applying action restartProcessId on app [update](ids: 4)
[PM2] [conv](2) ✓
[PM2] [update](4) ✓
┌──────────┬────┬─────────┬───────┬────────┬─────────┬────────┬───────┬───────────┬──────┬──────────┐
│ App name │ id │ mode    │ pid   │ status │ restart │ uptime │ cpu   │ mem       │ user │ watching │
├──────────┼────┼─────────┼───────┼────────┼─────────┼────────┼───────┼───────────┼──────┼──────────┤
│ app      │ 0  │ cluster │ 27930 │ online │ 0       │ 0s     │ 39.4% │ 35.7 MB   │ root │ disabled │
│ app      │ 3  │ cluster │ 27931 │ online │ 0       │ 0s     │ 36.4% │ 35.5 MB   │ root │ disabled │
│ conv     │ 2  │ cluster │ 27948 │ online │ 0       │ 0s     │ 0%    │ 30.1 MB   │ root │ disabled │
│ socket   │ 1  │ cluster │ 27932 │ online │ 0       │ 0s     │ 42.4% │ 35.3 MB   │ root │ disabled │
│ update   │ 4  │ cluster │ 27954 │ online │ 0       │ 0s     │ 0%    │ 28.9 MB   │ root │ disabled │
└──────────┴────┴─────────┴───────┴────────┴─────────┴────────┴───────┴───────────┴──────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app

启动成功后,找官方要新的授权,并覆盖原先的授权文件。

访问首页成功,说明nodejs和nginx都运行正常

后台查看服务状态,并测试上传下载和其它功能,没有问题就说明已安装成功。