七、软件管理体系
软件管理体系
- 目标:熟练掌握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仓库场景的方案.
#开启缓存
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/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人