Linux入门-软件安装和项目部署

YangeIT大约 36 分钟LinuxLinuxrpmyum防火墙开放端口环境变量

Linux入门-软件安装和项目部署

课程内容

  • 软件安装
  • 项目部署

基本网络知识

  1. 计算机要互相通信,必须要有ip地址
  2. 在网络中可以通过ip地址确定一台计算机在哪
  3. 域名会转换成ip
    • 浏览器地址栏输入http://www.nidongde.clubopen in new window
    • 系统到hosts文件中去找域名对应的ip,
      • 如果找到则直接访问该ip,通过http协议找对应主机的80端口对应的软件
      • 如果找不到则去找DNS服务器,做域名解析,将域名解析成ip地址
  4. 局域网内通过dhcp服务器获取ip地址和dns地址
  • 桥接模式: 使用你的真实网卡,相当于你的局域网中多了一台电脑
  • 仅主机模式: 通过虚拟网卡将消息转发给真机,真机再把消息发到外部局域网,虚拟机里面装的软件,外部机器访问不到
  • NAT模式:可以把虚拟机的端口映射到真机上,外部机器可以访问真机的ip和端口从而访问到虚拟机

1. 软件安装

1.1 软件安装方式

软件安装方式

在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下:

安装方式特点
二进制发布软件已经针对具体平台编译打包发布,只要解压,修改配置即可
rpm安装软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
yum安装实用一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题(安装过程需要联网)
源码编译安装发布项目软件以源码工程的形式发布,需要自己编译打包

1.2 安装JDK 1️⃣

安装JDK

接下来我们就通过二进制发布包形式来安装JDK第一种方式

JDK对应的二进制发布包,在课程资料中已经提供,如下:image-20210814174022881

JDK具体安装步骤如下:

1). 上传安装包

使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux

image-20210814180303278
image-20210814180303278

由于上述在进行文件上传时,选择的上传目录为根目录 /,上传完毕后,我们执行指令cd /切换到根目录下,查看上传的安装包。

image-20210814180702071
image-20210814180702071

课堂作业

🚩 1. Linux系统中,JDK如何配置环境变量?

1.3 安装Tomcat 2️⃣

安装Tomcat

1.3.1 Tomcat安装

Tomcat的安装和上述JDK的安装采用相同的方式,都是使用二进制发布包的形式进行安装,在我们的资料目录下,也已经准备了Tomcat的安装包:

image-20210814222911649
image-20210814222911649

1). 上传安装包

使用FinalShell自带的上传工具将Tomcat的二进制发布包上传到Linux(与前面上传JDK安装包步骤一致)。

image-20210814223436296
image-20210814223436296

注意

虽然上述讲解的两种方式,都可以停止Tomcat服务,但是,如果通过第一种方式停止不了tomcat了,这个时候,我们可以考虑使用第二种方式,强制杀死进程。

课堂作业

🚩 练习时长:10min

「JDK和TOMCAT安装 」目的

  • 熟悉linux下二进制安装方式
  • 熟悉JDK安装流程和进程查看指令

需求&效果

  • java -version 能正常输出版本
  • tomcat能正常访问

「JDK和TOMCAT安装 」步鄹

# 先检查是否有tomcat进程和java进程
ps -ef | grep tomcat
ps -ef | grep java
# 如果存在,说明已经安装和启动,可以直接使用
# 如果不存在,说明需要安装,否则tomcat无法访问

1.4 安装MySQL 3️⃣

安装MySQL

对于MySQL数据库的安装,我们将要使用前面讲解的第二种安装方式rpm进行安装方式二

RPM : 全称为 Red-Hat Package Manager,RPM软件包管理器open in new window ,是红帽Linux用于管理和安装软件的工具。

我们要通过rpm,进行MySQL数据库的安装,主要的步骤如下:

1). 检测当前系统是否安装过MySQL相关数据库

需要通过rpm相关指令,来查询当前系统中是否存在已安装的mysql软件包,执行指令如下:

rpm -qa							查询当前系统中安装的所有软件
rpm -qa | grep mysql			查询当前系统中安装的名称带mysql的软件
rpm -qa | grep mariadb			查询当前系统中安装的名称带mariadb的软件

 
 

通过rpm -qa 查询到系统通过rpm安装的所有软件,太多了,不方便查看,所以我们可以通过管道符 | 配合着grep 进行过滤查询。

image-20210815002209121
image-20210815002209121

通过查询,我们发现在当前系统中存在mariadb数据库open in new window,是CentOS7中自带的 ,而这个数据库和MySQL数据库是冲突的 ,所以要想保证MySQL成功安装,需要卸载mariadb数据库。

注意:linux卸载程序有多种方式,如下:

1.5 安装lrzsz 4️⃣ 🚀

安装lrzsz

lrzsz 是用于在Linux系统中文件上传下载的软件。大家可能会存在疑问,我们用finalShell图形化界面就可以很方便的完成上传下载,为什么还要使用这个软件来完成上传下载呢?实际上是这样的,Linux的远程连接工具有很多,而finalShell只是其中的一种,而还有很多的远程连接工具并没有上传下载的功能,这个时候就需要依赖于lrzsz这个软件了。

对于lrzsz的安装,我们需要通过来进行安装。这里,我们先对yum做一个简单介绍。

Yum: (Yellow dog Updater,Modified),是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以,并且一次安装所有依赖的软件包,

安装lrzsz的步骤如下:

1). 搜索lrzsz安装包

yum list lrzsz
image-20210815014811466
image-20210815014811466

yum拓展知识

1️⃣ 如果在不更改软件来源的情况下,是需要联网才能使用yum的,那么我们安装的软件是从哪儿下载的呢,这里就涉及到一个概念: yum源。

2️⃣ 我们可以通过一个指令,来检查当前的yum源

yum repolist

image-20210816192200749

​ 从图中,我们可以看到我们安装的 CentOS7 采用的是网易的163yum源。

3️⃣ 网络 yum 源配置文件位于 /etc/yum.repos.d/ 目录下,文件扩展名为"*.repo"

image-20210816193941094

​ 可以看到,该目录下有 7 个 yum 配置文件,通常情况下 CentOS-Base.repo 文件生效。

5️⃣ 添加阿里云yum源

  • A. 先通过 yum install wget ,安装wget命令

  • B. 备份默认的网易163的yum源,执行指令 :

    • 切换目录: cd /etc/yum.repos.d/
    • 创建备份目录: mkdir bak
    • 移动现有的yum源文件到bak: mv *.repo bak/
  • C. 下载阿里云的yum源

  • D. 执行命令,重新生成cache

    • yum clean all

    • yum makecache

  • E. 再次查看yum源

image-20210816214230609

​ 之后,我们通过yum指令安装软件,就是从阿里云下载的。

1.6 安装redis 5️⃣

前言

1)在 Linux 中安装 Redis

在 Linux 系统安装 Redis 步骤:

  1. 将 Redis 安装包上传到 Linux
  2. 解压安装包,命令:tar -zxvf redis-4.0.0.tar.gz -C /usr/local
  3. 安装 Redis 的依赖环境 gcc,命令:yum install gcc-c++
  4. 进入/usr/local/redis-4.0.0,进行编译,命令:make
  5. 进入 redis 的 src 目录进行安装,命令:make install

安装后重点文件说明:

  • /usr/local/redis-4.0.0/src/redis-server:Redis 服务启动脚本
  • /usr/local/redis-4.0.0/src/redis-cli:Redis 客户端脚本
  • /usr/local/redis-4.0.0/redis.conf:Redis 配置文件

点击查看linux安装redis gif动图open in new window🎥

2. 项目部署

之前我们讲解Linux操作系统时,就提到,我们服务端开发工程师学习Linux系统的目的就是将来我们开发的项目绝大部分情况下都需要部署在Linux系统中。

那么在本章节,我们将通过两种方式,来演示项目部署,分别是:手动部署项目 和 基于shell脚本自动部署。

2.1 手动部署项目

手动部署项目

open in new window
1️⃣ 1). 在IDEA中开发SpringBoot项目并打成jar包

项目是一个很简单的springboot项目(可以自己开发一个,也可以直接导入git仓库中的代码:https://gitee.com/huhu520/springbootdemo.git或者直接下载jar包open in new window,结构如下:

可以在本地的idea中先启动当前的demo工程,然后访问一下,看看工程是否正常访问。

执行package指令,进行打包操作,将当前的springboot项目,打成一个jar包。

2.2 基于Shell脚本自动部署 🍐 ✏️

基于Shell脚本自动部署

前面介绍的项目部署是手动部署,也就是部署过程中的每一步操作都需要我们手动操作。

接下来,我们需要再讲解一下项目的自动部署,从而来简化项目部署的操作,那么我们先来整体上了解一下项目自动部署的流程及操作步骤。

image-20210815143955229

操作步骤如下: 👇

  1. 在Gitee上创建远程仓库,并将本地的项目代码推送到远程仓库中
  2. 在Linux中安装Git,克隆代码
  3. 在Linux中安装maven
  4. 编写Shell脚本(拉取代码、编译、打包、启动)
  5. 为用户授予执行Shell脚本的权限
  6. 执行Shell脚本
1️⃣ 推送代码到远程

这部分操作,大家只需要参考之前讲解的Git,来完成helloworld工程代码推送即可。

A. 创建远程仓库

image-20210815145550077

B. 将idea中的代码提交并推送到远程仓库

image-20210815145253347
image-20210815145253347
image-20210815145432883

记得设置仓库为公开 ⚠️

3.nginx

学习Nginx