linux rpm search rpm,Linux软件安装:RPM、SRPM与YUM功能

一、软件管理器简介

--包管理模式

·用户使用的系统与软件发行商的一样,发行商就可以在他们的系统上编译好用户需要的软件,然后将编译好的软件发给用户,就可以在用户的系统上直接安装使用,省去了编译的过程;

·包管理模式的安装方式类似于Windows下面的安装,不需要编译;

·发行商即是Linux distribution的发行商或团体组织,这些用户使用它们的Linux distribution;

--软件管理器(或包管理器)

·软件管理器在软件安装的时候会记录一些与安装软件相关的信息,方便以后进行软件的升级与卸载;

·软件管理器类似于Windows下的“添加或删除程序”,或者是360软件管家等;

·在Linux下常见的软件管理器有RPM、dpkg等。

1.Linux界的两大主流:RPM与DPKG

--软件管理机制

·RPM软件管理器对应RPM软件管理机制等,软件管理机制记录安装软件的相关信息,方便以后的升级与卸载操作;

·软件文件属性本身会检测软件属性的依赖问题,软件管理机制不会解决该问题,需要其对应的在线升级机制来解决;

·软件属性依赖的简单例子:安装A软件需要先安装B与C软件;

--在线升级机制

·不同软件管理机制对应不同的在线升级机制,以解决软件属性依赖问题;

·即使是用apt-get来安装软件,实际使用的软件管理机制还是dpkg;

--对应关系

Linux distribution软件管理机制使用命令在线升级机制(命令)

Red Hat/Fedora

CentOS/SuSERPMrmp,rpmbuildYUM(yum)

Debian/UbuntuDPKGdpkgAPT(apt-get)

·例如CentOS,使用的软件管理机制为RPM机制,而用来作为在线升级的方式(机制)为yum.

2.RPM与SRPM

--RPM

·RPM是以一种数据库记录的方式将软件安装到Linux系统的一套管理机制;

·RPM包的安装过程图示:

26558180f0b4c781d86acdbc53c96393.png

·RPM优点:

a.软件已经编译完成和打包完毕,软件传输与安装方便(不需要重新编译)

b.软件的信息已经记录在Linux主机的RPM软件数据库上,方便查询、升级与卸载

c.RPM包在被安装前,会先检查系统的硬盘容量、操作系统版本等,避免文件被错误安装

·RPM缺点:

a.软件安装的环境必须与打包时的环境需求一致或相当,以下情况不行:

~通常不同distribution所发布的RPM包不能用在其它的distributions上

~相同distribution的不同版本也可能不行,如CentOS 4.x与CentOS 5.x

b.需要满足软件的依赖属性需求

c.卸载时需要谨慎,最底层的软件不可先删除,否则可能造成整个系统的问题

--SRPM:Source RPM

·SRPM是RPM未编译时的文件,包含源代码文件、依赖性软件说明、参数设置文件(configure与makefile);

·使用SRPM,可以通过修改SRPM内的参数设置文件,重新编译生成适合当前Linux环境的RPM文件(SRPM作用);

·使用SRPM,需要Linux主机环境使用的软件管理机制为RPM;

·SRPM的使用步骤:

a.先将该软件以RPM管理的方式编译,SRPM即被编译成RPM文件

b.将编译完成的RPM文件安装到Linux系统中

--对比RPM与SRPM

文件格式文件名格式直接安装与否内含程序类型可否修改参数并编译

RPMxxx.rpm可已编译不可

SRPMxxx.src.rpm不可未编译的源代码可

·RPM包安装完成后,即完成软件的安装,SRPM包安装完成后就得到软件的源码、makefile、configure等文件。

3.i386、i586、i686、noarch、x86_64

·以软件名rp-rpppoe-3.1-5.i386.rpm为例,各项说明如下:rp-rpppoe3.15i386rpm

软件名称软件版本信息发布次数适合硬件平台扩展名

·对硬件平台的说明:

a.i386几乎适用所有的x86平台

b.x86_64主要是针对64位的CPU进行优化设置

c.noarch没有任何硬件等级上的限制,一般属于shell script方面的软件

·硬件方面是向下兼容的。

4.RPM属性依赖的解决方式:YUM在线升级

·RPM软件文件属性依赖问题产生的原因:

a.为了重复利用既有的软件功能,很多软件都会以函数库的方式释出部分功能,以方便其他软件的调用应用,例如PAM模块的验证功能

b.为了节省用户的数据量,distributions在发布软件时分为一般使用与开发(development)使用两大类,而默认情况下开发类软件不会被安装(某些软件安装可能需要这些开发类的软件)

·图示YUM在线升级的原理与过程:

YUM服务器

833ace786f191a7fe24599658528b20f.png

yum客户端

0bfa153f58f8ea6ded29027c48aa164b.png

流程

d725d08717a507db2c38d0b5afd13375.png

·yum可以分析出软件依赖属性问题,下载所有需要安装的软件;

·下载的软件最终还是需要通过RPM机制进行安装。

二、RPM软件管理程序:rpm

1.RPM默认安装的路径

·软件安装完毕,软件相关信息会被写入以下目录的数据库文件中/var/lib/rpm

·与RPM默认安装相关的目录/etc                设置文件放置目录

/usr/bin            一些程序使用的动态函数库

/usr/share/doc      一些基本软件的使用手册与帮助文档

/usr/share/man      一引起man page文件

2.RPM安装(install)

·常用安装参数-ivh[root@xpleaf ~]# rpm -ivh pam-devel-1.1.1-17.el6.x86_64.rpm

i:install

v:view,显示详细安装信息画面

h:以安装信息栏显示安装进度(显示50个“#”)

[root@xpleaf ~]# rpm -ivh pam-devel*.rpm    ===>安装以pam-devel开头的多个RPM包

[root@xpleaf ~]# rpm -ivh http://website.name/path/pkgname.rpm    ===>安装网络上的RPM包

·其它安装参数--replacefiles    覆盖安装

--replacepkgs     重复安装

--force           强制安装,上面两个参数的结合

--test            检测需要安装的软件依赖性问题

[root@xpleaf ~]# rpm -ivh pam-devel-1.1.1-17.el6.x86_64.rpm --test

·演示从CentOS 6.5光盘中安装pam-devel:[root@xpleaf ~]# mount /dev/cdrom /mnt    ===>挂载光盘到/mnt

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@xpleaf ~]# find /mnt -name "pam-devel*"    ===>查找pam-devel软件

/mnt/Packages/pam-devel-1.1.1-17.el6.i686.rpm

/mnt/Packages/pam-devel-1.1.1-17.el6.x86_64.rpm

[root@xpleaf ~]# cp -a /mnt/Packages/pam-devel-1.1.1-17.el6.x86_64.rpm /root

[root@xpleaf ~]# rpm -ivh pam-devel-1.1.1-17.el6.x86_64.rpm --test    ===>检测依赖软件

Preparing...                ########################################### [100%]

[root@xpleaf ~]# rpm -ivh pam-devel-1.1.1-17.el6.x86_64.rpm     ===>安装

Preparing...                ########################################### [100%]

1:pam-devel              ########################################### [100%]

·如果安装的软件已经存在,会有下面的提示:[root@xpleaf ~]# rpm -ivh pam-devel-1.1.1-17.el6.x86_64.rpm

Preparing...                ########################################### [100%]

package pam-devel-1.1.1-17.el6.x86_64 is already installed

3.RPM升级与更新(upgrade/freshen)

·参数对比:

参数区别

-Uvh如果没有安装该软件,则直接安装;如果安装的是旧版,则升级

-Fvh如果没有安装该软件,不予以安装;如果安装的是旧版,则升级

·命令执行:rpm -Uvh/-Fvh RPM文件名

4.RPM查询(query)

·执行RPM查询,如果软件已经安装,查询的是/var/lib/rpm这个目录下的数据库文件;

·执行RPM查询,如果软件没有安装,查询的是该软件安装后要放入RPM软件数据库(即上面的目录中)中的软件信息;

·参数语法简要说明:rpm -qa                              ===>查询本机已安装的软件

rpm -q[ilcdR] 已安装的软件名称       ===>查询已安装软件的特定信息

rpm -qf 存在于系统上的某个文件名     ===>查询文件的所属安装软件

rpm -qp[ilcdR] 未安装的RPM包完整名称 ===>查询RMP包的特定信息(与上面类似,只是安装与未安装)

·参数详细说明:

查询已安装的软件信息

参数说明

-q仅查询,后面接的软件名称是否有安装

-qa列出所有的已经安装在本机 Linux 系统上面的所有软件名称

-qi列出该软件的详绅信息 (information),包含开发商、版本与说明等

-ql列出该软件所有的文件与目录所在完整文件名(list)

-qc列出该软件的所有配置文件 (找出在/etc/下面的文件名而已)

-qd列出该软件的所有帮助文件 (找出与man有关的文件而已)

-qR列出与该软件有关的依赖软件所含的文件(Required 的意思)

-qf由后面接的文件名找出该文件属于哪一个已安装的软件

查询RPM文件内含有的信息-qp[icdlR]:-qp后面接的所有参数以上面的说明一致,但仅用于找出某个RPM文件内的信息,而非已安装的软件信息

·RPM查询实战演示

a.查询是否有安装python软件[root@xpleaf ~]# rpm -q python

python-2.6.6-51.el6.x86_64

b.查询python软件所提供的所有目录与文件[root@xpleaf ~]# rpm -ql python

/usr/bin/pydoc

/usr/bin/python

/usr/bin/python2

/usr/bin/python2.6

/usr/share/doc/python-2.6.6

/usr/share/doc/python-2.6.6/LICENSE

/usr/share/doc/python-2.6.6/README

/usr/share/man/man1/python.1.gz

c.查询python软件的详细信息说明[root@xpleaf ~]# rpm -qi python

Name        : python                       Relocations: (not relocatable)

Version     : 2.6.6                             Vendor: CentOS

Release     : 51.el6                        Build Date: Fri 22 Nov 2013 08:18:53 PM CST

Install Date: Mon 11 May 2015 10:21:27 PM CST      Build Host: c6b8.bsys.dev.centos.org

Group       : Development/Languages         Source RPM: python-2.6.6-51.el6.src.rpm

Size        : 79603                            License: Python

Signature   : RSA/SHA1, Mon 25 Nov 2013 03:33:16 AM CST, Key ID 0946fca2c105b9de

Packager    : CentOS BuildSystem 

URL         : http://www.python.org/

Summary     : An interpreted, interactive, object-oriented programming language

Description :

Python is an interpreted, interactive, object-oriented programming

language often compared to Tcl, Perl, Scheme or Java. Python includes

modules, classes, exceptions, very high level dynamic data types and

dynamic typing. Python supports interfaces to many system calls and

libraries, as well as to various windowing systems (X11, Motif, Tk,

Mac and MFC).

Programmers can write new built-in modules for Python in C or C++.

Python can be used as an extension language for applications that need

a programmable interface.

Note that documentation for Python is provided in the python-docs

package.

This package provides the "python" executable; most of the actual

implementation is within the "python-libs" package.

d.查询logrotate软件的配置文件[root@xpleaf ~]# rpm -qc logrotate

/etc/logrotate.conf

/var/lib/logrotate.status

e.查询logrotate软件的帮助文件[root@xpleaf ~]# rpm -qd logrotate

/usr/share/doc/logrotate-3.7.8/CHANGES

/usr/share/doc/logrotate-3.7.8/COPYING

/usr/share/man/man5/logrotate.conf.5.gz

/usr/share/man/man8/logrotate.8.gz

f.查询python软件的依赖软件所含的文件[root@xpleaf ~]# rpm -qR python

/usr/bin/python2.6

libc.so.6()(64bit)

libc.so.6(GLIBC_2.2.5)(64bit)

libdl.so.2()(64bit)

libm.so.6()(64bit)

libpthread.so.0()(64bit)

libpython2.6.so.1.0()(64bit)

libutil.so.1()(64bit)

python-libs(x86-64) = 2.6.6-51.el6

rpmlib(CompressedFileNames) <= 3.0.4-1

rpmlib(FileDigests) <= 4.6.0-1

rpmlib(PartialHardlinkSets) <= 4.0.4-1

rpmlib(PayloadFilesHavePrefix) <= 4.0-1

rpmlib(VersionedDependencies) <= 3.0.3-1

rtld(GNU_HASH)

rpmlib(PayloadIsXz) <= 5.2-1

g.由f,查询/usr/bin/python2.6是哪个软件提供的[root@xpleaf ~]# rpm -qf /usr/bin/python2.6

python-2.6.6-51.el6.x86_64

h.查询crontabs-1.10-33.el6.noarch.rpm包的依赖文件[root@xpleaf ~]# rpm -qpR crontabs-1.10-33.el6.noarch.rpm

/bin/bash

/etc/cron.d

config(crontabs) = 1.10-33.el6

rpmlib(CompressedFileNames) <= 3.0.4-1

rpmlib(FileDigests) <= 4.6.0-1

rpmlib(PayloadFilesHavePrefix) <= 4.0-1

rpmlib(PayloadIsXz) <= 5.2-1

i.查询系统当中以c开头的软件有几个[root@xpleaf ~]# rpm -qa | grep ^c | wc -l

52

5.RPM卸载与RPM数据库重建

·RPM卸载软件,要先把依赖该软件的软件删除,否则会出现问题;

·即卸载的原则为:从上到下;

·卸载命令[root@xpleaf ~]# rpm -e pam-devel

·如果执行的操作导致RPM数据库/var/lib/rpm内的文件损坏,可以使用下面的命令[root@xpleaf ~]# rpm --rebuilddb

三、SRPM的使用:rpmbuild

1.默认值安装SRPM文件

·SRPM主要参数:--rebuild    对SRPM文件编译,并打包成为RPM包,但不安装

--recompile  对SRPM文件编译,打包成RPM包,并安装

2.SRPM使用的路径

·在CentOS 6.5中,默认没有SRPM的路径,解压缩一个SRPM包后才会在当前目录下创建rpmbuild目录:root@xpleaf ~]# rpmbuild --rebuild setarch-1.3-1.src.rpm  ===>使用--rebuild参数制作RPM包

Installing setarch-1.3-1.src.rpm

……省略输出

+ exit 0

[root@xpleaf ~]# ls -l rpmbuild/

total 24

drwxr-xr-x 2 root root 4096 Aug 17 20:08 BUILD

drwxr-xr-x 2 root root 4096 Aug 17 20:08 BUILDROOT

drwxr-xr-x 3 root root 4096 Aug 17 20:08 RPMS

drwxr-xr-x 2 root root 4096 Aug 17 20:08 SOURCES

drwxr-xr-x 2 root root 4096 Aug 17 20:08 SPECS

drwxr-xr-x 2 root root 4096 Aug 17 20:08 SRPMS

===>上面这些目录即是SRPM使用的路径

[root@xpleaf ~]# cd rpmbuild/RPMS/x86_64/    ===>RPM包放在这里

[root@xpleaf x86_64]# ll

total 12

-rw-r--r-- 1 root root 6704 Aug 17 20:08 setarch-1.3-1.x86_64.rpm

-rw-r--r-- 1 root root 1912 Aug 17 20:08 setarch-debuginfo-1.3-1.x86_64.rpm

·使用--rebuild参数,只会创建RPM包,其余的临时文件在RPM包创建后即会被删除[root@xpleaf ~]# rpmbuild --rebuild setarch-1.3-1.src.rpm

……

+ cd /root/rpmbuild/BUILD

+ rm -rf setarch-1.3

……

+ rm -rf /root/rpmbuild/BUILDROOT/setarch-1.3-1.x86_64

……

+ rm -rf /root/rpmbuild/BUILDROOT/setarch-1.3-1.x86_64

……

+ cd /root/rpmbuild/BUILD

+ cd setarch-1.3

+ rm -rf /root/rpmbuild/BUILDROOT/setarch-1.3-1.x86_64

……

+ cd /root/rpmbuild/BUILD

+ rm -rf setarch-1.3

……

[root@xpleaf rpmbuild]# ls -l BUILD BUILDROOT/ RPMS/ SOURCES/ SPECS/ SRPMS/

BUILD:

total 0

BUILDROOT/:

total 0

RPMS/:

total 4

drwxr-xr-x 2 root root 4096 Aug 17 20:00 x86_64

SOURCES/:

total 4

-rw-r--r--. 1 root root 2220 Sep  2  2003 setarch-1.3.tar.gz

SPECS/:

total 4

-rw-r--r--. 1 root root 1440 Sep  2  2003 setarch.spec

SRPMS/:

total 0

·重要目录说明

目录说明

SPECS放置软件的设置文件,如软件的信息参数、设置项目

SOURCES放置软件的源文件(*.tar.gz)及config设置文件

BUILD/BUILDROOT放置编译过程中产生的临时文件

RPMS编译完成后,放置RPM包。下面会有子目录如x86_64、i386等

SRPM放置自己制作的SRPM包

3.设置文件的主要内容(*.spec)

·使用-i参数解压缩SRPM包(如果是RPM包,则直接安装了):[root@xpleaf ~]# rpm -i logrotate-3.7.8-12.el6.src.rpm

……

[root@xpleaf ~]# cd rpmbuild/

[root@xpleaf rpmbuild]# ll

total 8

drwxr-xr-x 2 root root 4096 Aug 17 20:35 SOURCES

drwxr-xr-x 2 root root 4096 Aug 17 20:35 SPECS

[root@xpleaf rpmbuild]# find ./ -type f

./SPECS/logrotate.spec    ===>设置文件

./SOURCES/logrotate-3.7.8-man5.patch    ===>.patch的即是一些补丁文件

./SOURCES/logrotate-3.7.8-devnull.patch

./SOURCES/logrotate-3.7.8-configsize.patch

./SOURCES/logrotate-3.7.7-toolarge.patch

./SOURCES/logrotate-3.7.8.tar.gz    ===>源代码文件压缩包

./SOURCES/logrotate-3.7.8-dont-remove-log.patch

./SOURCES/logrotate-3.7.8-handle-rename-error.patch

./SOURCES/logrotate-3.7.8-scripts-man.patch

./SOURCES/logrotate-3.7.8-missingok.patch

./SOURCES/logrotate-3.7.8-scripts-args.patch

./SOURCES/logrotate-3.7.7-curdir2.patch

===>如果还有其它文件,则可能是一些脚本文件

·直接对SRPM包解压缩,得到的内容是:

a.重要的是源代码文件(*.tar.gz)与设置文件(*.spec)

b.可能还有一些脚本方面的文件

c.因为只产生上面这些文件,在CentOS 6.5中,只会创建rpmbuild下的SOURCES与SPECS目录

d.因为不涉及编译过程,所以不会有临时文件的产生

·spec文件的主要内容介绍

a.spec第一部分内容:软件基本信息——rpm -qiSummary: Rotates, compresses, removes and mails system log files

Name: logrotate    ===>RPM名字类似:{Name}-{Version}-{Release}.rpm

Version: 3.7.8

Release: 12%{?dist}

License: GPL+

URL: https://fedorahosted.org/logrotate/

Group: System Environment/Base

Source: https://fedorahosted.org/releases/l/o/logrotate/logrotate-%{version}.tar.gz

Patch1: logrotate-3.7.7-curdir2.patch    ===>即是前面在SOURCES中看到的一些补丁文件

Patch2: logrotate-3.7.7-toolarge.patch   ===>意在说明该软件SRPM包中含有的文件

Patch3: logrotate-3.7.8-devnull.patch

Patch4: logrotate-3.7.8-man5.patch

Patch5: logrotate-3.7.8-missingok.patch

Patch6: logrotate-3.7.8-configsize.patch

Patch7: logrotate-3.7.8-dont-remove-log.patch

Patch8: logrotate-3.7.8-scripts-args.patch

Patch9: logrotate-3.7.8-scripts-man.patch

Patch10: logrotate-3.7.8-handle-rename-error.patch

b.spec第二部分:依赖属性需求设置——rpm -qRRequires: coreutils >= 5.92 libsepol libselinux popt    ===>需要的软件,即依赖软件

BuildRequires: libselinux-devel popt-devel        ===>编译时需求的工具软件

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)===>编译时临时文件存放的目录

%description    ===>软件描述信息

The logrotate utility is designed to simplify the administration of

log files on a system which generates a lot of log files.  Logrotate

allows for the automatic rotation compression, removal and mailing of

log files.  Logrotate can be set to handle a log file daily, weekly,

monthly or when the log file gets to a certain size.  Normally,

logrotate runs as a daily cron job.

Install the logrotate package if you need a utility to deal with the

log files on your system.

c.spec第三部分:编译前的预处理以及编译过程中所需要进行的命令%prep        ===>预处理,就是上面的patch补丁文件

%setup -q

%patch1 -p1 -b .curdir

%patch2 -p1 -b .toolarge

%patch3 -p1 -b .devnull

%patch4 -p1 -b .man5

%patch5 -p1 -b .missingok

%patch6 -b .configsize

%patch7 -b .dont-remove-log

%patch8 -b .scripts-args

%patch9 -b .scripts-man

%patch10 -b .handle-rename-error

%build     ===>编译

make %{?_smp_mflags} RPM_OPT_FLAGS="$RPM_OPT_FLAGS" WITH_SELINUX=yes

%install     ===>安装

rm -rf $RPM_BUILD_ROOT

make PREFIX=$RPM_BUILD_ROOT MANDIR=%{_mandir} install

mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d

mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/cron.daily

mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib

install -p -m 644 examples/logrotate-default $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.conf

install -p -m 755 examples/logrotate.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.daily/logrotate

touch $RPM_BUILD_ROOT/%{_localstatedir}/lib/logrotate.status

%clean     ===>清理删除临时文件

rm -rf $RPM_BUILD_ROOT

d.spec第四部分:软件发布的文件——rpm -qcf%files

%defattr(-,root,root)

%doc CHANGES COPYING

%attr(0755, root, root) %{_sbindir}/logrotate

%attr(0644, root, root) %{_mandir}/man8/logrotate.8*

%attr(0644, root, root) %{_mandir}/man5/logrotate.conf.5*

%attr(0755, root, root) %{_sysconfdir}/cron.daily/logrotate

%attr(0644, root, root) %config(noreplace) %{_sysconfdir}/logrotate.conf

%attr(0755, root, root) %dir %{_sysconfdir}/logrotate.d

%attr(0644, root, root) %verify(not size md5 mtime) %config(noreplace) %{_localstatedir}/lib/logrotate.status

e.第五部分:软件更改历史记录……

Tue Jun 15 2010 Jan Kaluza  3.7.8-9

- fix #604073 - do not remove log if there is an error in

rotate process

* Fri Jun 11 2010 Jan Kaluza  3.7.8-8

- fix #602654 - fix integer overflow in size and minsize

* Tue Apr 06 2010 Daniel Novotny  3.7.8-7

- fix #578116 - missingok problem with globs

……

4.SRPM的编译命令

[root@xpleaf SPECS]# rpmbuild -ba setarch.spec     ===>编译并同时生成RPM与SRPM文件

[root@xpleaf SPECS]# rpmbuild -bb setarch.spec     ===>编译只生成RPM文件

·编译演示:[root@xpleaf ~]# cd rpmbuild/

[root@xpleaf rpmbuild]# ll

total 8

drwxr-xr-x 2 root root 4096 Aug 17 22:02 SOURCES

drwxr-xr-x 2 root root 4096 Aug 17 22:02 SPECS

[root@xpleaf rpmbuild]# cd SPECS/

[root@xpleaf SPECS]# ll

total 4

-rw-r--r--. 1 root root 1440 Sep  2  2003 setarch.spec

[root@xpleaf SPECS]# rpmbuild -ba setarch.spec

……

[root@xpleaf rpmbuild]# find ./ -name "*.rpm"

./RPMS/x86_64/setarch-1.3-1.x86_64.rpm

./RPMS/x86_64/setarch-debuginfo-1.3-1.x86_64.rpm

./SRPMS/setarch-1.3-1.src.rpm

四、YUM在线升级机制

·每个yum server可能都会提供不同的软件功能,每一种功能即是前面所说的“容器”;

1.利用yum进行查询、安装升级与删除功能

--查询功能:yum [list|info|search|provieds]

·查询语法yum [option] [查询项目] [相关参数]

a.[option]-y:响应安装过程中的提示输入

--installroot=/some/path:把软件安装在/some/path中

b.[查询项目]、[相关参数]search:搜索软件相关信息,如名称、描述

list:列出yum管理的所有软件(包括安装与未安装的),rpm -qa列出的是本地已安装的

info:查询软件的相关系统

provides:由文件去找出软件

·查询实例

a.查询与raid名称相关的软件[root@xpleaf ~]# yum search raid

……

dmraid.i686 : dmraid (Device-mapper RAID tool and library)

dmraid.x86_64 : dmraid (Device-mapper RAID tool and library)

dmraid-devel.x86_64 : Development libraries and headers for dmraid.

dmraid-events-logwatch.x86_64 : dmraid logwatch-based email reporting

dmraid-events.x86_64 : dmevent_tool (Device-mapper event tool) and DSO

firstaidkit-plugin-mdadm-conf.noarch : Firstaidkit plugin to diagnose software raid

: configuration file

mdadm.x86_64 : The mdadm program controls Linux md devices (software RAID arrays)

Name and summary matches only, use "search all" for everything.

b.查询上面mdadm软件的相关信息[root@xpleaf ~]# yum info mdadm

……

Installed Packages    ===>已经安装的软件版本

Name        : mdadm

Arch        : x86_64

Version     : 3.2.6

Release     : 7.el6

Size        : 847 k

Repo        : installed

From repo   : anaconda-CentOS-201311272149.x86_64

Summary     : The mdadm program controls Linux md devices (software RAID arrays)

URL         : http://www.kernel.org/pub/linux/utils/raid/mdadm/

License     : GPLv2+

Description : The mdadm program is used to create, manage, and monitor Linux MD (software

: RAID) devices.  As such, it provides similar functionality to the raidtools

: package.  However, mdadm is a single program, and it can perform

: almost all functions without a configuration file, though a configuration

: file can be used to help with some common tasks.

Available Packages    ===>还可以安装的软件版本

Name        : mdadm

Arch        : x86_64

……

c.列出yum服务器上面提供的软件列表[root@xpleaf ~]# yum list

Installed Packages    ===>已经安装的软件

ConsoleKit.x86_64                 0.4.1-3.el6           @anaconda-CentOS-201311272149.x86_64/6.5

ConsoleKit-libs.x86_64            0.4.1-3.el6           @anaconda-CentOS-201311272149.x86_64/6.5

……

Available Packages    ===>还可以安装的软件

389-ds-base.x86_64                1.2.11.15-60.el6      base

389-ds-base-devel.i686            1.2.11.15-60.el6      base

389-ds-base-devel.x86_64          1.2.11.15-60.el6      base

……

d.列出本机可升级的软件[root@xpleaf ~]# yum list updates

Updated Packages

abrt.x86_64                                   2.0.8-34.el6.centos                        base

abrt-addon-ccpp.x86_64                        2.0.8-34.el6.centos                        base

abrt-addon-kerneloops.x86_64                  2.0.8-34.el6.centos                        base

abrt-addon-python.x86_64                      2.0.8-34.el6.centos                        base

……

e.查询提供passwd这个文件的软件[root@xpleaf ~]# yum provides passwd

passwd-0.77-4.el6_2.2.x86_64 : An utility for setting or changing passwords using PAM

Repo        : base

Matched from:

passwd-0.77-4.el6_2.2.x86_64 : An utility for setting or changing passwords using PAM

Repo        : installed

Matched from:

Other       : Provides-match: passwd

--安装、升级yum install 安装软件名称

yum update  升级软件名称

--删除yum remove 软件名称

·一般不建议使用yum来卸载软件,因为会把相关依赖的包也删除

2.yum源的配置

·可以查看另一篇博客文件

·更改源后需要运行以下两个命令:yum clean all    ===>删除已下载过的所有容器的相关数据(含软件本身与列表)

yum makecache    ===>生成缓存

3.yum的软件组功能

·常用参数:grouplist:列出所有的组列表(软件组),包括安装和未安装的,如Development Tools

groupinfo:后面接软件组名称,可以了解软件组内的软件名称

groupinstall:后面接软件组,可以安装一整组软件组

groupremove:删除某个软件组

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值