• Linux软件安装方式 - Tarball&RPM&YUM


    软件安装

    简介

    概念详解

    # 概念详解
    - 开放源码: 程序码, 写给人类看的程序语言, 但机器并不认识, 所以无法执行;
    - 编译器: 将程序码转译成为机器看的懂得语言, 就类似翻译者的角色;
    - 可可执行文件: 经过编译器变成二进制程序后, 机器看的懂所以可以执行的文件;
    - make: 作用是开始进行源代码编译;
    - configure: 一般用来生成 Makefile, 为下一步的编译做准备;
    - Tarball软件: 所谓的 Tarball 文件, 其实就是将软件的所有源代码文件先以 tar 打包, 然后再以压缩技术来压缩, 通常最常见的就是以 gzip 来压缩;
    - Tarball: linux系统下最方便的打包工具, 以tar这个指令来打包与压缩的档案;
    - RPM: 全名是"RedHat Package Manager"简称则为 RPM; 通过预先编译并打包成为 RPM 文件格式后, 再安装软件的一种方式;
    - SRPM: SRPM 所提供的套件内容并没有经过编译, 提供的是原始码;其中SRPM中包含了所有 RPM 档案所提供的数据;
    - YUM: Yum是一个交互式的、基于RPM的包管理器; 它可以自动执行系统更新, 包括依赖关系基于"仓库"元数据的分析和废弃处理;
    
    # 常用相关命令
    - file: 用于识别文件的类型, 也可以用来辨别一些内容的编码格式, 通过分析文件头部信息中的标识来显示文件类;
    - type: 用来显示指定命令的类型, 判断给出的指令是内部指令还是外部指令;
    
    # 软件安装方式
    ##Tarball方式
    - 取得原始文件: 将 tarball 文件在 /usr/local/src 目录下解压缩;
    - 取得步骤流程: 进入新创建的目录下面,去查阅 INSTALL 与 README 等相关文件内容  (很重要的步骤) ;
    - 相依属性软件安装: 根据 INSTALL/README 的内容察看并安装好一些相依的软件  (非必要) ;
    - 创建 makefile: 以自动侦测程序  (configure 或 config)  侦测作业环境,并创建 Makefile 这个文件;
    - 编译: 以 make 这个程序并使用该目录下的 Makefile 做为他的参数配置文件,来进行 make  (编译或其他)  的动作;
    - 安装: 以 make 这个程序,并以 Makefile 这个参数配置文件,依据 install 这个标的  (target)  的指定来安装到正确的路径;
    
    ##RPM方式
    - 将 RPM 由厂商的网页下载下来; 
    - 解决 RPM 包管理依赖;
    - 通过 RPM -ivh 安装软件;
    
    ##YUM方式
    - 配置网络(网络可通);
    - 修改数据源;
    - 通过 yum install命令安装软件;
    

    目前在 Linux 界软件安装方式最常见的有两种,分别是:

    • dpkg: 这个机制最早是由 Debian Linux 社群所开发出来的, 通过 dpkg 的机制, Debian 提供的软件就能够简单的安装起来, 同时还能提供安装后的软件信息, 实在非常不错; 只要是衍生于 Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软件的, 包括 B2D, Ubuntu 等等;
    • RPM: 这个机制最早是由 Red Hat 这家公司开发出来的, 后来实在很好用, 因此很多 distributions 就使用这个机制来作为软件安装的管理方式; 包括 Fedora, CentOS, SuSE 等等知名的开发商都是用这咚咚;
    istribution 代表 软件管理机制 使用指令 线上升级机制(指令)
    Red Hat/Fedora RPM rpm, rpmbuild YUM (yum)
    Debian/Ubuntu DPKG dpkg APT (apt-get)

    RPM 与 SRPM区别:

    文件格式 文件名格式 直接安装与否 内含程序类型 可否修改参数并编译
    RPM xxx.rpm 已编译 不可
    SRPM xxx.src.rpm 不可 未编译之源代码

    file 命令使用

    # 查看系统的文件
    $ file /bin/bash
    /bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=9223530b1aa05d3dbea7e72738b28b1e9d82fbad, stripped
    # 是 binary 且是可以执行的时候, 就会显示可执行文件类别 (ELF 64-bit LSB executable), 同时会说明是否使用动态函数库 (shared libs);
    
    # 查看系统提供的文件
    $ file /etc/init.d/network
    /etc/init.d/network: Bourne-Again shell script, ASCII text executable
    # 如果是一般的 script , 就会显示出 text executables 之类的字样;
    

    命名规范

    Linux安装包命名规范,通过 rp-pppoe-3.11-5.el7.x86_64.rpm 查看文件的意义:

    • rp-pppoe: 软件名称;
    • 3.11: 软件版本信息;
    • 5: 释出版本次数;
    • el7.x86_64: 操作硬件平台;
    • rpm: 扩展名;
    平台名称 适合平台说明
    i386 几乎适用于所有的 x86 平台,不论是旧的 pentum 或者是新的 Intel Core 2 与 K8 系列的 CPU 等等,都可以正常的工作!那个 i 指的是 Intel 相容的 CPU 的意思,至于 386 不用说,就是 CPU 的等级啦!
    i586 就是针对 586 等级的计算机进行最优化编译。那是哪些 CPU 呢?包括 pentum 第一代 MMX CPU, AMD 的 K5, K6 系列 CPU (socket 7 插脚) 等等的 CPU 都算是这个等级;
    i686 在 pentun II 以后的 Intel 系列 CPU ,及 K7 以后等级的 CPU 都属于这个 686 等级! 由于目前市面上几乎仅剩 P-II 以后等级的硬件平台,因此很多 distributions 都直接释出这种等级的 RPM 文件。
    x86_64 针对 64 位的 CPU 进行最优化编译设置,包括 Intel 的 Core 2 以上等级 CPU ,以及 AMD 的 Athlon64 以后等级的 CPU ,都属于这一类型的硬件平台。
    noarch 就是没有任何硬件等级上的限制。一般来说,这种类型的 RPM 文件,里面应该没有 binary program 存在, 较常出现的就是属于 shell script 方面的软件。

    Tarball&RPM&YUM

    Tarball

    # Tarball 安装流程
    - 将 Tarball 由厂商的网页下载下来; 
    - 将 Tarball 解开,产生很多的源代码文件; 
    - 开始以 gcc 进行源代码的编译 (会产生目标文件 object files); 
    - 然后以 gcc 进行函数库、主、副程序的链接,以形成主要的 binary file; 
    - 将上述的 binary file 以及相关的配置文件安装至自己的主机上面;
    
    # Tarball 安装常用命令
    - ./configure: 建立 Makefile 文件;
    - make clean: 讀取 Makefile 中關於 clean 的工作;
    - make:  會依據 Makefile 當中的預設工作進行編譯的行为;
    - make install: 會依據 Makefile 這個文件裡面關於 install 的項目;
    
    # Tarball 默认安装路径
    - /usr/local/etc: 配置文件
    - /usr/local/lib: 函数库
    - /usr/local/bin: 可执行文件
    - /usr/local/man: 线上说明文档, 主要是可通过 man 命令查看命令使用文档
    
    # 建议
    - 最好将 tarball 的原始数据解压缩到 /usr/local/src 当中;
    - 安装时, 最好安装到 /usr/local 这个默认路径下;
    - 考虑未来的卸载过程, 最好可以将每个软件单独的安装在 /usr/local 下面;
    - 为安装到单独目录的软件之 man page 加入 man path 搜寻;
    
    • 安装 nginx 依赖
    $ yum install -y wget gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel 安装
    
    • 下载&解压 nginx 源码包
    # 下载 nginx 源码包
    $ wget http://nginx.org/download/nginx-1.16.1.tar.gz
    # 解压 nginx 源码包
    $ tar -zxvf nginx-1.16.1.tar.gz -C /usr/local/src
    # 进入 nginx 源码路径
    $ cd /usr/local/src/nginx-1.16.1
    
    • 参数配置&Makefile生成
    # 查詢可用的參數
    $ ./configure --help
    
    # 参数配置
    $ ./configure --prefix=/usr/local/nginx \  # 安装路径指定
    --sbin-path=/usr/local/nginx/sbin/nginx \  
    --modules-path=/usr/local/nginx/modules \
    --conf-path=/usr/local/nginx/conf/nginx.conf \
    --error-log-path=/usr/local/nginx/logs/error.log \
    --http-log-path=/usr/local/nginx/logs/access.log \
    --pid-path=/usr/local/nginx/logs/nginx.pid \
    --lock-path=/usr/local/nginx/logs/nginx.lock \
    --with-http_gzip_static_module \
    --with-http_ssl_module
    
    # 创建 Makefile
    $ make
    
    # 安装 nginx
    $ make install
    

    RPM

    # RPM 安装流程(离线、在线都可安装软件)
    - 将 RPM 由厂商的网页下载下来; 
    - 解决 RPM 包管理依赖;
    - 通过 RPM -ivh 安装软件;
    
    # RPM 默认安装路径
    - /etc: 一些配置文件放置的目录, 例如 /etc/crontab;
    - /usr/bin: 一些可可执行文件案;
    - /usr/lib: 一些程序使用的动态函数库;
    - /usr/share/doc: 一些基本的软件使用手册与说明文档;
    - /usr/share/man: 一些 man page 文件;
    
    # RPM 常用命令
    - rpm -ivh package_name
    - rpm -Uvh package_name
    - rpm -qa
    - rpm -e package_name
    - rpm -qR package_name  # 只能查看已经安装好的rpm依赖
    - rpm -qpR package_name # 能查看未安装的rpm依赖
    
    • RPM安装软件
    # 光盘安装软件
    $ rpm -ivh /光盘挂载路径/rp-pppoe-3.11-5.el7.x86_64.rpm
    
    # 安装多个软件
    $ rpm -ivh a.i386.rpm b.i386.rpm *.rpm #  *.rpm表示许多的软件文件
    
    # 联网安装软件
    $ rpm -ivh http://website.name/path/pkgname.rpm
    
    • RPM升级
    # -Uvh: 后面接的软件即使没有安装过, 则系统将予以直接安装; 若后面接的软件有安装过旧版, 则系统自动更新至新版;
    # -Fvh: 如果后面接的软件并未安装到你的 Linux 系统上, 则该软件不会被安装; 亦即只有已安装至你 Linux 系统内的软件会被"升级";
    
    • RPM查询
    # 显示所有安装软件
    $ rpm -qa
    # 显示已安装的软件
    $ rpm -q[licdR] 已安装的软件名称
    # 显示已安装的软件
    $ rpm -qf 存在于系统上面的某个文件名
    # 查看RPM文件
    $ rpm -qp[licdR] 未安装的某个文件名称
    #选项与参数:
    #查询已安装软件的信息:
    ##-q: 仅查询,后面接的软件名称是否有安装; 
    ##-qa: 列出所有的,已经安装在本机 Linux 系统上面的所有软件名称; 
    ##-qi: 列出该软件的详细信息 (information) ,包含开发商、版本与说明等; 
    ##-ql: 列出该软件所有的文件与目录所在完整文件名 (list) ; 
    ##-qc: 列出该软件的所有配置文件 (找出在 /etc/ 下面的文件名而已) 
    ##-qd: 列出该软件的所有说明文档 (找出与 man 有关的文件而已) 
    ##-qR: 列出与该软件有关的相依软件所含的文件 (Required 的意思) 
    ##-qf: 由后面接的文件名称,找出该文件属于哪一个已安装的软件; 
    ##-q --scripts:列出是否含有安装后需要执行的脚本档,可用以 debug 喔!
    #查询某个 RPM 文件内含有的信息:
    ##-qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出某个 RPM 文件内的信息,而非已安装的软件信息;
    
    # 查找是否安装 docker-ce 软件
    # 不必要加上版本
    $ rpm -q docker-ce
    docker-ce-19.03.2-3.el7.x86_64
    
    # 显示 docker-ce 软件所有目录与文件
    $ rpm -ql docker-ce
    /usr/bin/docker-init
    /usr/bin/docker-proxy
    /usr/bin/dockerd
    /usr/lib/systemd/system/docker.service
    /usr/lib/systemd/system/docker.socket
    /var/lib/docker-engine/distribution_based_engine-ce.json
    
    # 显示 docker-ce 说明资料
    $ rpm -qi docker-ce
    Name        : docker-ce
    Epoch       : 3
    Version     : 19.03.2
    Release     : 3.el7
    Architecture: x86_64
    Install Date: Wed 21 Sep 2022 09:51:07 PM CST
    Group       : Tools/Docker
    
    # 显示 docker-ce 配置文件
    $ rpm -qc docker-ce
    $ rpm -qd docker-ce
    
    # 显示 docker-ce 依赖 (显示已安装的软件包 rpm 的依赖)
    $ rpm -qR docker-ce
    /bin/sh
    container-selinux >= 2:2.74
    containerd.io >= 1.2.2-3
    device-mapper-libs >= 1.02.90-1
    docker-ce-cli
    
    # 显示 /bin/sh 由那个软件包提供的
    $ rpm -qf /bin/sh
    
    # 查看 RPM 文档 (显示未安装的软件包 rpm 所需依赖)
    $ rpm -qpR filename.xxx.rpm
    

    RPM 可选项参数

    可下达的选项 代表意义
    --nodeps 使用时机:当发生软件属性相依问题而无法安装,但你执意安装时 危险性: 软件会有相依性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑软件的属性相依, 则可能会造成该软件的无法正常使用!
    --replacefiles 使用时机: 如果在安装的过程当中出现了“某个文件已经被安装在你的系统上面”的信息,又或许出现版本不合的讯息 (confilcting files) 时,可以使用这个参数来直接覆盖文件。危险性: 覆盖的动作是无法复原的!所以,你必须要很清楚的知道被覆盖的文件是真的可以被覆盖喔!否则会欲哭无泪!
    --replacepkgs 使用时机: 重新安装某个已经安装过的软件!如果你要安装一堆 RPM 软件文件时,可以使用 rpm -ivh *.rpm ,但若某些软件已经安装过了, 此时系统会出现“某软件已安装”的信息,导致无法继续安装。此时可使用这个选项来重复安装喔!
    --force 使用时机:这个参数其实就是 --replacefiles 与 --replacepkgs 的综合体!
    --test 使用时机: 想要测试一下该软件是否可以被安装到使用者的 Linux 环境当中,可找出是否有属性相依的问题。范例为: rpm -ivh pkgname.i386.rpm --test
    --justdb 使用时机: 由于 RPM 数据库破损或者是某些缘故产生错误时,可使用这个选项来更新软件在数据库内的相关信息。
    --nosignature 使用时机: 想要略过数码签章的检查时,可以使用这个选项。
    --prefix 新路径 使用时机: 要将软件安装到其他非正规目录时。举例来说,你想要将某软件安装到 /usr/local 而非正规的 /bin, /etc 等目录, 就可以使用“ --prefix /usr/local ”来处理了。
    --noscripts 使用时机:不想让该软件在安装过程中自行执行某些系统指令。说明: RPM 的优点除了可以将文件放置到定位之外,还可以自动执行一些前置作业的指令,例如数据库的初始化。 如果你不想要让 RPM 帮你自动执行这一类型的指令,就加上他吧!
    • RPM卸载软件&重建
    # 卸载过程一定是由最上层删除到最下层的依赖, 否则容易出现错误
    # 尝试卸载 pam 软件
    $ rpm -qa | grep pam
    $ rpm -e pam # 发现pam被kbd、sudo等依赖
    error: Failed dependencies:
    libpam.so.0()(64bit) is needed by (installed) kbd-1.15.5-15.el7.x86_64
    libpam.so.0()(64bit) is needed by (installed) sudo-1.8.23-3.el7.x86_64
    ......
    
    # 重建资料库
    $ rpm --rebuilddb
    
    • RPM 数字签名
    # -Va: 列出目前系統上面所有可能被更動過的檔案;
    $ rpm -Va
    
    # -V: 後面加的是軟體名稱, 若該軟體所含的檔案被更動過, 才會列出來;
    $ rpm -V  已安裝的軟體名稱
    
    # -Vp: 後面加的是檔案名稱, 列出該軟體內可能被更動過的檔案;
    $ rpm -Vp 某個 RPM 檔案的檔名
    
    # -Vf: 列出某個檔案是否被更動過
    $ rpm -Vf 在系統上面的某個檔案
    
    # 查看 Docker-ce 是否被更改过
    # 若无输出信息, 则表示没有文件被更改过
    $ rpm -V docker-ce
    
    # 查看 /etc/crontab 是否被修改过
    $ rpm -Vf /etc/crontab
    

    YUM

    # YUM 安装流程(离线、在线都可安装软件)
    - 配置网络(网络可通)
    - 修改数据源
    - 通过 yum install命令安装软件
    
    # YUM options
    - -y: 當 yum 要等待使用者輸入時, 這個選項可以自動提供 yes 的回應;
    - --installroot=/some/path: 將該軟體安裝在 /some/path 而不使用預設路徑;
    
    # YUM 常用查询命令
    - search: 搜索包详细信息;
    - info: 显示包的详细信息;
    - list: 列出软件包;
    - provides: 找出提供的软件包;
    
    # YUM 常用安装&升级命令
    - install: 用于安装软件;
    - groupinstall: 用于安装一组软件;
    - update: 用于更新软件;
    
    • YUM查询
    # yum [list|info|search|provides|whatprovides] 參數
    # 搜索 ifconfig 属于那个软件包
    # yum search 命令行/软件包
    $ yum search ifconfig
    Loaded plugins: fastestmirror  # yum 系統自己找出最近的 yum server
    Loading mirror speeds from cached hostfile # 找出速度最快的那一部 yum server
     * base: mirrors.ustc.edu.cn # 底下三個軟體庫,且來源為該伺服器!
     * extras: mirrors.aliyun.com
     * updates: mirrors.ustc.edu.cn
    ====================================================== Matched: ifconfig ======================================================
    net-tools.x86_64 : Basic networking tools
    
    # 查找 net-tools 功能介绍
    # yum info 软件包
    $ yum info net-tools
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.ustc.edu.cn
     * extras: mirrors.aliyun.com
     * updates: mirrors.ustc.edu.cn
    Installed Packages
    Name        : net-tools
    Arch        : x86_64
    Version     : 2.0
    Release     : 0.25.20131004git.el7
    Size        : 917 k
    Repo        : installed
    From repo   : base
    Summary     : Basic networking tools
    URL         : http://sourceforge.net/projects/net-tools/
    License     : GPLv2+
    Description : The net-tools package contains basic networking tools,
                : including ifconfig, netstat, route, and others.
                : Most of them are obsolete. For replacement check iproute package.
    
    # 列出服务器所有软件名称
    $ yum list
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.ustc.edu.cn
     * extras: mirrors.aliyun.com
     * updates: mirrors.ustc.edu.cn
    Installed Packages # 已安装的软件
    GeoIP.x86_64                              1.5.0-13.el7                 @anaconda
    ......
    Available Packages # 可安装的其他软件
    ......
    # 软件名称   版本   在那个软件库[base|extras|updates]中
    
    # 列出可升级的软件
    $ yum list updates
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.ustc.edu.cn
     * extras: mirrors.aliyun.com
     * updates: mirrors.ustc.edu.cn
    base                                                                               | 3.6 kB  00:00:00   
    docker-ce-stable                                                                   | 3.5 kB  00:00:00   
    extras                                                                             | 2.9 kB  00:00:00   
    updates                                                                            | 2.9 kB  00:00:00   
    Updated Packages
    
    # 列出提供 passwd 文件的软件有哪些
    yum provides passwd
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.ustc.edu.cn
     * extras: mirrors.aliyun.com
     * updates: mirrors.ustc.edu.cn
    passwd-0.79-6.el7.x86_64 : An utility for setting or changing passwords using PAM
    Repo        : base
    passwd-0.79-4.el7.x86_64 : An utility for setting or changing passwords using PAM
    Repo        : @anaconda
    
    • YUM 安装&升级
    # 安装 pam-devel
    $ yum install pam-devel
    Loaded plugins: fastestmirror # 首先的 5 行在找出最快的 yum server
    Loading mirror speeds from cached hostfile
     * base: mirrors.ustc.edu.cn
     * extras: mirrors.aliyun.com
     * updates: mirrors.ustc.edu.cn
    Resolving Dependencies  # 接下来先处理依赖的软件问题
    --> Running transaction check
    ---> Package pam-devel.x86_64 0:1.1.8-23.el7 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    # 由上面的检查发现到 pam 这个软件也需要同步升级,这样才能够安装新版 pam-devel 喔!
    # 至于下面则是一个总结的表格显示!
    ===============================================================================================================================
     Package                        Arch                        Version                            Repository                 Size
    ===============================================================================================================================
    Installing:
     pam-devel                      x86_64                      1.1.8-23.el7                       base                      185 k
    
    Transaction Summary
    ===============================================================================================================================
    Install  1 Package  # 要安装软件数量是一个
    
    Total download size: 185 k
    Installed size: 528 k
    Is this ok [y/d/N]: y
    Downloading packages:
    pam-devel-1.1.8-23.el7.x86_64.rpm                                                                       | 185 kB  00:00:00     
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : pam-devel-1.1.8-23.el7.x86_64                                                                               1/1 
      Verifying  : pam-devel-1.1.8-23.el7.x86_64                                                                               1/1 
    
    Installed:
      pam-devel.x86_64 0:1.1.8-23.el7                                                                                              
    
    Complete!
    
    • YUM 移除
    $ yum remove pam-devel
    

    YUM 其他配置

    YUM 仓库配置

    # YUM 仓库配置文件查看
    $ vi /etc/yum.repos.d/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
    
    #additional packages that may be useful
    [extras]
    name=CentOS-$releasever - Extras
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
    #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever - Plus
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
    #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    

    参数详情:

    • name:只是说明一下这个软件库的意义而已,重要性不高!
    • mirrorlist=:列出这个软件库可以使用的映射站台,如果不想使用,可以注解到这行;
    • baseurl=:这个最重要,因为后面接的就是软件库的实际网址! mirrorlist 是由 yum 程序自行去捉映射站台, baseurl 则是指定固定的一个软件库网址!我们刚刚找到的网址放到这里来啦!
    • enable=1:就是让这个软件库被启动。如果不想启动可以使用 enable=0 喔!
    • gpgcheck=1:还记得 RPM 的数码签章吗?这就是指定是否需要查阅 RPM 文件内的数码签章!
    • gpgkey=:就是数码签章的公钥档所在位置!使用默认值即可

    YUM 仓库查看&清除

    • 列出使用的软件库
    $ yum repolist all
    # 上面最右边有写 enabled 才是有启动的;
    
    • 清除软件库数据
    $ yum clean
    

    YUM 群组功能

    • 查询目前软件库与本机上安装过的软件群组
    $ yum grouplist
    Installed environment groups:            # 已经安装的系统环境软件群组
       Development and Creative Workstation
    Available environment groups:            # 还可以安装的系统环境软件群组
    ......
    Installed groups:                        # 已经安装的软件群组!
       Development Tools
    Available Groups:                        # 还能额外安装的软件群组!
    ......
    
    • 查看&安装软件群组
    # 查看 GNOME Desktop 软件群组
    $ yum groupinfo "GNOME Desktop"
    
    # 安装 GNOME Desktop 软件群组
    $ yum groupinstall "GNOME Desktop"
    

    区别

    定制化

    Tarball:可定制性高、可任意指定自定义参数;如,安装路径、第三方插件、平台限制小等原因;

    rpm:可定制性较低、可指定的自定义参数有限;

    yum:可定制性低、可指定的自定义参数极其有限;

    复杂性

    Tarball:安装方式最为复杂,操作难度系数高,要求有一定的Linux知识;

    rpm:安装方式较为复杂,操作难度相比于Tarball简单不少,要求有基础的Linux知识;

    yum:安装方式最为简单,操作难度几乎没有,要求有简单的Linux知识;

    推荐性

    Tarball:在有一定运维基础的情况下最推荐这个,可控性强,可按照要求来安装&卸载;但是有一定难度,不建议新手上手;

    rpm:不推荐这个,rpm解决依赖还是较为麻烦;有依赖问题、难度,不推荐新手使用;

    yum:较为推荐;个人测试环境、不重要的软件可通过yum安装,简单快捷方便;

    安装方式 定制化 复杂性 推荐性
    Tarball ☆☆☆☆☆ ☆☆☆☆☆
    rpm ☆☆☆ ☆☆☆ ☆☆☆
    yum ☆☆☆☆☆
  • 相关阅读:
    Win10怎么设置不进入屏保也不关闭显示器
    腾讯云Ubuntu18.04配置深度学习环境
    java的内存模型(概念)
    ViewModel 记录下 +
    知识提取-属性抽取-学习笔记
    Go语言 | 02 for循环及常用函数的使用
    Git常用命令
    技术债务(Technical Debt)
    03基于 Vue2.x 的 Vuex3.x .
    为什么会有流处理?
  • 原文地址:https://www.cnblogs.com/HOsystem/p/16836125.html