• 软件包管理


    • tar

      • *.Z   使用compress压缩的文件

        *.zip      使用zip压缩的文件

        *.gz       使用gzip压缩

        *.bz2     使用bzip2压缩

        *.xz       使用xz压缩

        *.tar      使用tar工具打包,没有压缩

        *.tar.gz        使用tar工具打包,经过gzip压缩

        *.tar.bz2      使用tar工具打包,经过bzip2压缩 

        *.tar.xz        使用tar工具打包,经过xz压缩

      • gzip

          • Usage: gzip [OPTION]... [FILE]...   
          • -c 保留源文件   
          • -d 解压缩   
          • -h 显示帮助   
          • -t 检查压缩文件的数据一致性,用来确定压缩文件是否有错误   
          • -v 显示压缩包的相关信息,包括压缩比等   
          • -V 显示版本号   
          • -1 压缩最快,压缩比低   
          • -9 压缩最慢,压缩比高
          • 举例:
          • [root@wood wqf]# gzip -c ifcfg-wqc > ifcfg-wqc.gz
            [root@wood wqf]# ll
            总用量 24
            -rw-rw-rw- 1 root root    0 5月  15 09:51 hjh.txt
            -rw-r--r-- 1 root root  365 5月  20 10:44 ifcfg-wqc
            -rw-r--r-- 1 root root  274 5月  20 10:50 ifcfg-wqc.gz
            -rw-r--r-- 1 root root  361 5月  20 10:44 ifcfg-wqf
            -rw-r--r-- 1 root root  273 5月  20 10:50 ifcfg-wqf.gz

          • [root@wood wqf]# gzip -d ifcfg-wqc.gz
            [root@wood wqf]# gzip -d ifcfg-wqf.gz
            [root@wood wqf]# ll
            总用量 16
            -rw-rw-rw- 1 root root    0 5月  15 09:51 hjh.txt
            -rw-r--r-- 1 root root  365 5月  20 10:50 ifcfg-wqc
            -rw-r--r-- 1 root root  361 5月  20 10:50 ifcfg-wqf
            -rw-r--r-- 1 root root 2381 5月  20 10:41 passwd
      •  bzip2

        • [root@localhost test]# bzip2 -h    
        • -h 帮助    
        • -d 解压    
        • -z 压缩 默认值    
        • -k 保留源文件    
        • -v 查看版本信息    
        • -1 ..-9   同gzip相同    
        • bzip2的使用与gzip相同,两种工具的区别就是压缩算法不同,bzip2的压缩比更好一些,bzip的包查看的时候使用的是bzcat,bzmore,bzless,bzgrep同gzip用法相同
        • 举例:
        • [root@wood wqf]# bzip2 -k ifcfg-wqc > ifcfg-wqc.gz2
          [root@wood wqf]# ll
          总用量 20
          -rw-rw-rw- 1 root root    0 5月  15 09:51 hjh.txt
          -rw-r--r-- 1 root root  365 5月  20 10:50 ifcfg-wqc
          -rw-r--r-- 1 root root  297 5月  20 10:50 ifcfg-wqc.bz2
          -rw-r--r-- 1 root root    0 5月  20 11:00 ifcfg-wqc.gz2
          -rw-r--r-- 1 root root  361 5月  20 10:50 ifcfg-wqf
          -rw-r--r-- 1 root root 2381 5月  20 10:41 passwd

        • [root@wood wqf]# rm -fr ifcfg-wqc
          [root@wood wqf]# bzip2 -d ifcfg-wqc.bz2
          [root@wood wqf]# ll
          总用量 16
          -rw-rw-rw- 1 root root    0 5月  15 09:51 hjh.txt
          -rw-r--r-- 1 root root  365 5月  20 10:50 ifcfg-wqc
          -rw-r--r-- 1 root root    0 5月  20 11:00 ifcfg-wqc.gz2
          -rw-r--r-- 1 root root  361 5月  20 10:50 ifcfg-wqf
          -rw-r--r-- 1 root root 2381 5月  20 10:41 passwd

        xz

        • -d 解压缩   
        • -t 检查压缩文件的完整性   
        • -l 查看压缩文件的相关信息   
        • -k 保留源文件   
        • -c 将信息输出到显示器上   
        • -0 ... -9 指定压缩级别   
        • -h 显示帮助
        • 举例:
        • [root@wood wqf]# xz -k passwd
          [root@wood wqf]# ll
          总用量 20
          -rw-r--r-- 1 root root 2381 5月  20 10:41 passwd
          -rw-r--r-- 1 root root 1020 5月  20 10:41 passwd.xz

        • [root@wood wqf]# rm -fr passwd
          [root@wood wqf]# xz -d passwd.xz
          [root@wood wqf]# ll
          总用量 16
          -rw-r--r-- 1 root root 2381 5月  20 10:41 passwd

        tar

      • 大多数压缩工具只能针对单一文件进行操作,如果你要压缩目录的话就会很麻烦,这时候我们可以使用tar这个打包工具,将目录内的多个文件打包成一个文件,再进行压缩。
      • 用法: tar [选项...] [FILE]...   
      •    -C 解压到指定目录   
      •    -c 建立tar包   
      •    -t 查看tar包内的文件   
      •    -x 解压tar包   
      •    -p 不修改文件属性   
      •    -f 指定文件名称   
      •    -j 使用bzip2算法   
      •    -J 使用xz算法   
      •    -z 使用gzip算法   
      •    -P 允许压缩路径中包含有"/"   
      •    -v 显示详细信息   
      •    -?, --help 查看帮助   
      •    --exclude 压缩过程中排除指定的文件
      •     举例:
          • [root@wood wqf]# tar -czf sysconfig.tar.gz sysconfig
            [root@wood wqf]# tar -cjf sysconfig.tar.bz2 sysconfig
            [root@wood wqf]# tar -cJf yy.tar.xz sysconfig
            [root@wood wqf]# ll
            总用量 52
            -rw-r--r-- 1 root root  365 5月  20 10:50 ifcfg-wqc
            -rw-r--r-- 1 root root  361 5月  20 10:50 ifcfg-wqf
            -rw-r--r-- 1 root root 2381 5月  20 10:41 passwd
            drwxr-xr-x 7 root root 4096 5月  20 10:45 sysconfig
            -rw-r--r-- 1 root root 8331 5月  20 11:19 sysconfig.tar.bz2
            -rw-r--r-- 1 root root 9074 5月  20 11:19 sysconfig.tar.gz
            drwxrwxrwx 3 root root   17 5月  15 10:20 yy
            -rw-r--r-- 1 root root 8388 5月  20 11:20 yy.tar.xz

            [root@wood wqf]# tar -xf sysconfig.tar.gz
            [root@wood wqf]# tar -xf yum.tar.bz2
            [root@wood wqf]# ll
            总用量 44
            drwxr-xr-x 7 root root 4096 5月  20 10:45 sysconfig
            -rw-r--r-- 1 root root 9074 5月  20 11:19 sysconfig.tar.gz
            drwxr-xr-x 2 root root   57 5月  20 11:25 yum
            -rw-r--r-- 1 root root  211 5月  20 11:26 yum.tar.bz2

          • [root@wood wqf]# tar -xf yum.tar.xz
            [root@wood wqf]# ll
            总用量 36
            drwxr-xr-x 2 root root   57 5月  20 11:25 yum
            -rw-r--r-- 1 root root  211 5月  20 11:26 yum.tar.bz2
            -rw-r--r-- 1 root root  232 5月  20 11:28 yum.tar.xz

    rpm

            rpm最早是由redhat开发出来,由于很好用,所以很多发行版也利用rpm来进行软件包的管理。RPM全名RedHat Package Manager,最大的特点就是把需要安装的软件提前编译,打包,然后在rpm包里面存放了用以记录软件依赖关系的相关数据,当用户安装时,优先查看这些数据,如果系统满足数据要求就安装软件包,否则不能安装,安装完成后,将软件包相关信息记录到rpm自己的数据库中,便于查询和卸载等。所以说rpm的优点是方便安装,卸载,查询,缺点就是只能在指定的操作系统上使用,所以不同厂商的rpm包,甚至同一厂商不同版本操作系统的rpm包都不通用。
     
    rpm包示例:
    dhcp-server- 4.3.6 -30 .el8 .x86_64 .rpm
    软件名称 版本 编译次数 适用的系统 适用的平台 后缀名 软件名 就是软件包的名称 版本 每次更新版本号都会改变,用来帮助用户判断软件包新旧的 编译次数 也是帮助用户判断软件包新旧的 适用的系统 在哪个系统上可以安装,CentOS和rhel的多数软件包都是通用的 适用的平台 指的是硬件平台,比如如果你是32位的CPU就无法安装这个软件包
       rpm包的相关文件一般都会放在对应的目录中
       配置文件会放在/etc下
       执行文件会放在/usr/bin下,
       链接库文件会放在/usr/lib下,
       帮助与说明文档会放在/usr/share/man和/usr/share/doc目录下

        参数

    [root@localhost Packages]# rpm -ivh dhcp-server-4.3.6-30.el8.x86_64.rpm
    -i 安装
    -v 显示详细信息
    -h 显示安装进度
    -e 卸载
    -U 升级,如果系统中有低版本的就会升级,如果系统没有安装相应的包,则安装
    -F 有条件的升级,会检测用户指定的软件包是否已安装到linux中
    -nodeps 忽略软件包之间的依赖关系
    --replacefiles 覆盖文件
    --replacepkgs 修复
    --force 强制
    --test 测试
    -q 查询指定的软件包是否安装
    -qi 查看指定的软件包的信息,包括开发商,版本,说明
    -ql 查看指定软件包中所包含的文件列表
    -qc 查看指定软件包的配置文件
    -qa 查看本机安装的所有包
    -qf 查看一个文件归属于哪个已安装的软件包

    • yum

      • yum的介绍

        不管是安装、更新或者删除,YUM都会自动的帮你解决软件间的依赖性问题。通过YUM会比单纯使用rpm来得更加方便。

        YUM包含下列几项组件:

        YUM下载源:如果把所有RPM文件放在某一个目录中,这个目录就可称为“YUM下载源(YUM Repository)”。你也可以把YUM下载源,通过HTTP、FTP等方式分享给其他计算机使用;当然,你也可以直接使用别人建好的YUM下载源来取得需安装的软件。

        YUM工具:YUM提供了一个名为yum的命令,你可以使用yum来使用YUM提供的众多功能。

        YUM插件:YUM还允许第三方厂商(3rd Party)开发YUM的插件(Plug-in),让用户可以任意的扩充YUM的功能,比如说有的插件可以帮助选择最快的yum源

        YUM缓存:YUM运行时,会从YUM下载源获得软件信息与文件,并且暂存于本机的硬盘上。这个暂存的目录,称为“YUM缓存(YUM cache)”。缓存目录为/var/cache/yum

         yum源的配置
      •  将下载好的rpm软件包存放到一个指定的目录中
        [root@localhost ~]# cp /mnt/AppStream/Packages/* myrepo/

      • 从光盘镜像中安装createrepo工具
        [root@localhost ~]# yum install createrepo

        利用createrepo工具生成软件包之间的依赖关系数据文件
        [root@localhost ~]# createrepo myrepo/

      • 建立针对此目录的下载源配置文件
        [root@localhost ~]# vim /etc/yum.repos.d/myrepo.repo
        [myself]
        name=packages
        enabled=1
        gpgcheck=0
        baseurl=file:///root/myself

        从新的下载源安装软件包
        [root@localhost ~]# yum install httpd
       
      • [root@localhost ~]# yum [OPTIONS...] COMMAND [ARGVS...]
        -y                                如果遇到问题,代替回答yes
        --installroot=/path       指定软件包安装的根目录
         
      • 清除yum缓存
        [root@localhost ~]# yum clean all
        如果有些时候你发现yum运行不太正常,这可能是yum缓存数据错误导致的,所以你需要将yum的缓存清除
        查看软件包
        [root@localhost ~]# yum list
        查看有哪些可用组
        [root@localhost ~]# yum grouplist
         查看dhcp-server这个包的信息  
        [root@localhost ~]# yum info dhcp-server
        搜索dhcp-server这个软件包
        [root@localhost ~]# yum search dhcp-server
        yum安装
        安装dhcp-server软件包
        [root@localhost ~]# yum install dhcp-server -y
        安装一组软件包
        [root@localhost ~]# yum groupinstall '系统工具' -y    
        卸载软件包
        删除一个软件包
        [root@localhost ~]# yum remove dhcp-server -y
        删除一组软件包
        [root@localhost ~]# yum groupremove '系统工具' -y
        使用epel源
        EPEL是一个自由开源的附加软件包仓库,可用于 CentOS 和 RHEL 服务器。顾名思义,EPEL 仓库提供了额外的软件包,这些软件在 CentOS 8 和 RHEL 8 的默认软件包仓库中不可用。
         安装epel源
         epel地址:https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
        [root@localhost ~]# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    • dnf

        DNF是新一代的rpm软件包管理器。最早出现在 Fedora 18 这个发行版中,在Fedora 22中正式取代了yum

        DNF器克服了YUM的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。

        安装

        在CentOS7中需要单独安装
        yum install epel-release -y
        yum install dnf

        在CentOS8中系统默认使用的是DNF,我们所看到的yum只是dnf的一个软连接
        [root@localhost ~]# which yum
        /usr/bin/yum
        [root@localhost ~]# ll /usr/bin/yum
        lrwxrwxrwx. 1 root root 5 5月  14 2019 /usr/bin/yum -> dnf-3

                  相关目录和使用
        目录
        /etc/dnf/dnf.conf         配置文件
        /etc/dnf/aliases.d/        为相关命令定义别名的如dnf alias add rm=remove
        /etc/dnf/modules.d&/etc/dnf/modules.defaults.d     模块的设置
        /etc/dnf/plugins/     插件的设置
        /etc/dnf/protected.d/     受保护的软件包的设置
        /etc/dnf/vars/     变量设置

                  查看DNF的版本
        [root@localhost ~]# dnf --version

        查看dnf的可用软件仓库
        [root@localhost ~]# dnf repolist

        查看所有软件仓库
        [root@localhost ~]# dnf repolist all

        查看已安装的软件包
        [root@localhost ~]# dnf list installed  

        查看可安装的软件包
        [root@localhost ~]# dnf list available

        搜索dhcp-server
        [root@localhost ~]# dnf search dhcp-server

        查询一个文件是由哪个软件包提供的
        [root@localhost ~]# dnf provides /usr/sbin/dhclient

        查询软件包详细信息
        [root@localhost ~]# dnf info dhcp-server

        安装软件包
        [root@localhost ~]# dnf install dhcp-server

        升级软件包
        [root@localhost ~]# dnf update systemd

        检查软件包的更新
        [root@localhost ~]# dnf check-update

        升级所有可升级的软件包
        [root@localhost ~]# dnf update

        升级所有可升级的软件包
        [root@localhost ~]# dnf upgrade

        卸载软件包
        [root@localhost ~]# dnf remove dhcp-server
        [root@localhost ~]# dnf erase dhcp-server

        删除无用孤立的软件包
        [root@localhost ~]# dnf autoremove

        清除缓存中的无用数据
        [root@localhost ~]# dnf clean all

        获取某一个命令的帮助
        [root@localhost ~]# dnf help clean

        获取dnf命令的帮助
        [root@localhost ~]# dnf help

        查看历史命令
        [root@localhost ~]# dnf history

        重新执行历史命令中的第19条
        [root@localhost ~]# dnf history redo 19

        查看软件包组
        [root@localhost ~]# dnf grouplist

        安装一组软件包
        [root@localhost ~]# dnf groupinstall '系统工具'

        升级一组软件包
        [root@localhost ~]# dnf groupupdate '系统工具'

        删除一组软件包
        [root@localhost ~]# dnf groupremove '系统工具'

        从特定的软件仓库安装软件包
        [root@localhost ~]# dnf --enablerepo=epel install zabbix

        将软件包更新到最新的稳定版
        [root@localhost ~]# dnf distro-sync

        重新安装指定的软件包
        [root@localhost ~]# dnf reinstall dhcp-server

        降级软件包
        [root@localhost ~]# dnf downgrade dhcp-server

     

  • 相关阅读:
    快速修改elementUI组件样式
    设置占位符颜色!
    缩放屏幕的时候banner被压缩变形!
    less一些用法整理
    CentOS 7 的目录结构介绍
    为什么需要VMware的 快照、克隆?
    虚拟机概述
    Linux的简单介绍
    VMware克隆已安装的虚拟机
    【vim使用】分屏命令、操作分屏
  • 原文地址:https://www.cnblogs.com/woodware/p/12922607.html
Copyright © 2020-2023  润新知