linux基础11-软件管理rpm、yum、源码

本文介绍Linux下的RPM和YUM包管理工具的使用方法,包括安装、卸载、升级、查看软件包等操作,以及如何配置YUM源和使用源码安装软件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rpm

rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

#rpm包格式
zip-3.0-11.el7.x86_64.rpm					
zip:包名
3.0.11:版本号
el7:系统,el7指CentOs7.x,el6指Centos6.x
x86_64:平台。noarch指所有
1.安装
			-i			#安装软件包
			-v			#显示安装的过程
			-h			#显示安装的进度条
			--test		#模拟演练
			--force		#强制安装
#重本地库里安装
# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
#网上安装,只实用与没有依赖的情况
# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm

2.卸载
# rpm -e tree
3.升级
# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm
4.查看
# rpm -q		查看指定软件包是否安装
# rpm -q vsftpd		
# rpm -qa		查看系统中已安装的所有RPM软件包列表
# rpm -qa|grep "samba"	#列出所有的rpm包,然后筛选名称是samba的相关包
# rpm -ql		查询指定软件包所安装的目录,文件列表,存放的位置
# rpm -qc		查询指定软件包的所有配置文件	
yum

Yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

$ cat /etc/yum.conf  
[main] 
cachedir=/var/cache/yum         #yum下载的RPM包的缓存目录 
keepcache=0             #缓存是否保存,1保存,0不保存。 
debuglevel=2             #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。 
logfile=/var/log/yum.log    #yum的日志文件所在的位置 
exactarch=1   #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。 
obsoletes=1   #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。 
gpgcheck=1    #是否检查GPG(GNU Private Guard),一种密钥方式签名。 
plugins=1     #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。 
installonly_limit=3   #允许保留多少个内核包。 
exclude=selinux*     #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。 

进入/etc/yum.repo.d目录下,
vi CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

name=CentOS-$releasever - Base:具体的yum源名字,其实相当于对它的描述描述信息 $r releasever:你可以使用这个变量参考红帽企业Linux发行版,也就是说表示当前发行版的大版本号。

baseurl:镜像服务器地址,只能写具体的确定地址。下面的例子中,只能有一个baseurl,但里面可以包含多个url

mirrorlist:镜像服务器的地址列表,里面有很多的服务器地址。这里有一个变量arch,cpu体系,还有一个变量:$basearch,cpu的基本体系组

baseurl和mirrorlist都是指向yum源的地址,不同点是包含地址的多少。你若自己写的话,我们一般只写一个地址,直接用baseurl就行

gpgcheck=0 :使用公钥检验rpm的正确性
gpgcheck若是1将对下载的rpm将进行gpg的校验,校验密钥就是gpgkey,一般自己的yum源是不需要检测的。gpgcheck=0,那么gpgkey就可以不填写

    1.查看信息
    [root@k8s-node01 ~]# yum list 				#查看所有的rpm包  配合less
	[root@k8s-node01 ~]# yum list | grep ftp		#模糊匹配的方式
	[root@k8s-node01 ~]# yum info vsftpd			#查看vsftpd软件的详情
	
	2.yum通过公网仓库搜索进行安装
	[root@k8s-node01 ~]# yum install vsftpd			#交互
	[root@k8s-node01 ~]# yum install vsftpd -y		#非交互
	
	3.yum直接安装公网的rpm包, 会自动查找当前系统上已有的仓库解决依赖关系
	[root@k8s-node01 ~]# yum install https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/samba-4.8.3-4.el7.x86_64.rpm
	
	4.yum直接安装本的rpm包,会自动查找当前系统上已有的仓库解决依赖关系
	[root@k8s-node01 ~]# yum localinstall  samba-4.8.3-4.el7.x86_64.rpm
	
	5.如果误删除某个软件的配置文件,可以使用reinstall进行重装
	[root@k8s-node01 ~]# yum reinstall vsftpd
	
	6.更新所有的软件包,包括内核
	[root@k8s-node01 ~]# yum update acl -y
	[root@k8s-node01 ~]# yum update -y
	
	7.如何去删除一个软件包
	[root@k8s-node01 ~]# yum remove samba -y
	
	8.查看正在使用的仓库基本信息
	[root@k8s-node01 ~]# yum repolist
	[root@k8s-node01 ~]# yum repolist all  查看所有的仓库
	
	#启用和禁用仓库
	[root@k8s-node01 ~]# yum install https://dev.mysql.com/get/mysql80-community-release-el7- 3.noarch.rpm
	[root@k8s-node01 ~]# yum repolist all|grep mysql
	[root@k8s-node01 ~]# yum-config-manager --disable mysql80-community		#关闭仓库
	[root@k8s-node01 ~]# yum-config-manager --enable mysql57-community		#启用仓库
	本质:  都是在修改repo文件中的enable的值   0 不启用  1 启用

	9.查找一个命令或文件所属的软件包是什么?
	[root@k8s-node01 ~]# rpm -qf $(which cd)
	bash-4.2.46-31.el7.x86_64
	PS: rpm需要知道命令的绝对路径, 如果不存在该命令是无法查找到该命令所属的软件包
	[root@k8s-node01 ~]# yum provides cd
	[root@k8s-node01 ~]# yum provides ifconfig
	
    10.组包的安装与卸载
	[root@k8s-node01 ~]# yum groups install Development Tools
	[root@k8s-node01 ~]# yum groups remove  -y Base

	11.如何使用yum缓存已经安装过了的软件包
	#缓存rpm包方式一、修改yum全局配置文件
	[root@k8s-node01 ~]# vim /etc/yum.conf
	[main]
	cachedir=/var/cache/yum/$basearch/$releasever
	keepcache=1     #启动缓存
	
	#缓存rpm包方式二,只下载不安装
	[root@k8s-node01 ~]# yum install httpd -y --downloadonly --downloaddir=/tmp

	#1.先清空
	[root@k8s-node01 ~]# yum clean packages
	当你的yum出现问题,进行了一次替换后,你需要执行  yum clean all 
	
	#2.开启缓存,然后再下载软件包
	
	12.yum的历史记录
	#1.查看历史执行yum命令
	[root@k8s-node01 ~]# yum history

	#2.查询历史执行yum命令ID详细信息
	[root@k8s-node01 ~]# yum history info N

	#3.撤销历史执行过的yum命令
	[root@k8s-node01 ~]# yum history undo N
源码安装
    1.下载nginx的源码包
	[root@k8s-node01 ~]# wget http://nginx.org/download/nginx-1.16.0.tar.gz

	2.解压源码包
	[root@k8s-node01 ~]# tar xf nginx-1.16.0.tar.gz

	3.对软件进行各种自定义操作
	[root@k8s-node01 ~]# cd nginx-1.16.0/
	[root@k8s-node01 ~]#./configure --prefix=/soft/nginx-1.16.0 --with-http_ssl_module

	4.生成makfile后,根据makefile的文件进行编译,使用make命令
	[root@k8s-node01 ~]# make

	5.将编译好的二进制文件和配置文件,拷贝到./configure指定的目录
	[root@k8s-node01 ~]# make install

	6.将程序设定一个软连接,便于后续的升级
	[root@k8s-node01 ~]# ln -s /soft/nginx-1.16.0/ /soft/nginx

	7.执行二进制文件,然后在浏览器中输入当前服务器的IP地址,测试是否有welcome to nginx
	[root@k8s-node01 ~]# /soft/nginx/sbin/nginx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值