您的位置:首页 > 运维架构 > Linux

linux rpm和yum详解

2015-09-16 00:35 489 查看
rpm

定义:包管理器

rpm程序包的组成部分:
二进制程序:/bin, /sbin,/ /usr/bin, /usr/sbin,
库文件:/lib64, /usr/lib64
配置文件:/etc
帮助文件:manual, info,

包文件名格式:

bash-4.2.4-1.el7.x86_64.rpm
包文件名-版本号(4为主版本号,2为次版本号,4为包的版本号)-rpm包的版本号(1.el7)-系统架构(x86_64)

常用选项:
-q 查询
-qa: 查询本机已经安装的所有程序包;
-qf /PATH/TO/SOMEFILE: 查询此处的文件由哪个程序包安装生成;
-qc: 查询指定程序包安装生成的配置文件
-qd: 查询指定的程序包安装生成的文档
-qi: 查询指定的程序包的相关信息;
-ql: 查询程序包安装生成的所有文件的列表;
-q --scripts:查询程序包相关的脚本:
preinstall: 安装前脚本
postinstall:安装后脚本
preuninstall: 卸载前脚本
postuninstall: 卸载后脚本
-p: 查询针对是未安装的程序包文件;
{-i|--install} 安装
{-U|--upgrade} 更新软件
-v 安装时显示详细信息 --vv 显示更详细的信息,一般还要显示包的包含文件
-h 以#号显示安装进度
{-F|--freshen} 升级软件包
--nodeps 安装包的时候不用安装依赖包,虽然可以解决rpm安装包时的依赖问题,但是会给后期包的使用带来影响,建议不要使用这项.
-V 校验

-e 卸载

常用实例:

1.安装zsh rpm包
rpm -ivh zsh-4.3.11-4.el6.centos.x86_64.rpm





2.查看已安装的zsh包中包含哪些文件,如果未安装不返回信息
[root@localhost yum.repos.d]# 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
总结:python包包含了二进制程序和帮助文件

3.查看已安装的zsh包的相关信息,如果未安装不会返回任何信息,如情况2
[root@localhost yum.repos.d]# rpm -qi zsh
Name        : zsh                          Relocations: (not relocatable)
Version     : 4.3.11                            Vendor: CentOS
Release     : 4.el6.centos                  Build Date: 2015年07月24日 星期五 17时41分25秒
Install Date: 2015年08月02日 星期日 01时30分38秒      Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Shells     Source RPM: zsh-4.3.11-4.el6.centos.src.rpm
Size        : 5283457                          License: BSD
Signature   : RSA/SHA1, 2015年07月25日 星期六 04时41分32秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://zsh.sunsite.dk/ Summary     : A powerful interactive shell
Description :
The zsh shell is a command interpreter usable as an interactive login
shell and as a shell script command processor.  Zsh resembles the ksh
shell (the Korn shell), but includes many enhancements.  Zsh supports
command line editing, built-in spelling correction, programmable
command completion, shell functions (with autoloading), a history
mechanism, and more.
情况1
[root@localhost yum.repos.d]# rpm -qi php
package php is not installed
情况2

4.列出python包所依赖的能力
rpm -qR python
[root@localhost yum.repos.d]# 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


5.卸载zsh包 : rpm -e zsh

6.查看更新zsh包 : rpm -Uvh zsh

rpm来源:
1.发行版提供的程序包;
2.Fedora-EPEL
3.项目的官方站点
4.搜索引擎
http://rpmfind.net
http://rpm.pbone.net
http://pkgs.org

运用光盘rpm包安装软件方法步骤
1.先将光盘加载DVD1安装ios文件
2.挂载光盘 mount -r /dev/cdrom /mnt/cdrom
3.cd Packpages Packpages目录下有很多rpm包都可以安装

yum


定义:由于rpm解决包的相互依赖性很烦,就诞生yum,用yum安装软件,如果他安装的包依赖包没有安装,它会自动去仓库先安装依赖的包

yum文件服务器格式:scheme(协议) + path(路径) ftp://hostname/PATH/TO/REPO http://hostname/PATH/TO/REPO
file:///PATH/TO/REPO

yum配置文件
/etc/yum.conf 定义全局配置:对所有仓库都适用的配置
/etc/yum.repos.d/*.repo 一个文件通常用于一个或一组功能相近或相关的仓库

定义一个仓库指向:
[REPO_ID] 该仓库的id
name= 该仓库的名称
baseurl= yum源基本链接
# mirrorlist=SCHEME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE yum基本链接文件集合,支持多个baseurl
enabled={1|0} 是否有效
gpgcheck={1|0} 是否校验
gpgkey= 校验的key
cost= 消耗(该值越小,yum源越优先)

定义仓库指向可用变量:
$releasever: 引用当前系统的主版本号;(如当前系统版本为CentOS release 6.5 (Final),则主版本号为6,这点老以为是6.5)

$basearch: 当前系统的基本架构;
i386(32位), x86_64(64位)

yum命令:
yum [options] [command] [package ...]

选项

install 顾名思义就是安装

remove 删除yum包

update 升级

info 查询指定yum包的详细信息 类似于rpm -qi,该项yum包未安装也支持查看

list all|installed|availiable 列出yum源的所有或有效的yum包
provides /PATH/TO/SOMEFILE: 查询指定文件由哪个包安装生成
reinstall 重新安装

downgrade 降级
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] 清理缓存
makecache 生成缓存

分组选项:

grouplist 列出可用的yum包组
groupinfo "GRP_NAME" 列出指定组的详细信息
groupinstall "GRP_NAME" 安装指定的组
groupremove "GRP_NAME" 卸载指定的组

仓库:
repolist [all|enabled|disabled] 显示系统定义的所有yum仓库
repoinfo [all|enabled|disabled] 显示指定仓库的详细信息

实例

将163的镜像加入到系统的yum源中去

[root@localhost yum.repos.d]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# vim CentOS-Base.repo
[163]
name=163_yum_repos
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
cost=8


2. 展示yum所有仓库
[root@localhost yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* epel: mirrors.ustc.edu.cn
repo id                                                                                        repo name                                                                                                                              status
163                                                                                            163_yum_repos                                                                                                                           6,575
epel                                                                                           Extra Packages for Enterprise Linux 6 - x86_64                                                                                         11,767
repolist: 18,342


3.查看php yum包的详细信息
[root@localhost yum.repos.d]# yum info php
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* epel: mirrors.ustc.edu.cn
Available Packages
Name        : php
Arch        : x86_64
Version     : 5.3.3
Release     : 40.el6_6
Size        : 1.1 M
Repo        : 163
Summary     : PHP scripting language for creating dynamic web sites
URL         : http://www.php.net/ License     : PHP
Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
: easy for developers to write dynamically generated webpages. PHP also
: offers built-in database integration for several commercial and
: non-commercial database management systems, so writing a
: database-enabled webpage with PHP is fairly simple. The most common
: use of PHP coding is probably as a replacement for CGI scripts.
:
: The php package contains the module which adds support for the PHP
: language to Apache HTTP Server.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux rpm yum