Linux系统管理实战-软件包管理

2023-03-10,,

软件包管理

在Linux中,不同的发行版软件管理的方式可能不一样,具体来说,主要分为两大派:

RPM: Rpm Package Manager

CentOS系统软件安装三种方式

rpm:安装简单,可定制性差,一台机器上不能装多个相同的软件,稳定性高源码包
编译安装:安装复杂,可定制性好,一台机器上可安装多个相同的软件
二进制包:安装简单,可定制性差,一台机器可安装多个相同的软件,稳定性较高

怎样获取rpm包

在网络上下载rpm包: http://rpmfind.net/    //下载不常见的rpm包
网络yum源中获取 //基础源CentOS,扩展源epel
镜像中获取:在光盘镜像sr0中的Packages目录下

怎样查看光盘的内容

1.将光盘连接上
2.将光盘挂载到相应的挂载点
# mount /dev/sr0 /mnt
3.通过挂载点访问光盘内容
# ls /mnt

rpm包介绍

zsh-5.8.2-25.el7.x86_64.rpm		包全名
zsh 包名
5.8.2:主版本号.次版本号.源程序的发行号
25: rpm发行号
el7:平台一般来说,不同平台的包不兼容
x86_64:架构
x86_64: 64位
i686: 32位
noarch:通用

RPM包管理

rpm工具

安装
# rpm -ivh 包全名 //安装软件包
# rpm -Uvh 包全名 //升级安装包,如果本来没有安装,则安装 卸载
# rpm -e 包名
--nodeps //只卸载当前软件,不检查依赖关系 查询
查询已安装的:
查询指定软件包有没有安装: # rpm -q包名
查询所有已安装的软件包: # rpm -qa //可以配合grep命令
查询已安装的软件包安装的所有文件: # rpm -ql 包名
查询已安装的软件包安装的配置文件: # rpm -qc 包名
通过文件名反查文件是由哪个包安装的: # rpm -qf文件的绝对路径 查询未安装的:
查询未安装的软件包将会安装的所有文件: # rpm -qpl 包全名
查询未安装的软件包将会安装的配置文件: # rpm -qpc 包全名 扩展:
``反引:等价于$(),引用命令的输出结果,``内部一定是命令
例:
#rpm -qf `which useradd`
shadow-utils-4.1.5.1-24.el7.x86_64
# rpm -qf $(which useradd)
shadow-utils-4.1.5.1-24.el7.x86_64
rpm包无法自动解决依赖性问题,需要手动解决,非常麻烦..
yum可以解决软件包之间的依赖问题

YUM工具

yum仓库

1.多个rpm包
2.记录这些包及包之间的依赖关系- repodata目录

配置yum源

本地源

要使用yum仓库,需要先进行配置
主配置文件:/etc/yum.conf [root@localhost mnt]# tail -2 letc/yum.conf
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d//仓库可以定义在这里或/etc/yum.repos.d目录下以.repo结尾的单独的文件中
实验:配置本地yum仓库
配置过程:
1、将系统光盘sr0挂载到/mnt
2、关闭或者备份其他仓库
# cd /etc/yum.repos.d/
# mkdir repo
# mv *.repo repo/ 3、创建yum配置文件
# vim local.repo
[local] //仓库ID
name=local disk //仓库名称(描述)
baseurl=file://mnt //仓库的URl 或者来源
enabled=1 //开关,0为关 1为开
gpgcheck=0 //秘钥是否检查 4、检验
# yum repolist 【注意编写yum源文件】
1、一定要写在/etc/yum.repos.d/目录下
2、一定要以.repo 结尾,否则不生效

网络源

常用的网络源:centos官方源,epel源

国外源下载比较慢,建议使用国内镜像源:如阿里云,清华大学,网易... 直接搜索xxx开源镜像站

例如:
# cat /etcyum.repos.d/base.repo
[base]
name=centos http base
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
enabled=1
gpgcheck=0 # cat /etc/yum.repos.d/epel.repo
[epel]
name=centos http epel
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
enabled=1
gpgcheck=0 或者通过阿里云镜像站给的命令:
# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

YUM命令的使用

清理yum缓存:
# yum clean all 缓存软件包信息:
提高搜索/安装软件的速度
# yum makecache 查询yum源信息:
# yum repolist 查找软件:
# yum search mysql
此命令会搜索到系统已经安装和yum源里没有安装的软件信息,可以用他简单测试yum是否好用 查看软件依赖性关系:
# yum deplist httpd 查看文件属于哪个软件
# yum provides rz 查看系统已经安装好的软件和没有安装的软件(源里存在即可查到):
# yum list 查看系统已经安装好的软件组和没有安装的软件组(源里存在即可查到):
# yum grouplist 查看软件组包含的具体软件:
# yum groupinfo 安装软件组:
# yum groupinstall ‘软件组名称’
如果软件或者软件组名称内有空格,要给空格转义或者加引号 安装软件:
# yum install 软件名称
# yum install mysql mysql-server -y //-y跳过确认提示直接安装 重装:
# yum reinstall 软件名 卸载软件:
# yum erase mysql-server
# yum remove mysql-server
# yum -y remove mysql-server 打开Yum缓存功能:安装完软件之后,软件不会被删除(默认安装完之后,不会保留安装包)
# vim /etc/yum.conf 修改下面参数的值为1,软件会被保存到cachedir指定的目录下
keepcache=1 自己制作yum源
#mkdir /myyum
把想用yum安装的软件包拷贝到目录下
#createrepo /myyum //此目录就可以作为yum源了。

Linux系统管理实战-软件包管理的相关教程结束。

《Linux系统管理实战-软件包管理.doc》

下载本文的Word格式文档,以方便收藏与打印。