七、软件管理体系

发布时间 2023-05-26 02:48:35作者: lichengbo

软件管理体系

  • 目标:熟练掌握Linux安装软件方式(对软件的增删改查)
  • 难点:
    • 命令选项较多,建议整体记忆。
    • 软件仓库的搭建与使用
    • 编译安装

1. 概述与Linux安装软件方式

软件安装方式 简介 特点????? 优势??? 缺点 应用场景
rpm软件包安装 rpm是Linux软件包格式,
安装后只需要简单的加工就行了
但是,没有相关依赖,就需要自己解决
自己下载rpm包,自己安装,
缺少依赖自己手动解决
只要你有rpm包
通过rpm命令安装
缺少依赖,只能手动解决依赖 yum源没有自,自己下载好了rpm可以用rpm命令安装
安装的时候推荐使用yum localinstall
rpm命令一般用于查找软件安装没有,软件包内容
yum命令安装 相当于自动给你下载解决 yum安装软件,
替我们下载rpm包,
替我们安装rpm包,
缺少依赖yum替我们下载
不需要关系依赖
yum自己检查,自动下载与安装依赖
依赖网络(可以通过自己搭建yum仓库解决) 必备,大部分软件通过yum安装
有的是yum源中的软件包版本较低
如果需要新版本尝试查找rpm包,二进制,源码
编译安装 可以自己定义安装 编译:源代码---->命令(二进制文件)
编译安装三部曲:
./configure(配置)--->make(编译)--->make install(安装)
好处:可以自定义功能,
这个软件没有rpm包或yum安装不了
步骤繁琐
缺少的依赖需要自己解决
大型软件时间长
定制化功能(增减)
新版本
企业应用:先编译安装,编译安装内容打rpm包,搭建yum仓库(私有)
二进制包 绿色软件(解压即用) 别人配置好的,我们只需要解压,简单配置,即可使用 方便 不是所有软件都有,只有部分服务才有 方便,但不是所有软件都有。

2. 软件管理体系之rpm命令

  • 目标:熟练通过rpm命令对系统软件进行(查/增)
  • 小知识点:rpm包是Linux(红帽系列)软件包的格式,类似与windows.exe格式
  • rpm命令,管理软件包
rpm命令 选项
增加(安装) -ivh -i install安装
-v 显示过程
-h 显示过程
查询 -qa -q query 查询
-a all所有
-ql -l 显示软件包的内容
-qf 检查命令属于哪个软件包
-aV 检查系统软件包中文件或命令与刚刚安装的时候是否变化
删除 -e(erase) 删除
修改(升级) -Uvh 升级(如果软件包存在侧会升级,如果软件包不存在则直接安装)
其他 --nodeps 忽略依赖进行安装或删除

2.1 增加软件

  • 安装或升级

  • 准备使用光盘里面的软件包

  • 1️⃣

  • 2️⃣挂载光盘
/dev/cdrom
检查/mnt是否被挂载,如果挂载,umount /mnt卸载下
mount  /dev/cdrom  /mnt

[root@lichengbo-nb ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only  #装载:/dev/sr0受写保护,装载只读
[root@lichengbo-nb ~]# df -h
Filesystem                                Size  Used Avail Use% Mounted on
devtmpfs                                  2.0G     0  2.0G   0% /dev
tmpfs                                     2.0G     0  2.0G   0% /dev/shm
tmpfs                                     2.0G   12M  2.0G   1% /run
tmpfs                                     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/centos_lichengbo--xuexi-root   50G  7.0G   44G  14% /
/dev/mapper/centos_lichengbo--xuexi-home   47G   33M   47G   1% /home
/dev/sda1                                1014M  138M  877M  14% /boot
tmpfs                                     394M     0  394M   0% /run/user/0
/dev/sr0                                  4.4G  4.4G     0 100% /mnt

案例01 安装一个软件包tomcat-7.0.76-15.el7.noarch.rpm

rpm -ivh   xxxx.rpm

#删除tree  telnet
[root@lichengbo-nb ~]# rpm -e tree telnet
error: package telnet is not installed

#安装tree软件包
[root@lichengbo-nb ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
	package tree-1.6.0-10.el7.x86_64 is already installed

#安装telnet软件包
[root@lichengbo-nb ~]# rpm -ivh /mnt/Packages/telnet-0.17-65.el7_8.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:telnet-1:0.17-65.el7_8           ################################# [100%]

#错误提示需要依赖
[root@lichengbo-nb ~]# rpm -ivh /mnt/Packages/tomcat-7.0.76-15.el7.noarch.rpm
error: Failed dependencies:
	apache-commons-collections is needed by tomcat-0:7.0.76-15.el7.noarch
	apache-commons-daemon is needed by tomcat-0:7.0.76-15.el7.noarch
	apache-commons-dbcp is needed by tomcat-0:7.0.76-15.el7.noarch
	apache-commons-logging is needed by tomcat-0:7.0.76-15.el7.noarch
	apache-commons-pool is needed by tomcat-0:7.0.76-15.el7.noarch
	java >= 1:1.6.0 is needed by tomcat-0:7.0.76-15.el7.noarch
	tomcat-lib = 0:7.0.76-15.el7 is needed by tomcat-0:7.0.76-15.el7.noarch

2.2 查询

案例 01 检查软件包是否安装成功

#显示系统中所有已经安装的软件包(高能预警)
rpm -qa

#方法一:rpm -qa |grep ‘’  (推荐使用)
[root@lichengbo-nb ~]# rpm -qa |grep tree
tree-1.6.0-10.el7.x86_64
[root@lichengbo-nb ~]# rpm -qa |egrep 'tree|telnet'
telnet-0.17-65.el7_8.x86_64
tree-1.6.0-10.el7.x86_64

#方法二:rpm -qa 软件包命令(不能缺少内容)
[root@lichengbo-nb ~]# rpm -qa tree telnet
telnet-0.17-65.el7_8.x86_64
tree-1.6.0-10.el7.x86_64

案例02 检查软件包内容

#检查tree软件包内容
[root@lichengbo-nb ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz

#检查 lrzsz软件包内容
[root@lichengbo-nb ~]# rpm -ql lrzsz
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz.1.gz
/usr/share/man/man1/sz.1.gz

案例03 检查ip命令属于哪个软件包(已安装)

  • 一般来说Linux一些命令有独立软件包
  • 还有一些命令书序一个软件包里面的,这个软件包中包含多个命令
#ip命令属于哪个软件包
[root@lichengbo-nb ~]# rpm -ql ip
package ifconfig is not installed
[root@lichengbo-nb ~]# rpm -qf /sbin/ip
iproute-4.11.0-30.el7.x86_64
[root@lichengbo-nb ~]# rpm -ql iproute

#ifconfig命令属于哪个软件包
[root@lichengbo-nb ~]# rpm -ql ifconfig
package ifconfig is not installed
[root@lichengbo-nb ~]# which ifconfig 
/usr/sbin/ifconfig
[root@lichengbo-nb ~]# rpm -qf /sbin/ifconfig 
net-tools-2.0-0.25.20131004git.el7.x86_64

案例04 检查系统软件包中的文件是否发生改变

rpm -aV  #显示出当前环境中与系统安装后(rpm安装后)是否发生变化

只要T(mtime) 表示文件被修改
5(md5)表示文件内容发生变化

[root@lichengbo-nb ~]# rpm -aV
S.5....T.  c /etc/profile
.M.......  c /etc/rc.d/rc.local
S.5....T.  c /etc/sysconfig/authconfig
S.5....T.  c /etc/sysctl.conf
....L....  c /etc/pam.d/fingerprint-auth
....L....  c /etc/pam.d/password-auth
....L....  c /etc/pam.d/postlogin
....L....  c /etc/pam.d/smartcard-auth
....L....  c /etc/pam.d/system-auth
S.5....T.  c /root/.bashrc
.......T.  c /etc/sudoers

2.3 删除

  • Linux下面一些不用的软件包(已安装),尽量不删,关闭放着即可。
[root@lichengbo-nb ~]# rpm -e tree telnet
error: package telnet is not installed

2.4 修改(升级)

  • 新旧版本替换
  • 旧版本软件/命令,有漏洞
rpm -Uvh  新的软件包.rpm
系统有zabbix-agent软件 老版本
系统下载zabbix-agent新版本 升级

#安装老版本5.0.0
wget http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm

[root@lichengbo-nb ~]# rpm -ivh zabbix-agent-5.0.0-1.el7.x86_64.rpm 
warning: zabbix-agent-5.0.0-1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-agent-5.0.0-1.el7         ################################# [100%]
[root@lichengbo-nb ~]# rpm -ivhrpm -qa |grep zabbix-agent
zabbix-agent-5.0.0-1.el7.x86_64

#安装新版本5.0.20
wget http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.20-1.el7.x86_64.rpm

#升级到5.0.20
[root@lichengbo-nb ~]# rpm -Uvh zabbix-agent-5.0.20-1.el7.x86_64.rpm 
warning: zabbix-agent-5.0.20-1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-agent-5.0.20-1.el7        ################################# [ 50%]
Cleaning up / removing...
   2:zabbix-agent-5.0.0-1.el7         ################################# [100%]
[root@lichengbo-nb ~]# rpm -qa |grep zabbix-agent
zabbix-agent-5.0.20-1.el7.x86_64

2.5 rpm命令补充

案例01 安装或删除软件的时候忽略依赖关系

#直接暗转软件提示没有安装依赖,安装软件包失败
[root@lichengbo-nb ~]# 
[root@lichengbo-nb ~]# rpm -ivh zabbix-agent-6.0.0-1.el7.x86_64.rpm 
warning: zabbix-agent-6.0.0-1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
error: Failed dependencies:
	libpcre2-8.so.0()(64bit) is needed by zabbix-agent-6.0.0-1.el7.x86_64

#加上--nodeps 安装的时候忽略依赖,强制安装
[root@lichengbo-nb ~]# rpm -ivh --nodeps zabbix-agent-6.0.0-1.el7.x86_64.rpm 
warning: zabbix-agent-6.0.0-1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-agent-6.0.0-1.el7         ################################# [100%]

3. 软件管理体系之yum

  • 目标:
    • 熟练使用yum增删改查。
    • 熟练掌握yum源的配置文件。格式即可。
    • 了解自己搭建yum源(仓库)

3.1yum源及yum源配置

1)yum源
  • yum仓库,repository(repo)
  • yum源(仓库):软件包存放地方(我们使用yum命令下载啊软件包的时候,yum源是随机的)
  • yum源(仓库)类似于手机的应用商城(app store),下载流程:商城中输入软件名字,自动下载安装。

2)yum源的配置文件
  • 规定在Linux使用yum命令的时候连接哪个仓库(仓库的地址)

  • 配置文件目录:/etc/yum.repos.d/

[root@lichengbo-nb ~]# ll /etc/yum.repos.d/
total 40
-rw-r--r--. 1 root root 1664 Oct 23  2020 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Oct 23  2020 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Oct 23  2020 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Oct 23  2020 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Oct 23  2020 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Oct 23  2020 CentOS-Sources.repo
-rw-r--r--. 1 root root 8515 Oct 23  2020 CentOS-Vault.repo
-rw-r--r--. 1 root root  616 Oct 23  2020 CentOS-x86_64-kernel.repo

  • yum源的核心配置文件详解(常用的yum仓库命名字)
#Base  系统默认源

#epel  软件仓库扩展  Extra Packages for Enterprise Linux

#yum 配置文件格式
[base]  #源名字,可以随意
name=CentOS-$releasever - Base - mirrors.aliyun.com  #注释,说明下源作用与地址
failovermethod=priority   #很少用,如果yum源底子挂了,切换备用
                          #baseurl  yum仓库的地址,这个地址要能访问到repodata目录
baseurl=http://mirror.aliyun.com/centos/$releasever/os/$basearch/
enabled=1           #这个源是否开启 使用yum下载是否从这个地址下载
gpgcheck=1          #gpgcheck 是否进行检查,对下载后的软件包进行校验,  自己搭建的yum仓库可以关闭endeld=0
gpgkey=file://mirror.aliyun.com/centos/RPM-GPG-KEY-CentOS-7


#源核心配置
[base] #名字
name=这个是yum #从阿里云下载
baseurl=http://mirror.aliyun.com/centos/7/os/x86_64/ #仓库地址
gpgcheck=1 
gpgkey=file://mirror.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
  • 没有epel源配的置方法
如何增加epel源
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
#-O大写字母o,下载到指定目录的制定文件中。(文件不存则创建)

3)修改yum源(仓库)的配置
#Base源
#epel源
  • 常用的镜像站
https://developer.aliyun.com/  #阿里镜像站
https://mirrors.tuna.tsinghua.edu.cn/ #清华镜像站

#阿里云的源
[base]    #源名字,可以随意.
name=CentOS-$releasever - Base - mirrors.aliyun.com   
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=1                  
gpgcheck=1                  
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#清华源
[base]    #源名字,可以随意.
name=CentOS-$releasever - Base - mirrors.tuna.tsinghua.edu.cn
baseurl=https:/mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/
enabled=1                  
gpgcheck=1                  
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/centos/RPM-GPG-KEY-CentOS-7
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
         -e 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn|g' \
         -i.bak \
         /etc/yum.repos.d/CentOS-*.repo
         
         
https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64
4)查询系统使用的yum源
yum repolist

[root@lichengbo-nb ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: ftp.sjtu.edu.cn
 * updates: ftp.sjtu.edu.cn
repo id                     repo name                                               status
base/7/x86_64            CentOS-7 - Base                                            10,072
epel/x86_64              Extra Packages for Enterprise Linux 7 - x86_64             13,785
extras/7/x86_64          CentOS-7 - Extras                                          515
updates/7/x86_64         CentOS-7 - Updates                                         4,954
repolist: 29,326
5)yum源小结
  • 使用yum命令流程:yum安装软件,yum命令访问yum仓库
  • yum仓库配置及配置文件格式,掌握每一行含义即可
  • 熟练掌握:给系统配置yum源(增加epel源,修改系统yum源(默认--->清华/阿里云))

3.2yum指令

  • yum增删改查
1)查询

案例01 查询当前系统配置 的源中是否有某个软件包?????

 yum list
 yum list |grep '^java'
 yum list |grep '^java-1.8.0'

案例02 某个文件或命令属于哪个软件包?????

类似于 rpm -qf `which ifconfig`  #软件包已经安装
 yum provides ifconfig
 yum search all ifconfig

[root@lichengbo-nb ~]# rpm -e net-tools
[root@lichengbo-nb ~]# ifconfig
-bash: ifconfig: command not found
[root@lichengbo-nb ~]# yum install -y ifconfig
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: ftp.sjtu.edu.cn
 * updates: ftp.sjtu.edu.cn
No package ifconfig available.   #没有叫ifconfig的软件包
Error: Nothing to do

案例03 查询系统yum源

yum repolist

案例 04 查询软件包信息

yum info  软件包(可以未安装)

案例05 查询yum安装过什么软件

yum history

[root@lichengbo-nb ~]# yum history 
Loaded plugins: fastestmirror
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    10 | root <root>              | 2023-05-22 00:55 | Install        |    1 P<
     9 | root <root>              | 2023-05-22 00:35 | Install        |    6 > 
     8 | root <root>              | 2023-05-22 00:34 | Install        |    2 P<
     7 | root <root>              | 2023-05-17 17:41 | Install        |   13 > 
     6 | root <root>              | 2023-05-17 15:43 | Install        |    1   
     5 | root <root>              | 2023-04-15 00:03 | Install        |    1   
     4 | root <root>              | 2023-04-12 00:21 | I, U           |   18   
     3 | root <root>              | 2023-04-11 00:03 | Install        |    4   
     2 | root <root>              | 2023-04-10 22:42 | Install        |    1   
     1 | System <unset>           | 2023-04-03 17:27 | Install        |  474   
history list
[root@lichengbo-nb ~]# yum history info 3
Loaded plugins: fastestmirror
Transaction ID : 3
Begin time     : Tue Apr 11 00:03:23 2023
Begin rpmdb    : 475:04ade64b15facd69023949279c612c4f523cba1a
End time       :            00:03:25 2023 (2 seconds)
End rpmdb      : 479:847d02f54ebc34f1ecd84c2b4d6b4f0f08951969
User           : root <root>
Return-Code    : Success
Command Line   : install -y vim
Transaction performed with:
    Installed     rpm-4.11.3-45.el7.x86_64                        @anaconda
    Installed     yum-3.4.3-168.el7.centos.noarch                 @anaconda
    Installed     yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch @anaconda
Packages Altered:
    Dep-Install gpm-libs-1.20.7-6.el7.x86_64            @base
    Dep-Install vim-common-2:7.4.629-8.el7_9.x86_64     @updates
    Install     vim-enhanced-2:7.4.629-8.el7_9.x86_64   @updates
    Dep-Install vim-filesystem-2:7.4.629-8.el7_9.x86_64 @updates
history info

#yum的日志记录
less /var/log/yum.log
2)安装(增加)
#必会 安装软件
yum install -y  tree

#-y表示安装的时候不要询问是否安装,是否继续,默认选择yes

#安装常用工具
yum install -y tree vim wget bash-completion  bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc httpd-tools bind-utils nethogs expect


#重新安装
yum reinstall -y tree

#了解  安装软件包组
yum groups list #查看软件包列表
yum groups install "软件包组名字"


#升级 
升级所有或某一个软件包
#更新某个或多少个包
yum install -y tree #安装或升级

#更新所有软件包,安装完系统后做的。
yum update #更新所有
yum uograde  #与update一致,不会更新过时命令。
3)删除
  • 不用,慎用,不要用。
yum remove  软件包  #删除软件包及依赖

通过rpm -e 删除某个或多个软件包


#工作推荐:通过rpm -e删除或者关闭放着即可。

4 )其他指令(缓存)
#清楚本地yum缓存(yum源中软件包列表)
yum clean all  #清理了/var/cache/yum

[root@lichengbo-nb ~]# tree -F /var/cache/yum/x86_64/7
/var/cache/yum/x86_64/7
├── base/
│   ├── gen/
│   └── packages/
├── epel/
│   ├── gen/
│   └── packages/
├── extras/
│   ├── gen/
│   └── packages/
├── timedhosts
└── updates/
    ├── gen/
    └── packages/

12 directories, 1 file

#生成缓存
yum makecache  #创建缓存(创建yum仓库缓存)
5)yum命令小结
  • yum安装软件:yum install -y 软件名
  • yum查询软件包:yum list ; yum provides /yum search all
  • yum删除软件包:yum remove
  • yum升级:yum uodate / yum upgrade
  • yum缓存处理:清除缓存: yum clean all ; 创建缓存:yum makecache
6)yum命令配置文件
  • yum源的配置文件/etc/yum.repos.d/是以.repo结尾。yum仓库,从哪里下载软件

  • yum命令配置文件:yum缓存存放的位置,yum下载的rpm包是否保留

  • yum命令的配置文件/etc/yum.conf

cachedir=/var/cache/yum/$basearch/$releasever  #yum命令下载的软件包缓存目录
keepcache=0                                    #是否保留yum下载的软件包

$basearch  x86_64
$releasever 7

3.3企业项目:yum仓库搭建(了解)

  • star

    • s什么情况下
    • t什么目标
    • a如何做
    • r什么结果
  • 项目背景:日常工作中需要使用到很多的软件包(rpm包),现在在一个没有网络的环境中,想安装一些软件。

  • 项目目标:安装软件,部署服务。

  • 项目方案选择:

    • 方案01:找个机器,开始keepcahe,下载与安装常用软件包,安装服务。把对应的软件包打包并发送到对应的服务器。优点:简单 缺点:无法知晓依赖关系
    • 方案02:自己搭建yum仓库,仓库中存放常用 的软件包即可。精确, 优点:随意根据自己要求定义仓库中软件包。可以变换(增减),可以被其他机器访问 缺点:搭建较为复杂
    • 方案03:折中方案,通过光盘搭建yum仓库。优点:简单,快速 。 缺点:软件包不全,只能自己使用,仅仅是本地仓库,无法互联
  • 结果:目前我们选择方案03,第2阶段结束选择方案02(未来工作中)

  • 方案03:配置步骤

  • 1️⃣挂载光盘

  • 2️⃣配置光盘yum源配置文件。 local.repo文件

  • 3️⃣清除缓存与注释其他yum源

  • 1️⃣2️⃣挂载光盘与书写配置文件

#01 光盘挂载
mkdir -p /data/cdrom
mount /dev/cdrom  /data/cdrom/
vim /etc/fstab
tail  /etc/fstab
/dev/cdrom                     /data/cdrom                       iso9660  defaults       0  0


#02 书写本地光盘源的配置文件
[local]
name=this is local yum yuan
enabled=1
baseurl=file:///data/cdrom/
#baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=0

  • 3️⃣清除缓存与注释其他repo源配置
#注释其他的源
cd /etc/yum.repos.d/
 gzip *
 gzip  -d local.repo.gz 
#生成缓存
yum makecache 
#检查本地源
 yum repolist 
#测试能否安装软件
 rpm -e tree lrzsz  
 yum install -y tree lrzsz 

3.4 总结

  • ?? yum源的配置

    • 配置文件的格式 ;
    • 增加yum源(epel源);
    • 更改yum源(系统默认的--->阿里或清华...)
  • ? ?????yum指令

    • yum安装软件 yum install -y tree yum
    • 查询软件包: yum list ; yum provides /yum search all yum
    • 删除软件包: yum remove yum
    • 升级: yum update /yum upgrade yum
    • 缓存处理: 清除缓存:yum clean all ;
    • 创建缓存 yum makecache yum localinstall
    • 自己下载rpm包,让yum解决依赖.
  • 了解: 搭建yum仓库(光盘yum仓库)

  • 项目:搭建私有yum仓库场景的方案.

#开启缓存
yum reinstall -y   nginx 
scp /var/cache/yum/x86_64/7/epel/packages/nginx-1.20.1-9.el7.x86_64.rpm   10.0.0.201:/tmp


#连接另外一台机器
yum localinstall /tmp/nginx-1.20.1-9.el7.x86_64.rpm

4. 软件包管理体系之编译安装

  • 编译安装:

    • 把你获取到的软件的源代码(c语言代码),通过编译操作,把代码变成可执行的命令。
  • 编译安装步骤(三部曲)

    • 配置:./configure (对代码进行配置,开启/关闭功能,生成Makefile文件(记录配置))
    • 编译:make (把代码根据上面配置要求进行编译,代码----->命令;本质根据Makefile进行编译)
    • 编译安装:make install (把命令复制到系统指定目录中,创建目录,复制配置文件)

4.1编译安装-黑客帝国(字母雨)

#01 安装依赖
yum install -y python-libs ncurses-devel binutils
#02 解压
注意:软件包要上传到 /app/tools/目录下.
mkdir -p /app/tools
cd /app/tools/
tar xf cmatrix-1.2a.tar.gz 
#03 进入目录准备开始编译安装
cd cmatrix-1.2a/
#04 编译安装3步曲
./configure
echo $? #检查上一个命令执行结果 # 0表示正常. 非0 错误.
make
make install
#05 结果
cmatrix 
#06 编译安装默认的目录.
/usr/local/

4.2编译安装-nginx

#01 检查系统是否安装过nginx,安装过需要删除
rpm -qa |grep nginx
#02 下载代码包
cd /app/tools
wget https://nginx.org/download/nginx-1.20.2.tar.gz  #如果没有wget则yum安装下
#03 安装依赖
yum install -y openssl-devel  pcre-devel
#04 编译安装三部曲  安装到指定目录/app/nginx-1.20.2
# --prefix=指定安装目录
tar xf  nginx-1.20.2.tar.gz
cd nginx-1.20.2
./configure  --prefix=/app/nginx-1.20.2   --user=nginx   --group=nginx    --with-http_ssl_module  --with-http_v2_module  --with-http_stub_status_module  --with-http_mp4_module 

make
make install

[root@lichengbo-nb /app/tools/nginx-1.20.2]# tree /app/nginx-1.20.2
/app/nginx-1.20.2
├── conf
│   ├── fastcgi.conf
│   ├── fastcgi.conf.default
│   ├── fastcgi_params
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types
│   ├── mime.types.default
│   ├── nginx.conf
│   ├── nginx.conf.default
│   ├── scgi_params
│   ├── scgi_params.default
│   ├── uwsgi_params
│   ├── uwsgi_params.default
│   └── win-utf
├── html
│   ├── 50x.html
│   └── index.html
├── logs
└── sbin
    └── nginx

4 directories, 18 files


#05 编译安装后续操作
##a)检查nginx信息
[root@lichengbo-nb /app/tools/nginx-1.20.2]# /app/nginx-1.20.2/sbin/nginx -V
nginx version: nginx/1.20.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/app/nginx-1.20.2 --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-http_mp4_module

##b)准备用户
useradd -s /sbin/noloin -M nginx

##c)关闭selinux和防火墙
####关闭防火墙
systemctl disable  firewalld
systemctl stop firewalld
####关闭selinux
serenforce 0
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config


##d)启动与访问nginx
/app/nginx-1.20.2/sbin/nginx  #启动

[root@lichengbo-nb ~]# ps -ef |grep nginx
root       6159      1  0 00:11 ?        00:00:00 nginx: master process /app/nginx-1.20.2/sbin/nginx
nginx      6160   6159  0 00:11 ?        00:00:00 nginx: worker process
root       6163   1797  0 00:11 pts/0    00:00:00 grep --color=auto nginx

#测试下访问
浏览器 输入10.0.0.200
http://10.0.0.20:80

5. 软件包管理体系之二进制安装

  • 绿色软件,下载后解压即可使用

5.1 部署二进制版本tomcat为例

#01 下载tomcat二进制软件包
wget -P https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.88/bin/apache-tomcat-8.5.88.tar.gz

#02 安装依赖(环境)
yum install -y java

##a)关闭selinux和防火墙
####关闭防火墙
systemctl disable  firewalld
systemctl stop firewalld
####关闭selinux
serenforce 0
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config


#03 解压与启动
##a)解压
cd /app/tools
tar xf apache-tomcat-8.5.88.tar.gz
ln -s apache-tomcat-8.5.88  tomcat #创建软链接

##b)启动
/app/tools/tomcat/bin/startup.sh

##c)检查进程
[root@lichengbo-nb /app/tools]# ps -ef |grep java
root       6328      1  7 00:32 pts/0    00:00:02 /usr/bin/java -Djava.util.logging.config.file=/app/tools/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /app/tools/tomcat/bin/bootstrap.jar:/app/tools/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/app/tools/tomcat -Dcatalina.home=/app/tools/tomcat -Djava.io.tmpdir=/app/tools/tomcat/temp org.apache.catalina.startup.Bootstrap start
root       6372   1797  0 00:33 pts/0    00:00:00 grep --color=auto java

#04 浏览器访问
http://10.0.0.200:8080/