1. 源码下载安装软件
1.1. 概念
源码文件:程序编写者使用C或C++等语言编写的原始代码文本文件
源码文件使用.tar.gz或.tar.bz2打包成压缩文件
1.2. 特点
源码包可移植性好,与待安装软件的工作环境依赖性不大
由于有编译过程,其代码运行效率较高,是针对当前使用者环境的"量体裁衣"
安装功能可以定制,可以选择需要的功能进行安装
卸载方便,只需删除对应安装目录即可,没有Windows"注册表"的概念
安装过程较为麻烦
1.3. 安装过程
下载解压缩源码压缩包
分析安装软件环境
编译软件
安装软件
1.4. 例:安装Apache源码包
1.4.1. 准备工作
安装必备的编译软件
[root@server ~]# yum install gcc gcc-c++ -y
1.4.2. 下载apache源码包
[root@server ~]# wget https://dlcdn.apache.org/httpd/httpd-2.4.57.tar.gz
1.4.3. 解压缩
[root@server ~]# tar xzvf httpd-2.4.57.tar.gz
[root@server ~]# cd httpd-2.4.57
1.4.4. 安装环境分析
软件包目录中有configure可执行文件,用于对安装环境进行测试、检测所需库文件、工具文件是否存在、 检测依赖关系、编译器汇编器连接器的检查
执行方式:./configure
[root@server httpd-2.4.57]# ./configure
# 提示缺少apr软件,则安装
[root@server httpd-2.4.57]# yum install apr* -y
[root@server httpd-2.4.57]# ./configure # 重新检测
# 提示缺少pcre软件,下载安装
[root@server httpd-2.4.57]# yum install pcre* -y
[root@server httpd-2.4.57]# ./configure
1.4.5. 编译软件
作用:安装./configure命令生成的Makefile文件中记录的信息进行编译,生成二进制安装文件
格式:make
注意:make过程中若报错,需要查看提示信息,根据信息修改,一般为缺少头文件等问题
[root@server httpd-2.4.57]# make
# 提示缺少redhat-rpm-config软件包
[root@server httpd-2.4.57]# yum install redhat-rpm-config
[root@server httpd-2.4.57]# make
1.4.6. 安装软件
根据make命令生成的二进制安装文件,进行软件安装,默认安装目录:usr/local或者/usr/loacl/bin目录下
方法:make install
[root@server httpd-2.4.57]# make install
注意:也可以使用符号连接多条语句
./configure && make && make install
2. RPM管理工具
2.1. 概念
2.1.1. RPM
RPM(Redhat Package Manager)由Red Hat公司提出的一种软件包管理标准
是Linux各发行版中应用最广泛的软件包格式之一(还有debian的发行版deb安装包)。
产生原因:软件制作者在其工作环境下将软件编译完毕后再进行发布,以此减少安装编译时间,要求:软 件安装环境与编译时的环境要相同
2.1.2. RPM安装软件要求
软件安装环境必须与打包软件环境一致
必须满足软件依赖性
软件卸载时必须小心,最底层软件不能先卸载
2.1.3. rpm软件包命名格式
含义:软件名-版本号-发行号.操作系统版本.硬件平台的类型.rpm
如:zsh-5.0.2-14.el7.x86_64.rpm
2.1.4. rpm包相关网站
2.2. rpm软件安装
2.2.1. 格式
rpm -参数 软件包名
2.2.2. 参数
|---------------|-----------------|
| 参数 | 说明 |
| -i, --install | 安装软件包 |
| --nodeps | 不验证软件包依赖 |
| --force | 安装时提示已安装则重新覆盖安装 |
| -v, --verbose | 提供更多的详细信息输出 |
| -U | 软件包升级 |
| -e | 软件包卸载 |
2.2.3. 安装过程:
读取PRM软件包头部数据,进行软件依赖性查询
若满足条件则安装否则安装失败
2.3. 示例
2.3.1. 安装nginx
[root@server ~]# wget http://nginx.org/packages/rhel/9/x86_64/RPMS/nginx-1.24.0
1.el9.ngx.x86_64.rpm
[root@server ~]# rpm -ivh nginx-1.24.0-1.el9.ngx.x86_64.rpm
2.3.2. 安装qq
[root@server ~]# cd /
[root@server /]# wget https://dldir1.qq.com/qqfile/qq/QQNT/2355235c/linuxqq_3.1.1
11223_x86_64.rpm
[root@server /]# rpm -ivh linuxqq_3.1.1-11223_x86_64.rpm
错误:依赖检测失败:
libXScrnSaver 被 linuxqq-3.1.1_11223-1.x86_64 需要
[root@server /]# yum install libXScrnSaver
[root@server /]# rpm -ivh linuxqq_3.1.1-11223_x86_64.rpm
2.3.3. 直接下载并安装wps
[root@server /]# rpm -ivh https://wps-linux
personal.wpscdn.cn/wps/download/ep/Linux2019/11698/wps-office-11.1.0.11698
1.x86_64.rpm
2.3.4. 卸载
[root@server /]# rpm -evh tree
2.4. rpm查询功能
2.4.1. 格式
rpm --q 包名
# -q常与下面参数组合使用
|----|--------------------|
| 参数 | 说明 |
| -a | 查询所有已安装的软件包 |
| -l | 显示已安装软件包的相关文件列表和信息 |
| -f | 查询文件所属软件包 |
| -i | 显示已经安装的rpm软件包信息 |
2.4.2. 示例
# 查询某个包有没有安装(包名不能写错)
[root@server ~]# rpm -q httpd
# 查询所有已经安装的包
[root@server ~]# rpm -qa
# 查询安装该包后会产生哪些文件
[root@server /]# rpm -ql gcc
#查询该文件由哪个软件包产生
[root@server /]# rpm -qf /usr/bin/ls
coreutils-8.30-12.el8.x86_64
3. YUM/DNF管理工具
3.1. 概念
3.1.1. YUM
YUM (Yellow dog Updater,Modified)
RHEL8中默认使用的软件批量管理工具由原版本的yum换成了速度更快的dnf(DNF = Dandified YUM), 原有的yum命令仅为dnf的软链接,当然依旧可以使用。
[root@server /]# ll `which yum`
lrwxrwxrwx. 1 root root 5 9月 15 2022 /usr/bin/yum -> dnf-3
3.1.2. YUM/DNF 功能
在线下载、 安装、 卸载、 升级rpm软件包
自动查找并解决rpm包之间的依赖关系,一次性安装所有具有依赖关系的rpm包,而无需管理员逐个、 手 工地去安装每一个rpm包
3.1.3. 工作原理
将编译好的软件放置在YUM服务器中,并将这些软件的依赖性等信息记录下来形成表格组成数据库
用户安装软件时会向网络中的YUM服务器下载对应表格并与本机RPM数据库进行比较,最后一同下载全部 软件进行安装,自动解决依赖性
YUM软件仓库:记录软件依赖性等信息的数据库

系统会去读取 /etc/yum.repos.d/ 目录下的 .repo 结尾的文件,从该文件中读取以下内容实现装包:
包含各种rpm安装文件的软件仓库(rhel8有两个仓库,rhel7只有一个仓库)
BaseOS存储库:提供一套核心的底层操作系统功能,为基础软件安装库
AppStream存储库:包括额外的用户空间应用程序、运行时语言和数据库
3.2. 命令
# 查看包、包组相关信息
yum repolist [all] # 查看系统中yum资源库配置信息
yum list all # 列出仓库里所有可安装的软件包
yum list installed [包名] # 列出己经安装的所有的或指定的rpm包(包名中可使用匹配符)
yum info 包名 # 查看指定软件包的详细信息
yum grouplist # 查看仓库里而所有包组
yum groupinfo 包组名 #查看指定包组里而的详细信息
# 安装、更新包和包组
yum install [-y] 包名 # 安装指定的软件包,-y则在工作过程中需要使用者响应, 这个选个参数可以直接
回答yes
yum update [-y] 包名 # 升级指定的软件包或主机中所有已安装的软件包
yum groupinstall 包组名 # 安装指定包组里面的所有包
# 卸载软件包
yum remove [-y] 包名 # 卸载已经安装在系统中的指定的软件包
# 搜索文件由哪个包产生
yum provides 文件名 # 查找指定的文件属于哪个包
yum whatprovides /etc/fstab # 查看这个文件是由那个包提供的
# 模糊搜索包名
yum search 模糊包名 # 查看模糊包名的软件包
# 清空缓存
yum clean packages all # 清除下载到本机的指定的软件包或所有软件包的yum源缓存
3.3. 配置yum源
3.3.1. 建立本地源
# 将本地光盘挂载至本地目录/media下
[root@server /]# mount /dev/cdrom /media
mount: /media: WARNING: source write-protected, mounted read-only.
# 注意有2个yum源
[root@server /]# cd /media/
[root@server media]# ls
AppStream EFI extra_files.json images
redhat-release
BaseOS
EULA GPL
# 移动到yum源配置文件路径
[root@server media]# cd /etc/yum.repos.d
[root@server yum.repos.d]# ls
CentOS-9-Stream.repo redhat.repo
media.repo
isolinux RPM-GPG-KEY-redhat-beta
# 备份已存在yum源配置文件,使其失效
[root@server yum.repos.d]# mv CentOS-9-Stream.repo CentOS-9-Stream.repo.back
[root@server yum.repos.d]# mv redhat.repo redhat.repo.back
[root@server yum.repos.d]# ls
CentOS-9-Stream.repo.back redhat.repo.back
# 新建本地yum源配置文件
[root@server yum.repos.d]# vim dvd.repo
[BaseOS]
name=BaseOS
baseurl=file:///media/BaseOS
gpgcheck=0
[Appstream]
name=Appstream
baseurl=file:///media/AppStream
gpgcheck=0
# 重建缓存
[root@server yum.repos.d]# yum makecache
[root@server yum.repos.d]# yum repolist
# 验证能否装包成功
[root@master ~]# yum install tree -y
3.3.2. 建立网络源
Redhat9暂时无公开的网络源,可以使用Centos9的yum源
使用xftp将配置文件上传到/etc/yum.repos.d目录
重建缓存生效
4. 管理进程
4.1. 概念
4.1.1. 程序、进程、线程
程序: 二进制文件,文件存储在磁盘中,例如/usr/bin/目录下
进程:进程是已启动的可执行程序的运行实例 进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程
线程:是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。
一条 线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任 务。 一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有
线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才能被执 行。
4.1.2. 进程分类

4.2. 查看进程
4.2.1. ps命令
作用:ps显示某个时间点的程序运行情况
格式
ps -参数
参数
-a :显示所有用户的进程
-u :显示用户名和启动时间
-x :显示 没有控制终端的进程
-e :显示所有进程,包括没有控制终端的进程
-l :长格式显示
-w:宽行显示,可以使用多个 w 进行加宽显示
-f:做一个更完整的输
4.2.2. top命令
格式
top [-d 数字] | [-bnp]
参数
-d:后面可以接秒数,就是整个进程界面更新的秒数,默认是5秒
-b:以批次的方式执行top,还有更多的参数可用。通常会搭配数据流重定向来将批处理的结果输出为文件。
-n:与-b搭配,进行几次top的输出结果
-i:不显示闲置或者僵死的进程信息
-c:显示进程的整个命令路径,而不是只显示命令名称
-s:使top命令在安全模式下运行,此时top的交互式指令被取消,避免潜在危险
-p:指定某些个PID来进行查
[root@localhost ~]# top -d 1
[root@localhost ~]# top -d 1 -p id
查看指定进程的动态信息
top的输出可以分为统计信息区和进程信息区两个部分,即前5行为统计信息区,后面为进程信息区。
注意:可以在RHEL8.5中安装epel-release源后安装htop,是top的升级版
4.3. kill命令
4.3.1. 作用
强制结束进程
4.3.2. 格式
kill 进程名/pid
killall 进程名/pid