美文网首页
rpm命令 YUM源基本操作

rpm命令 YUM源基本操作

作者: _str_ | 来源:发表于2019-08-03 13:57 被阅读0次

包管理

rpm

平台 noarch

就是没有任何硬件等级上的限制。一般来说,这种类型的 RPM 档案,里面应该没有 binary program 存在, 较常出现的就是属亍 shell script 方面的软件。

MD5校验

[root@kvm-docker ~]# md5sum anaconda-ks.cfg
bb6e974d74a51b24d0576edca461a03b  anaconda-ks.cf
#  校验码会随着内容的改变而改变

rpm包的安装

rpm 包安装工具,无法解析软件包的依赖性

rpm -ivh 软件包名  
-i install安装的意思    -v 查看的意思  -h 查看进度条

rpm包的管理

rpm -qa |grep 软件包名  查询系统安装的软件
rpm -qi 查询已安装软件包的信息
rpm -ql 软件包名   列出所有的已安装文件
rpm -qc 软件包名  列出配置文档
rpm -qf   查看这个软件包是哪个安装的
rpm -V 校验已安装到系统中的文件的改动情况

丢失一个文件侯如何查找

rpm2cpio 命令可以从一个rpm包中提取处文件

如果不小心将一个文件的一个配置文件给删或者是其他文件给删了 不要着急卸载和重新安装 可以按一下步骤来进行但仅限于linux中

rpm -ql 软件名|grep 软件包里的文件
查询这个软件已安装的文件
[root@localhost ~]# rpm -ql tree |grep /usr/bin/tree
/usr/bin/tree
[root@localhost ~]# 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
看到这个软件包下面的文件有哪些

步骤 查询这个文件时哪个软件包安装得 #一定要记得这个绝对路径地址 不然只能把这个软件包卸载了重新安装了
rpm -qf 绝对路径得完整文件名
之后 将这个文件提取到当前得工作目录中去
rpm2cpio 软件包名.rpm | cpio -idv ./要提取得文件路径
注:这个./必须有的 不能丢
要提取的文件路径 需要时 这个软件包安装到系统中后,这个文件的路径
比如/usr/bin/tree命令
rpm2cpio tree-1.6.0-10.e17.x86_64.rpm | cpio -idv ./usr/bin/tree

YUM源

yum源相当于一个仓库,里面已经从网路上下载好了一些东西,联机到这个yum源的主机可以从上面下载自己所需的软件,节省好多时间而且下载速度快,无需再去访问网络

YUM源配置文件

pid文件

/var/run/yum.pid
这个文件在每次使用 yum 命令时被创建,正常安装软件结束后被删除。
有时候非正常退出 yum install 命令时,这个文件会保留,并且里面写入了本次 yum install 命令的进程号。
因为 YUM 是单进程的,就是每次只能运行一个 yum install 命令, 所以假如上次的命令没有正常结束,本次的命令就无法执行,此时就会报错,解决方法就是删除 /var/run/yum.pid 文件后,重新执行 yum install 命令即可。

/etc/yum.repos.d

ls /etc/yum.repos.d
CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo         CentOS-Media.repo      docker-ce.repo
CentOS-Debuginfo.repo  CentOS-Sources.repo
这个目录下存放了可以使用软件包仓库的地址等信息,都是以.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

[base] 代表软件库的名字!中括号一定要存在,里面的名称则可以随意取。但是不能有两个相同的软件库名称
name 为库的名称,自定义但不需要太长
mirrorlist=:列出这个软件库可以使用的软件仓库的URL列表,如果不想使用,可以注解到这行;
baseurl=:这个最重要,因为后面接的就是软件库的实际网址! mirrorlist 是由 yum 程序自行去查找仓库URL, baseurl 则是指定固定的一个软件库URL!
baseurl 支持的传输协议,可以为
file://
ftp://
http://
https://
enabled 为是否启用库 1 代表启用;0 代表关了
gpgcheck 为检查软件包的签名,1 为检查;0 为不检查
gpgkey 数字签名的公钥位置

基本用法

# 安装软件
[root@localhost ~]# yum -y install httpd      # -y表示后面的交互式询问默认选为yes
# 更新所有软件(包括内核)
[root@localhost ~]# yum update
# 升级指定软件
[root@localhost ~]# yum update httpd
# 列出所有可更新的软件
[root@localhost ~]# yum check-update
# 列出所有可安装的软件清单
[root@localhost ~]# yum list
# 查找软件包
[root@localhost ~]# yum search httpd
# 删除软件包
[root@localhost ~]# yum remove httpd
# 清理yum的缓存
[root@localhost ~]# yum clean all
# 生成yum的缓存
[root@localhost ~]# yum makecache
// 查询 pstree 文件由那个软件包安装
yum provides    pstree
// 查询本地仓库 没有的话直接去网络上去找
yum localinstall 软件名

自建YUM源(仓库)

基于光盘镜像的YUM源

节省硬盘空间,但是不可扩展

CentOS_BuildTag                 :制作标签
EFI                             :EFI启动方式文件
EULA                            :最终用户许可协议
GPL                             :GPL授权协议
images                          :网络PXE启动文件
isolinux                        :挽救模式文件
LiveOS                          :微型系统镜像
Packages                        :自带RPM包    # 重点
repodata                        :YUM源数据库  # 重点
RPM-GPG-KEY-CentOS-7            :公钥信息文件
RPM-GPG-KEY-CentOS-Testing-7    :公钥信息文件
TRANS.TBL                       :光盘目录

在光盘镜像中还存放着一个repodata目录,这个目录下存放的yum源的数据库文件,也可以理解为这里记录了软件包的互相依赖关系。只要把光盘镜像挂载到服务器上,然后配好yum源为挂载的镜像,当使用yum安装软件的时候yum就会到这个目录下面去查询数据库,然后再到Packages目录下去拿rpm包进行安装,所以简单理解可以说repodata是记录Packages目录下所有 rpm 包的数据库。
有了这个repodata 就相当于下载软件的时候不需要依赖关系可以直接下载 但是只能下载不能在扩展其他库

1 先在/目录下创建一个iso的空目录(不要在目录下放东西)

1. [root@localhost ~]# mkdir /iso

2 将光盘镜像挂载到刚刚创建的/iso目录

[root@localhost ~]# mount /dev/cdrom /iso/
mount: /dev/sr0 写保护,将以只读方式挂载

3 将原有的yum源文件移走备份

[root@shark ~]# mkdir /etc/yum.repos.d/back
[root@shark ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/back/

4 配置yum源

[root@localhost ~]# vim /etc/yum.repos.d/CentOS-Local-ISO.repo
[cdrpm]
name=cdrpm
baseurl=file:///iso
enabled=1
gpgcheck=0

5 清理缓存并缓存新的数据

[root@localhost ~]# yum clean all && yum makecache

基于本地磁盘配置yum源

可扩展性强,就是可以向本地的仓库添加其他的rpm软件包
会占用本地的磁盘空间,只可对本机提供YUM服务

1 先安装createrpo工具

[root@shark ~]# yum -y install createrepo

2 先把光盘镜像里的Packages目录拷贝到本地磁盘(目录名称自取,后面保持一致)

[root@localhost ~]# mkdir /localYum   创建一个本地yum源目录
[root@localhost ~]# cp -a /iso/Packages/ /localYum/

3 生成元数据

createrepo  /localYum/Packages

查看生成的repodata目录

ll       /locaYum/Packages/repodata/

4 配置yum源

进入/etc/yum.repos.d
vim /etc/yum.repos.d/CentOS-local.repo
[localrpm]
name=localYum
baseurl=file:///locaYum/Packages
enabled=1
gpgcheck=0

5 清理缓存并缓存新的数据

基于ftp文件传输协议的YUM源

可扩展性强,可以向互联网上的任意主机提供可扩展性强,可以向互联网上的任意主机提供 YUM 服务,前提是 互联网上的主机可以访问到 FTP Server
会占用 FTP Server 的磁盘空间

安装FTP Server软件 ——vsftpd

yum install  vsftpd -y

修改配置文件保证这个服务端口是一直打开的

配置文件 /etc/vsftpd/vsftpd.conf

anonymous_enable=YES

启动服务,并检查监听端口

systemctl start vsftpd
[root@shark ftp]# ss -ntal |grep 21
LISTEN     0      1024   127.0.0.1:9121                     *:*
LISTEN     0      32          :::21                      :::*

拷贝数据到指定的文件夹下

mkdir   /var/ftp/ftpYum
mount   /dev/cdrom   /media
cp   -a   /media/Packages/    /var/ftp/ftpYum/

创建源数据

cd     /var/ftp
createrepo    -o ftpYum               --baseurl=ftpYum/Packages          ftpYum/Packages
              -o 源数据存放在这个目录下   查找软件包的时候这个作为基础 url   对这个目录下的软件包创建源数据

计划把创建的源数据目录repodata放在/var/ftp/ftoYum下这个可以使用-o选项实现

具体配置操作

开启ftp服务
[root@localhost ~]# yum install -y vsftpd   #下载ftp包
[root@localhost ~]# sysytemctl start vsftpd   #开启vsftpd端口
[root@localhost ~]# ss -ntal |grep 21   #监听一下21端口是否开启
[root@localhost ~]# systemctl stop firewalld  #关闭防火墙
这时就可以从物理机上访问本虚拟机的/var/ftp/
创建ftpYum源
[root@localhost ~]#cd /var/ftp     先进入ftp目录
[root@localhost ~]#mkdir  ftpYum  创建ftpYum目录
[root@localhost ~]#cp -a  /media/Packages/  /var/ftp/ftpYum/  将光盘中的packages复制到ftpYum下
[root@localhost ~]#creatrepo -o ftpYum --baseurl=ftpYum/Packages  ftpYum/packages    创建源数据到这个ftpYum下
查看会这个目录下会有一个Packages和repodata的文件
[root@localhost ~]# vim /etc/yum.repos.d/localyum.repo
[localyum]
name=local yum repo
baseurl=ftp://127.0.0.1/ftpYum/Packages
enabled=1
[root@localhost ~]#yum remove tree
[root@localhost ~]#yum clean all && yum makecache
这个就可以在Yum源上面进行下载软件包和卸载软件包

注意 安装虚拟机进行分盘时一定把/var分区分大点 里面会存放Yum源 小的话会影响虚拟机性能

相关文章

  • rpm命令 YUM源基本操作

    包管理 rpm 平台 noarch 就是没有任何硬件等级上的限制。一般来说,这种类型的 RPM 档案,里面应该没有...

  • 十一、软件管理

    一、rpm介绍 rpm安装 查询 卸载 二 yum方式管理 本地yum源: yum操作 更换网络yum源--ali...

  • Linux-10 软件管理(rpm yum)

    导语: 一、rpm介绍 rpm安装 各种查询 卸载 二 yum方式管理 本地yum源: yum操作 更换网络yum...

  • CentOS笔记

    yum常用命令 yum配置本地源 配置RPM源 挂载系统ISO镜像 (将ISO文件上传到/usr/local) 修...

  • yum更换国内源、yum下载rpm包、源码包安装

    76 yum更换国内源 更换基础仓库源 77 yum下载rpm包 更换yum仓库源 yum下载rpm包 yum下载...

  • mysql8 centos7安装步骤

    下载rpm https://dev.mysql.com/downloads/repo/yum/ 命令 安转软件源 ...

  • Ⅲ.rpm&yum

    yum作用 自动下载RPM包并且安装,可自动处理依赖关系 yum 语法 yum常用命令 更改yum_BASE源 注...

  • rpm命令

    RPM命令(基本被淘汰) yum命令:帮我们在安装时解决软件包依赖,背后还是使用rpm,不需要直接使用rpm,...

  • 阿里云Centos 7安装MYSQL

    1.下载RPM源 直接使用yum命令下载mysql来进行安装是不能成功的,安装过程会有问题,这里需要使用rpm命令...

  • Centos7上安装mysql 详细教程

    1.下载RPM源 直接使用yum命令下载mysql来进行安装是不能成功的,安装过程会有问题,这里需要使用rpm命令...

网友评论

      本文标题:rpm命令 YUM源基本操作

      本文链接:https://www.haomeiwen.com/subject/ejowrctx.html