赞
踩
RPM概述:RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、SUSE以及Turbo Linux等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+选项+软件包
常用选项:
#安装软件
[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 — 模式 (包含许可和文件类型) ? — 不可读文件
yum(全称为 Yellow dog Updater, Modified)是一个前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记
YUM:解决依赖关系问题,自动下载软件包,它是基于C/S架构
C=client S=ftp\http\file
挂载光盘
[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为开启
Linux中所有的源都会放在/etc/yum.repo目录下;
并且会用.repo结尾;
aliyun的网址:http://mirrors.aliyun.com/repo/Centos-7.repo
[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+选项+网址
选项:
作用:安装、卸载、升级软件包
语法: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
源码编译:需要有编译环境,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
–prefix=/usr/local/nginx:指定了nginx的源码安装路径
–enable-ssl:启用某些功能
–disable-filter:禁用某项功能
–whit-http_ssl_module:启用什么模块
–add-module=:添加第三方模块
和其他软件关联:–with-pcre
预编译的功能:
#预编译nginx
[root@master nginx-1.17.10]# ./configure --prefix=/usr/local/nginx
#指定了nginx的路径,注意nginx目录可以不存在,它会帮你创建
3)编译安装
生成了Makefile文件,相当于有了导航,
make -j 4:这命令代表指定4个核心的cpu编译,提升速度
make install:代表安装
如果在预编译过程中有报错,需要重新编译,可以使用make clean
清除上次的make命令所产生的object和Makefile文件。使用场景:当需要重新执行configure时,需要执行make clean
[root@master nginx-1.17.10]# make -j 2 && make install
源码包的删除
安装完成–想要删除:make uninstall
源码包是最好最快的删除的,当指定了路径的时候,直接搬源码包的路径删除即可
上传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 #成功安装~!
总结:
软件安装方法特点:
srpm:source RPM的意思:也就是这个rpm档案里含有原始代码(Source Code)
上传一个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%]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。