善用RPM和YUM等工具来安装软件包

Linux下的软件安装与管理

源码安装一般有以下几个步骤组成:
  下载解压源码 -->分析安装平台环境(configure)-->编译安装软件(make、make install)

Linux常用的软件包类型或格式有:可执行的RPM与DEB、源代码形式的gzip与bzip2压缩包。

——————————————————————————————————————————————————————————————————————
RPM(RedHat Package Manager),红帽软件包工具

1.安装与卸载RPM包
    对于rpm软件包的安装,可以使用<rpm -i 软件包名称>来进行安装,但是该命令默认选项为静默式安装,如果想要了解安装过程中的消息,使用-v来显示详细的信息,-h来显示安装进度(安装进度以#表示);

对于rpm软件包的卸载,可以使用<rpm -e 软件包名称>来进行卸载;

对于rpm软件包的升级,可以使用<rpm -U 软件包名称>,rpm会删除旧版本的软件(仅保留配置文件),再安装新的软件版本。

2.软件包的信息查询
     <rpm -q>:
       -q:查看软件包是否已经安装
       -qa:查询系统中已经安装的所有软件
       -qi:查询指定安装包的详细信息
       -qc:查询指定软件的配置文件
       -ql:查询指定软件的安装路径与文件列表
       -qf:查询指定文件为哪个软件所安装
       选项可以组合,如:rpm -qpi xxx,使用rpm-q的格式进行查询仅针对已经安装的软件,如果你希望知道某个尚未安装的软件包的详细信息,则可以使用rpm-qp的方式查询。

3.安全认证
     RPM提供的验证功能可以随时追踪软件的状态,当软件被人篡改时,rpm -v会提示该软件哪些状态被修改,未被篡改的不会显示。

rpm -V命令可能显示出的提示字符及含义:
       5:MD5值已经改变
       S:文件大小已经改变
       L:链接文件源已经改变
       T;文件最后修改时间已经改变
       D:设备改变
       U:用户发生变化
       G:组发生变化
       M:包括权限与类型在内的模式已经改变
       ?:不可读的文件

——————————————————————————————————————————————————————————————————————
YUM(Yellowdog Updater Modified):

Yellowdog是一款发行版linux,使用rpm作为默认的程序包管理工具,很好的解决了RPM所面临的软件包依赖关系。使用YUM安装软件时至少需要一个YUM源,YUM源就是一个存放有很多RPM软件的文件夹,用户可以HTTP、FTP或本地文件夹的方式询问YUM源。
  yum的配置:
    yum的配置文件由主配置文件/etc/yum.conf、资源库配置目录/etc/yum.repo.d。centos6.7的默认YUM源定义文件就存放在 /etc/yum.repos.d/目录下,我们可以自行定义任意可以使用的 YUM源,但文件名的扩展名必须是.repo,CentOS-Base.repo
  vim打开:
[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-6

/etc/yum.config的相关内容
[main]
cachedir=/var/cache/yum/$basearch/$releasever#cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum。
keepcache=0
debuglevel=2#debuglevel:除错级别,0──10,默认是2 貌似只记录安装和删除记录
logfile=/var/log/yum.log
exactarch=1#exactarch,有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用1686的包来升级
obsoletes=1
gpgcheck=1#gpgchkeck= 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的。
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

几个变量
$releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
$arch,cpu体系,如i686,athlon等
$basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha

.repo文件该如何定义:
[repositoryid]
name=Full name of repository
baseurl=schema1://hostname/PATH/TO/REPODATA
    schema2://hostname/PATH/TO/REPODATA
    schema3://hostname/PATH/TO/REPODATA
    schema4://hostname/PATH/TO/REPODATA
 schema:
  http[s]、ftp、nfs:网络服务器指向
  file:本地服务器指向
#mirrorlist=mirror_url
enabled={0|1},0表示禁用此仓库指向,1表示启用;如果没有enabled语句,默认为启用状态;
gpgcheck={0|1},0表示不进行程序包认证,1表示认证;如果为1,需要指定认证所需要的公钥文件,需要使用gpgkey语句;
gpgkey=schema://hostname/PATH/TO/PUBLIC_KEY_FILE
 例子:gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever

failovermethod={roundrobin|priority}
 故障倒换方法:
  roundrobin:随机查找,默认的方法;
  priority:按照顺序依次选择
enablegroups={1|0}
cost=num,默认所有仓库的开销值都是1000;

一般的repo指向内容:
[repoid]
name=
baseurl=
#mirrorlist=
enbaled=1
gpgcheck=0
#gpgkey=

YUM的相关命令:
  yum [选项] [指令] [软件包...]
  选项:
    -y:执行非交互式安装,安装过程中所有的提示回答yes

-quiet:安静模式,在某一次yum执行过程中,没有任何信息输出到stdout;

-enablerepo=repoidglob
 -disablerepo=repoidglob
 在某一次yum执行过程中明确的规定启用或禁用某个repository指向;在使用了这样的选项之后,仓库指向文件中的enabled语句的作用将失效;

-noplugins:
 在某一次yum执行过程中,明确指出不使用任何插件;

--nogpgcheck:
 在某一次yum执行过程中,明确指出不验证程序包完整性,在仓库指向文件中的gpgcheck=1语句会失效;

指令:
        * install package1 [package2] [...]
         安装程序包
         注意:
          1.如果只是给出程序包名称,yum搜索所有仓库,并找到最新版本缓存安装;
          2.如果给出程序包的名称及版本,则查找安装指定版本的程序包;
          3.如果给出的程序包是完整的程序包名,则只是查找某一个程序包;
          4.程序包名称可以使用globbing,(* ? [] [^])

* update [package1] [package2] [...]
        * update-to [package1] [package2] [...]
        * check-update
        * upgrade [package1] [package2] [...]
        * upgrade-to [package1] [package2] [...]
        * downgrade package1 [package2] [...]
         程序包升级或降级:
          程序包不同版本之间的更迭;

* remove | erase package1 [package2] [...]
         卸载程序包:

* list [...]
          yum list LIST OPTIONS
          LIST OPTIONS:
           all: 显示所有的程序包,包括已经安装的和尚未安装但可用的;
            注意:
             anaconda:CentOS系统的安装器,在安装操作系统的时候一并安装的程序包;
           installed:显示所有已经安装的程序包;
           available:显示所有尚未安装但可以安装的程序包;
           updates:显示所有可以升级更新的程序包;

* info [...]
         yum info LIST OPTIONS
         LIST OPTIONS:
           all: 显示所有的程序包,包括已经安装的和尚未安装但可用的;
            注意:
             anaconda:CentOS系统的安装器,在安装操作系统的时候一并安装的程序包;
           installed:显示所有已经安装的程序包;
           available:显示所有尚未安装但可以安装的程序包;
           updates:显示所有可以升级更新的程序包;

name[globbing]

* provides | whatprovides feature1 [feature2] [...]
         查看指定的特性是由哪个程序包提供的;

* clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
         清理本地缓存信息

* makecache
         构建缓存

* groupinstall group1 [group2] [...]
        * groupupdate group1 [group2] [...]
        * grouplist [hidden] [groupwildcard] [...]
        * groupremove group1 [group2] [...]
        * groupinfo group1 [...]
         程序包组的管理命令:

* search string1 [string2] [...]
         根据关键字进行匹配,默认情况下,搜索程序包名称及汇总信息;
         模糊搜索

* shell [filename]
         给yum提供一个交互式命令的操作界面

* localinstall rpmfile1 [rpmfile2] [...]
           (maintained for legacy reasons only - use install)
        * localupdate rpmfile1 [rpmfile2] [...]
           (maintained for legacy reasons only - use update)
          实现本地程序包安装,即:不依赖于软件仓库,直接对rpm格式包文件进行操作;
          这两个命令已经被停用,使用install和update取代;

* reinstall package1 [package2] [...]
         重新安装

* deplist package1 [package2] [...]
         显示每个程序包所有的依赖关系;

* repolist [all|enabled|disabled]
         列表显示yum仓库的元数据信息
         在没有给出后面的参数的时候,默认为enabled;

* version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]

* history [info|list|packages-list|packages-info|summary|addon-
       info|redo|undo|rollback|new|sync|stats]
         查看yum事务的历史;
          安装、升级、卸载等操作的时候,yum会开启事务;

* load-transaction [txfile]
         重新启动已经停止的事务;

* check

* help [command]

几个不错的官方的文件服务器或者镜像站点:
  http://mirrors.aliyun.com
  http://mirrors.sohu.com
  http://mirrors.163.com
  https://mirrors.tuna.tsinghua.edu.cn
  http://mirrors.hust.edu.cn

时间: 2025-01-07 08:48:41

善用RPM和YUM等工具来安装软件包的相关文章

【我的Linux,我做主!】rpm包管理器/yum前端工具/编译安装从入门到精通

Linux软件包管理之--rpm网络操作系统都是架构在底层硬件之上的,目前内核有Linux系列,UNIX系类,Windows系列等,再向上是程序库调用,程序的实现方式在不同的操作系统中实现的方式也不尽相同.操作系统向外输出供用户使用的接口称之为API(Application Programming Interface),向用户输出统一的调用接口,这样当一个文件使用调用接口后就可以在不同的操作系统中按照统一的格式输入输出了.(如下图)ABI(Application Binary Interface

安装软件包的三种方法 、rpm包介绍、rpm工具用法、yum工具用法、yum搭建本地仓库安装软件包的

安装软件包的三种方法rpm包类似于windows的exe文件.rpm工具可以安装rpm包,安装路径和文件名都是固定好的,不需要过多的设置.yum也可以安装rpm包,比rpm工具好的一点是支持自动安装依赖的包.源码包主要是源代码,需要谁用编译器编译成可执行的文件.·····rpm包介绍首先我们要把光盘连接到linux系统进行挂载,打开vmware运行虚拟机,然后右键右下角的光盘的图标然后点连接,然后在系统里挂载,挂载点可以自己选,我们使用命令:mount /dev/cdrom /mnt/把光盘挂载

教你使用rpm、yum、编译等方式安装软件

一.什么是包管理器? 很多人都不知道包管理器的概念,首先我们要了解软件是如何运行的,我们这里介绍C程序如何实现从代码到执行程序的过程. 程序源代码--> 预处理--> 编译--> 汇编--> 链接 -->执行 程序源码预处理后进行编译,编译成目标代码,然后汇编成二进制代码,最后将源程序所用的库代码与目标代码合并,最终形成可执行的二进制代码 但是一般情况下一个程序不止一个二进制程序,可能存在配置文件,帮助文档等相应文件,这时候我们就需要一个打包软件将程序包各组件打包,打个比方,

Linux基础--------监控系统、进程管理、软件包管理-------free、dd、kill、 rpm、yum、源码安装python

作业一:1) 开启Linux系统前添加一块大小为15G的SCSI硬盘 2) 开启系统,右击桌面,打开终端 3) 为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区,大小为5G fdisk -l /dev/sdb       查看新增加硬盘sdb的详细信息     第一个硬盘叫sda,新建的第二个就叫sdb,再增加一个就叫sdc,依此类推 fdisk /dev/sdb      给/dev目录下的sdb硬盘座磁盘分区      m  查看帮助 n  添加一个新

程序包管理rpm、yum与简单编译安装程序

Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个ls命令就是一个二进制程序. 库文件:程序的公用功能模块,比如A程序需要用一个打印机,B程序也需要一个打印机就可以公用这一个模块了.在window下库文件为.dll格式,linux下为/lib/*so格式的文件. 配置文件:通过设置配置文件来改变程序启动时的运行特征. 帮助手册:使用的帮助文档. ?

linux 基础入门(8) 软件安装 rpm、yum与源码安装详解

8.软件 RPM包安装 8.1rpm安装 rpm[选项]软件包名称 主选项 -i 安装 -e卸载 -U升级 -q查找 辅助选项 -ⅴ显示过程 -h --hash 查询 -a-all查询所有安装的包 -f-file查询拥有<-file的包 -p查询一个没有安装的包 卸载 -nodeps忽略依赖 安装的时候要把centos7的iso文件拿过来,为什么要拿过来呢,因为里面的Packages里面就是rpm包. 具体路径是/run/media/wangzirui/Centos 7 X86_64/Packa

Service系统服务(二):补充应用技巧、软连接与硬连接、man手册、zip备份、vim效率操作、自定义yum软件仓库、发布及测试yum仓库、编译安装软件包

一.补充应用技巧 目标: 本例要求掌握在运维中比较常用的一些扩展命令技巧的使用,完成下列小技巧操作: 1> 采用数值形式将目录/root的权限调整为 rwx------   2> 将记录的历史命令条数更改为 200 条   3> 统计 /boot./etc/pki 目录占用的空间大小   4> 以格式"yyyy-mm-dd HH:MM" 显示系统时间 方案: date日期时间工具: 1> 显示日期时间:date.date +"%Y-%m-%d %

yum只下载而不安装软件包?

yum本身自带了两个选项, 用来只下载要安装的rpm包, 而并不实际安装包: yum --downloadonly --downloaddir=/root/Desktop  rpm-name1 rpm-name2.. rpm -l --list 可以列出已经安装的rpm中的具体文件以及它们被安装到哪些位置?  这个-l 一定要和-q组合起来使用?! 还要把/etc/yum.conf中的keepcache改成1,默认是0即安装后不保存包头和软件包

yum只下载不安装软件包

一.通过yum自带的工具yumdownloader [[email protected]172-16-1-35 interpreter]# rpm -ql yum-utils package yum-utils is not installed [[email protected]172-16-1-35 interpreter]# rpm -qa |grep yum-utils [[email protected]-172-16-1-35 interpreter]# yum -y install