• 已整理rpm 包管理与yum服务器配置操作


    目录:

      1、零散软件包的管理

      2、挂载光盘

      3、使用rpm命令管理软件

      4、YUM 软件包仓库-自动解决依赖关系

      5、使用yum命令

      6、自建yum服务器

      7、自定义yum源

      8、通过yum到公网上面下载rpm包

      9、yum update 与 upgrade 区别

    1、零散软件包的管理
    从光盘里面的Packages目录获取需要的RPM软件包;

    2、挂载光盘

    # mount /dev/sr0 /mnt        #或搭建web服务器,把光盘的所有内容放到web服务器上也可以    

    3、使用rpm命令管理软件
    RPM Package Manager, RPM包管理器

    【1】 查询rpm包及相关信息
    语法格式:rpm -q 软件名..              ->查询软件包

    # rpm -q vsftpd
    vsftpd-3.0.2-29.el7_9.x86_64               #能查询到,表示已安装了
    
    常用的用法有: # rpm
    -qa |grep vsftpd           #查询所有包,然后grep 过滤关键字 # rpm -ql vsftpd                 #查看已安装软件包的安装清单,查看安装的软件包生成了哪些文件 # rpm -qlp vsftpd-3.0.2-25.el7.x86_64.rpm   #查看未安装的软件包的安装清单,必须指定这个rpm在哪个位置 # rpm -qi httpd                   #查询已安装包:httpd的相关元数据信息 # rpm -qip vsftpd-3.0.2-25.el7.x86_64.rpm     #查询:vsftpd-3.0.2-25.el7.x86_64.rpm 这个包的信息,可以已安装,也可能未安装


    【2】安装rpm包
    语法格式:rpm -ivh 软件名-版本信息.rpm        ->安装软件包,没有安装位置的选择,无法解决依赖


    【3】卸载rpm包
    语法格式:rpm -e --nodeps 软件名... ->卸载软件包,其中--nodeps 表示不检测依赖包

    如下实例:

    # rpm -qa |grep httpd                #httpd包依赖于httpd-tools ,如果我们卸载了httpd-tools ,不带--nodeps ,会把httpd一起卸载了
    httpd-tools-2.4.6-97.el7.centos.5.x86_64
    httpd-2.4.6-97.el7.centos.5.x86_64
    
    # rpm -e --nodeps httpd-tools           #带--nodeps,表示只卸载httpd-tools,不会卸载依赖此包的rpm包
    
    # rpm -qa |grep httpd                #发现只卸载了httpd-tools包,依赖于它的包没有事
    httpd-2.4.6-97.el7.centos.5.x86_64


    【4】通过rpm包升级Linux内核

    # uname -r                       #查看当前内核版本
    3.10.0-957.el7.x86_64
    
    # rpm -ivh kernel-3.10.0-957.el7.x86_64.rpm    #时间比较长,需要耐心的等待

    【5】重新构建rpm数据库

    # cd /var/lib/rpm         #rpmdb所在目录
    # rm -f __db.*           #清除原rpmdb文件
    # rpm --rebuilddb         #重建rpm数据库
    # yum clean all           #清除所有yum的缓存                        

    a.当无法使用rpm -qi 查询已安装的rpm信息时,可尝试使用使用重建rpm数据库操作;

    b.或者直接现象是所有与rpm相关的安装查询指令都会卡主,进程处于S状态,无法自行结束;
    # ps -aux |grep rpm

     以上2种方法可以尝试重建rpm数据库

    4、YUM 软件包仓库-自动解决依赖关系
    服务:可以为客户端自动解决依赖关系,安装软件包

    客户端手写一个.repo文件,把repo文件放到:/etc/yum.repos.d/ 如下:

    [cdrom]                    ->仓库标识
    name=cdrom                  ->仓库描述信息
    baseurl=file:///mnt            ->指定文件位置
    enabled=1                  -> 等于1表示开启
    gpgcheck=0                  -> 关闭,不检测包的签名                                        

    一个简单的repo文件就配置好了!

    注意:错误的repo配置文件会影响正确的配置文件。

    5、使用yum命令

    # yum repolist          #列出仓库信息,能显示但并不一定能使用
    
    # yum install httpd       #会分析安装httpd软件包,需要哪些包(依赖包)
    
    # yum remove httpd-tools    #不要使用这种方法卸载软件包,会导致httpd-tools包及依赖于httpd-tools包一起被卸载,建义不要跟-y,推荐用:rpm -e --nodeps 软件包 的方式卸载
    
    # yum clean all          #清空缓存
    # yum makecache          #生成缓存
    
    # yum provides vim        #查询关键字(比如命令名字),由哪个包提供,非常实用
    
    # yum search vim         #查看与关键字匹配的包,非常实用

     

     

    6、自建yum服务器

    # yum install vsftpd            #使用ftp来做yum源
    
    # systemctl start vsftpd
    # systemctl enable vsftpd
    
    # mkdir /var/ftp/CentOS-1804     #存放光盘的目录
    
    # mount /dev/sr0 /var/ftp/CentOS-1804

    然后编辑客户端的repo 文件:

    [cdrom]                        ->仓库标识
    name=cdrom                      ->仓库描述信息
    baseurl=ftp://192.168.1.254/CentOS-1804    ->指定文件位置
    enabled=1                      -> 等于1表示开启
    gpgcheck=0                     -> 关闭,不检测包的签名

    完成以上配置,一个yum源服务器配置完毕!


    7、自定义yum源

    # yum -y install createrepo          #createrepo用于生成repodata文件
    
    # createrepo /tools/other/         #后面跟上存放rpm包的绝对路径
    
    # ls /tools/other/               #会生成repodata 目录,里面包含5个压缩文件

    客户端再次编写repo文件:

    [myrpm]    
    name=myrpm    
    baseurl=file:///tools/other/       #也可以传到ftp的yum源服务器上面去    
    enabled=1    
    gpgcheck=0


    8、通过yum到公网上面下载rpm包
    应用场景:
    公司内网,服务器没有上网权限,需要手动下载rpm包,且包含相关的依赖包,然后再通过createrepo制做成yum源,上传至内网的yum源服务器,供内网Linux服务器使用;

    # yum install yum-plugin-downloadonly
    
    # mkdir -p    /opt/rpm                         #创建目录用来缓存rpm包    
    # yum install --downloadonly --downloaddir=/opt/rpm nginx      #不安装,只下载nginx及相关的依赖包,并存放至:/opt/rpm 这个目录下
    # ls /opt/rpm/                                #可以看到已下载的文件
    centos-indexhtml-7-9.el7.centos.noarch.rpm nginx-filesystem-1.20.1-9.el7.noarch.rpm
    nginx-1.20.1-9.el7.x86_64.rpm openssl11-libs-1.1.1k-3.el7.x86_64.rpm
    
    # createrepo /opt/rpm/                            #生成repodata 目录,可以把整个目录/opt/rpm传至内网的yum服务器,供内网使用
    # ls /opt/rpm/
    centos-indexhtml-7-9.el7.centos.noarch.rpm nginx-filesystem-1.20.1-9.el7.noarch.rpm repodata
    nginx-1.20.1-9.el7.x86_64.rpm openssl11-libs-1.1.1k-3.el7.x86_64.rpm


    9、yum update 与 upgrade 区别
    yum update和yum upgrade的功能是一样的,都是将需要更新的package更新至软件源中的最新版。
    区别是 yum upgrade会删除旧版本的package,而yum update则会保留。因此如果软件依赖旧版本的package。

    建议:最好是使用 yum update,确保不会出现兼容问题。

    升级软件包的时候,如果不需要升级的内核,可以添加 exclude 参数过滤,例如centos的升级

    # yum --exclude=kernel* --exclude=centos-release* -y update

    或者直接修改配置文件 /etc/yum.conf, 在[main]配置添加配置项

    exclude=kernel*
    exclude=centos-release*

    之后重新执行

    # yum -y update
  • 相关阅读:
    关于父子页面的交互
    Spring在代码中获取bean的几种方式(转:http://www.dexcoder.com/selfly/article/326)
    关于Zookeeper
    Java 生成pdf表格文档
    Spring 框架中Http请求处理流程
    关于redis
    Xstream 解析xml文件内容
    ArrayBlockingQueue 和LinkedBlockQueue
    spring IOC
    springboot启动过程
  • 原文地址:https://www.cnblogs.com/reachos/p/16351203.html
Copyright © 2020-2023  润新知