1、软件包的管理软件包的类型:2、rpm包的简介:
RPM概述:RPM是RPMPackageManager(RPM软件包管理器)的简写,这一文件格式名称其实打上了RedHat的标志,而且其原始设计理念是开放式的,现今包括OpenLinux、SUSE以及TurboLinux等Linux的分发版本都有采用,可以算是公认的行业标准了。
包名:对早已安装的包进行的升级和安装使用
包全名:安装未安装的包;
rpm安装的时侯,系统会手动搜索/var/lib/rpm目录;
rpm包的获取方法:
rpm包格式说明:
[root@master ~]# ls /mnt/cdrom/Packages/mariadb-5.5.56-2.el7.x86_64.rpm
/mnt/cdrom/Packages/mariadb-5.5.56-2.el7.x86_64.rpm
#解释说明
mariadb-:软件名
5.5.56-:主版本号.次版本号.修订次数.
2.:修订次数
el7.:操作系统版本
x86_64.:x86的架构
rpm:rpm包
#修订次数:就是第几次修改bug
rpm命令
作用:查询或则安装软件包
句型:rpm+选项+软件包
常用选项:
#安装软件
[root@master ~]# rpm -ivh /mnt/cdrom/Packages/httpd-2.4.6-67.el7.x86_64.rpm
#从网络上直接安装epel源
rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@master ~]# cd /etc/yum.repos.d/
[root@master yum.repos.d]# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#epel是centos7系统中自带的base源的扩展
rpm的常用查询功能
[root@master yum.repos.d]# rpm -qi httpd
未安装软件包 httpd
[root@master yum.repos.d]# rpm -qi openssh
[root@master yum.repos.d]# rpm -qc openssh
/etc/ssh/moduli
[root@master yum.repos.d]# which find
/usr/bin/find
[root@master yum.repos.d]# rpm -qf /usr/bin/find
findutils-4.5.11-5.el7.x86_64
rpm的校准功能
[root@master ~]# which find
/usr/bin/find
[root@master ~]# rpm -qf /usr/bin/find
findutils-4.5.11-5.el7.x86_64
[root@master ~]# echo aa >> /usr/bin/find
[root@master ~]# rpm -Vf /usr/bin/find
S.5....T. /usr/bin/find
[root@master ~]# rpm -V findutils
S.5....T. /usr/bin/find
#解释说明
注:如果出现的全是点,表示测试通过
出现下面的字符代表某测试的失败:
5 — MD5 校验和是否改变,你也看成文件内容是否改变
S — 文件长度,大小是否改变
L — 符号链接,文件路径是否改变
T — 文件修改日期是否改变
D — 设备
U — 用户,文件的属主
G — 用户组
M — 模式 (包含许可和文件类型)
? — 不可读文件
3、yum管理简介:
yum(全称为YellowdogUpdater,Modified)是一个后端软件包管理器。基于RPM包管理,才能从指定的服务器手动下载RPM包而且安装,可以手动处理依赖性关系,而且一次安装所有依赖的软体包,无须冗长地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令linux删除命令,并且命令简练而又好记
YUM:解决依赖关系问题,手动下载软件包红旗linux系统下载,它是基于C/S构架
C=clientS=ftphttpfile
配置本地yum源
挂载光碟
[root@master ~]# mount /dev/cdrom /mnt/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
mount: /dev/sr0 已经挂载或 /mnt/cdrom 忙
/dev/sr0 已经挂载到 /mnt/cdrom 上
编撰光碟源文件
[root@master ~]# vim /etc/yum.repos.d/local.repo
[local] #源名称,在系统中是唯一的,区分不同的源
name=local #yum源的描述信息
baseurl=file:///mnt/cdrom #yum源路径,提的方式有:http:// ftp:// file://
enabled=1 #是否开启源,
gpgcheck=0 #是否开启校验功能,0为关闭,1为开启
配置阿里云的yum源
Linux中所有的源就会置于/etc/yum.repo目录下;
而且会用.repo结尾;
aliyun的网址:
[root@master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
--2021-06-28 14:24:58-- http://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 183.61.168.238, 183.60.138.232, 125.94.49.181, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|183.61.168.238|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”
100%[====================================================>] 2,523 --.-K/s 用时 0.005s
2021-06-28 14:24:59 (449 KB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])
#添加扩展源
#查看阿里云的源
[root@master ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#解释:
$releasever:相当于7.4 (Maipo)
[root@master ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.4 (Maipo)
$basearch:相当于x86_64
[root@master ~]# uname -r
3.10.0-693.el7.x86_64
wget命令
作用:用于下载文件,
句型:wget+选项+网址
选项:
yum命令
作用:安装、卸载、升级软件包
句型:yum-y【操作】+软件包名
常用操作:
yum源报错:注意的细节:
yum支持组装软件包组
#安装htppd
[root@master yum.repos.d]# yum -y install httpd
#查询httpd信息
[root@master yum.repos.d]# yum info httpd
...
已安装的软件包
名称 :httpd
架构 :x86_64
版本 :2.4.6
发布 :67.el7
大小 :3.7 M
源 :installed
....
#查询包安装
[root@master yum.repos.d]# yum provides lrzsz
已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
lrzsz-0.12.20-36.el7.x86_64 : The lrz and lsz modem communications programs
源 :local
lrzsz-0.12.20-36.el7.x86_64 : The lrz and lsz modem communications programs
源 :@anaconda/7.4
#查询组包
[root@master ~]# yum grouplist
已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
可用的环境分组:
最小安装
基础设施服务器
文件及打印服务器
基本网页服务器
虚拟化主机
带 GUI 的服务器
可用组:
传统 UNIX 兼容性
兼容性程序库
图形管理工具
安全性工具
开发工具
控制台互联网工具
智能卡支持
科学记数法支持
系统管理
系统管理工具
完成
#显示的是中文,然后如果想变成英文,需要修改字符集
[root@master ~]# echo $LANG
zh_CN.UTF-8
[root@master ~]# LANG=EN
[root@master ~]# LANG=en
4、tar源码包管理实战:源码编译nginx
源码编译:须要有编译环境,gcc和gcc-c++编译器,make
打算好软件包nginx的软件包
1)打算基础环境
[root@master ~]# yum -y install gcc gcc-c++ make zlib zlib-devel pcre pcre-devel openssl-developenssl
#zlib:支持压缩
#pcre:支持正则表达式,地址重写功能,rewrite功能
#gcc和gcc-c++:源码编译器
#openssl:这个是加密相关;
#准备nginx的源码包
[root@master ~]# mv nginx-1.17.10.tar.gz /usr/local/src/
[root@master ~]# cd /usr/local/src/
[root@master src]# ls
nginx-1.17.10.tar.gz
#解压源码包,并且进入到源码目录
[root@master src]# tar -xf nginx-1.17.10.tar.gz
[root@master src]# cd nginx-1.17.10/
[root@master nginx-1.17.10]# pwd
/usr/local/src/nginx-1.17.10
2)预编译源码包
./configure
预编译的功能:
#预编译nginx
[root@master nginx-1.17.10]# ./configure --prefix=/usr/local/nginx
#指定了nginx的路径,注意nginx目录可以不存在,它会帮你创建
3)编译安装
生成了Makefile文件,相当于有了导航ubuntu nfs安装包下载,
make-j4:这命令代表指定4个核心的cpu编译,提高速率
makeinstall:代表安装
若果在预编译过程中有报错,须要重新编译,可以使用makeclean
去除先前的make命令所形成的object和Makefile文件。使用场景:当须要重新执行configure时,须要执行makeclean
[root@master nginx-1.17.10]# make -j 2 && make install
源码包的删掉
安装完成–想要删掉:makeuninstall
源码包是最好最快的删掉的,当指定了路径的时侯ubuntu nfs安装包下载,直接搬源码包的路径删掉即可
实战:源码编译出错-排错篇
上传extundelete文件:用于故意测试源码报错
[root@master src]# rz
[root@master src]# ls
extundelete-0.2.4.tar.bz2
#这里很明显发现,bz2格式的包;tar解压需要使用到-j选项
#解压extundelete
[root@master src]# tar -xjf extundelete-0.2.4.tar.bz2
[root@master src]# cd extundelete-0.2.4/
[root@master extundelete-0.2.4]#
尝试源码编译
[root@master extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete
Configuring extundelete 0.2.4
configure: error: Can't find ext2fs library
#刚开始预编译就出现了报错
#根据报错提示:ext2fs library:这个库文件无法找到;
#我们查找一下这个库文件在哪里提供
[root@master extundelete-0.2.4]# yum search ext2fs
Failed to set locale, defaulting to C
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
====================================== Matched: ext2fs =======================================
e2fsprogs.x86_64 : Utilities for managing ext2, ext3, and ext4 filesystems
e2fsprogs-libs.i686 : Ext2/3/4 filesystem-specific shared libraries
e2fsprogs-libs.x86_64 : Ext2/3/4 filesystem-specific shared libraries
#搜索到了,直接yum安装
[root@master extundelete-0.2.4]# yum -y install e2fs*
#再次尝试预编译:
[root@master extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete
[root@master extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete
Configuring extundelete 0.2.4
Writing generated files to disk
#成功安装~!
总结:
软件安装方式特征:
拓展:安装.src.rpm源码包的的方式
srpm:sourceRPM的意思:也就是这个rpm档案里富含原始代码(SourceCode)
上传一个src.rpm的软件包起来
首先先卸载掉原先的lrzsz
#卸载lrzsz
[root@master src]# rpm -e lrzsz
[root@master src]# rpm -qa lrzsz
#准备src.rpm的包
[root@master src]# ls
extundelete-0.2.4 lrzsz-0.12.20-27.1.el6.src.rpm nginx-1.17.10.tar.gz
extundelete-0.2.4.tar.bz2 nginx-1.17.10
#直接使用命令rpmbuild 命令处理
[root@master src]# rpmbuild --rebuild lrzsz-0.12.20-27.1.el6.src.rpm
#根据将src.rpm中源码文件编译成可执行的二进制文件。
#若顺利执行成功则会在root用户家目录下生成一个:/root/rpmbuild目录。
[root@master src]# ls /root/rpmbuild/
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
#在/root/rpmbuild/RPMS/x86_64/目录下生成lrzsz-0.12.20-27.1.el7.centos.x86_64.rpm这个rpm文件。
[root@master src]# ls /root/rpmbuild/RPMS/x86_64/lrzsz-*
/root/rpmbuild/RPMS/x86_64/lrzsz-0.12.20-27.1.el7.x86_64.rpm
/root/rpmbuild/RPMS/x86_64/lrzsz-debuginfo-0.12.20-27.1.el7.x86_64.rpm
# rpm -ivh rpmbuild/RPMS/x86_64/lrzsz-0.12.20-27.1.el7.centos.x86_64.rpm #安装
[root@master src]# rpm -ivh /root/rpmbuild/RPMS/x86_64/lrzsz-0.12.20-27.1.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:lrzsz-0.12.20-27.1.el7 ################################# [100%]