Linux运维练习--程序员包管理rpm与yum

程序包管理:

包管理器:作用是打包以及包管理(安装、升级、卸载、查询及校验)

对于不同linux发行版本有不同的包管理器,主要有

deb:debian

rpm:redhat package Manager,rpm成为事实上包管理器的标准

程序包的组成部分:

二进制程序:通常存放在以下文件,/bin, /sbin,/ /usr/bin, /usr/sbin,
                          库文件:通常存放在以下文件,/lib64, /usr/lib64(64位系统)
                          配置文件:/etc
                          帮助文件:manual, info,

包管理器:提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有

软件状态信息的查询

rpm包:

打包工具:rpmbuild:specs文件

分包机制:根据功能分包:

如:test-Version.tar.gz

核心包:test-Version

支包:testapp-devel-Version

Version:主版本号.此版本号.发行号

rpm包的命名机制:
                                             name-VERSION-RELEASE.ARCH.rpm

RELEASE.ARCH: rpm release和适用的平台和架构,如

bash-4.2.4-1.el7.x86_64.rpm表示适用于redhat enterprise linux 7

64位系统

rpm数据库:对于redhat和CentOS一般在:/var/lib/rpm,如图(CentOS 64bit):

获取rpm包的途径:1、发行版提供的程序包(光盘)

挂载光盘文件,包文件在Packages下面
                                              2、Fedora-EPEL
                                              3、项目的官方站点
                                              4、搜索引擎
                                                         http://rpmfind.net
                                                         http://rpm.pbone.net
                                                         http://pkgs.org

rpm命令实现程序包管理:
                       安装:
                                rpm {-i|--install} [install-options] PACKAGE_FILE ...
                                        -i:     -v:显示详细过程, -h:”#“号显示安装进度

-q 查看某程序包是否安装

每个rpm包都提供一个或多个capabilities

--nodeps:忽略依赖关系安装
                                --replacepkgs:重装程序包

升级:
                               rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
                               rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

-Uvh: 如果有旧版程序包,则升级之;如果没有,则安装之;
                               -Fvh: 如果有旧版程序包,则升级之;如果没有,则不安装;

--nodeps
                               --oldpackage:降级;
                               --force:强制升级,不管依赖于老程序包的程序

卸载:
                      rpm {-e|--erase} [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...

如果有程序依赖于被卸载程序,则卸载会有警告,--nodeps也可忽略依赖

查询:
                               rpm {-q|--query} [select-options] [query-options]

查询选项:

-qa: 查询本机已经安装的所有程序包;
                                             -qf: /PATH/TO/SOMEFILE: 查询此处的文件由哪个程序包安装生成;

-qc: 查询指定程序包安装生成的配置文件
                                             -qd: 查询指定的程序包安装生成的文档
                                             -qi: 查询指定的程序包的相关信息;
                                             -ql: 查询程序包安装生成的所有文件的列表;
                                             -q:--scripts:查询程序包相关的脚本:

preinstall: 安装前脚本
                                                       postinstall:安装后脚本
                                                       preuninstall: 卸载前脚本
                                                       postuninstall: 卸载后脚本

-p: 查询针对是未安装的程序包文件;查询本地存在而没有安

装的rpm包信息

校验:
                               rpm {-V|--verify} [select-options] [verify-options]
                                                 S file Size differs
                                         M Mode differs (includes permissions and file type)
                                         5 digest (formerly MD5 sum) differs
                                         D Device major/minor number mismatch
                                         L readLink(2) path mismatch
                                         U User ownership differs
                                         G Group ownership differs
                                         T mTime differs
                                         P caPabilities differ

包校验:
                              来源合法性验正:非对称加密
                                     完整性验正:单向加密

导入密钥:rpm --import /PATH/TO/KEY_FILE
                                               校验:rpm -K /PATH/TO/RPM_FILE,文件校验后就不会存在来源警告

信息

YUM:Yellowdog Updater Modified(RPM包的前端管理工具)

yum外在仓库的元数据(包括仓库程序包的数量、程序包名以及依赖关系等)下载到本地缓存

然后,在安装某个程序包是,在本地缓存即可查询包所在的位置和依赖关系,下载最新版本和依

赖包到本地缓存进行安装。本地会定期将本地缓存的仓库元数据与外在仓库的元数据进行校验码

比对,如果发现外在仓库校验码更新,则更新本地仓库元数据

yum repositories:
                    文件服务器(常见用法):
                                                         ftp://hostname/PATH/TO/REPO
                                                         http://hostname/PATH/TO/REPO
                                                         file:///PATH/TO/REPO

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

定义一个仓库指向:
                                     [REPO_ID]  
                                     name=
                                     baseurl=    //如有多个URL则随机选择一个,但是必须保证每个仓库的元数据

一致,建议只用一个URL
                                    # mirrorlist=SCHEME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE
                                    enabled={1|0}  //1表示启用
                                    gpgcheck={1|0} //1表示需要进行gpgcheck
                                    gpgkey=
                                    cost=   //当有多个仓库时需要选择最优的仓库,仓库的开销,数值越低优先级

越高

定义仓库指向可用变量:
                           $releasever: 引用当前系统的主版本号;
                             $basearch: 当前系统的基本架构;
                                               i386, i486, i586, i686: i386

yum命令:
                                             yum [options] [command] [package ...]
                                              安装:install

本地安装:localinstall,也可自动解决依赖问题
                                              卸载:remove
                                              升级:update
                                              查询:
                                                        info

                                                        search KEYWORD
                                                        list all|installed|availiable,列出所有的|已经安装的|可以获得的包

支持通配符
                                                        provides /PATH/TO/SOMEFILE: 查询指定文件由哪个包安装生成

重新安装:reinstall
                                               降级:downgrade
                                清理缓存:clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

如仓库元数据,rpm
                                 生动生成缓存:makecache

包组:
                                                       grouplist
                                                       groupinfo "GRP_NAME"
                                                       groupinstall "GRP_NAME"
                                                       groupremove "GRP_NAME"

仓库:
                                                       repolist [all|enabled|disabled]
                                                       repoinfo [all|enabled|disabled]

时间: 2025-01-01 07:52:29

Linux运维练习--程序员包管理rpm与yum的相关文章

linux运维转行程序员

最近有朋友来信说,半路出家做的linux运维,一度从网络做起.随着工作的深入发现自己欠缺很多基础知识,问我是不是应该从C语言开始学起. 这也许是每个半路转行的童鞋面临的问题,在北上广拿到15K很容易,是否是对口专业似乎也不是那么重要.可是慢慢的你会发现,计算机基础显得越来越重要. python对于做运维的人来说非常重要,不过如果你想后期从运维转成程序员,甚至有些人想做黑客,C语言还是要学的.当然你不要指望用C言语再写一个linux系统或者MySQL数据库 而且不建议大家在走嵌入式开发路线,嵌入式

Linux程序包管理--rpm和yum的原理和基本用法

Linux中的程序包主要分为两类: 二进制可执行安装包和源代码程序文件包. 本文主要讲解使用rpm程序包管理器和yum管理器前端工具来实现对二进制可执行安装包的安装, 查询, 升级和卸载等相关操作. Linux中在二进制可执行安装程序包安装上会涉及多个文件的操作, 操作过程就会比较复杂, 为简化该过程就使用程序安装包管理器来管理程序包的安装过程, 大大简化了程序包安装过程. Linux根据发行版本不同, 使用不同的程序包管理器实现对程序包的管理, 在这里主要介绍两大分支: debian: 使用d

Linux程序包管理rpm与yum

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

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

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

学习笔记之Linux程序包管理rpm、yum、编译

无论是Windows系统还是Linux系统,我们用户想要在操作系统上获得更多的乐趣还是更多的功能的话,就需要在一个干净的系统上安装各式各样的软件程序,Linux上的是ELF格式的,目前比较常见的程序包管理器如: Redhat软件包管理器---rpm Debian软件包管理器---dpkg 一.1.RPM 安装:rpm {-i|--install} [install-options] PACKAGE_FILE... -v: verbose,详细信息 -vv: 更详细的输出 -h: hashmark

程序包管理RPM、YUM及源代码编译

一.YUM YUM: Yellowdog Update Modifier.YUM是通过分析RPM的标题相关数据后,根据软件的相关性制作出的软件安装时属性依赖的解决方案,其可以自动处理软件之间的依赖问题,以尽量方便用户解决软件在安装.删除或升级的问题. YUM分为YUM客户端和YUM服务器,而我们经常使用到的就是客户端. 客户端的配置文件分两种: /etc/yum.config:为所有的仓库提供公共的配置 /etc/yum.repos.d/*.repo:为仓库的指向提供配置 我们在安装软件时通常使

程序包管理rpm和yum

Linux程序包管理: API:Application Programming Interface源码包 POSIX:Portable OS 程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接 静态编译: 共享编译:.so ABI:Application Binary Interface二进制包 Windows与Linux不兼容 库级别的虚拟化: Linux: WINE ELF Windows: Cywin exe,msl 系统级开发 : 性能要求高 C/C++/

linux运维基础程序包管理

软件运行环境软件包下载软件包的格式和其中可能的依赖关系软件包可用仓库加入可用服务器看到就是可用服务器,加入服务器输入会自动生成 移除软件包 升级软件包 查找全部相同的软件包 查看已安装的软件包 原文地址:http://blog.51cto.com/13896223/2151901

Linux运维基础-系统管理之权限管理

用户和组 用户userLinux用户:username/uid管理员:root,0普通用户:1-65535系统用户:1-499(cetnos6)1-999(centos7)组groupLinux组:groupname/gid管理组:root,0系统组:1-499(centos6)1-999(centos7)普通组:500+(centos6),1000+(centos7) 组的类别主要组:一个用户只允许一个主组附加组:一个用户可以属于零个或多个附加组命令:id 后跟用户名可以查看用户id和组 用户