程序包管理--9月10日作业

程序包管理RPM

1.回顾:

内核功能:进程管理、内存管理、网络协议栈、驱动程序

应用程序:具体功能

2.包管理器:打包,包管理(安装、升级、卸载、查询及校验)

deb: debian

rpm: redhat package manager

3.程序包的组成部分

二进制程序:/bin, /sbin,/ /usr/bin, /usr/sbin,

库文件:/lib64, /usr/lib64

配置文件:/etc

帮助文件:manual, info

4.rpm包

4.1分包机制

源码包的命名格式:testapp-VERSION.tar.gz

核心包:testapp-VERSION   通常包含程序的主要功能

支包:testapp-devel-VERSION为主程序包提供特别功能;

例如:
zsh-5.0.2-7.el7.x86_64.rpm          核心包
zsh-html-5.0.2-7.el7.x86_64.rpm       支包,提供html功能

VERSION:major(主版本号).minor(次版本号,小功能改进).release(发行号,修改了bug)

4.2 rpm包命名

格式: name-VERSION-RELEASE.ARCH.rpm

示例:

bash-4.2.46-12.el7.x86_64.rpm
bash:软件名称;
4.2.46:软件版本(version) 2为主版本;后面的2为次版本号 ; 46为源码包的release 12为这个rpm包的release ;
el6. x86_64:适用enterprise linux6 64位x86系统平台;
rpm:包格式

4.3 包和包之间:有可能存在依赖关系

示例:

[[email protected] Packages]# rpm -ivh php-mysql-5.4.16-23.el7_0.3.x86_64.rpm
error: Failed dependencies:                                                                                                                                                               提示错误
php-pdo(x86-64) = 5.4.16-23.el7_0.3 is needed by php-mysql-5.4.16-23.el7_0.3.x86_64       需要先安装php-pdo

具体解决方法见6.2

5.rpm包的获取

  • 发行版提供的光盘

    CentOS识别光盘用的设备文件:/dev/cdrom

    获取光盘内容需要挂载光盘

    示例:

  • [[email protected] ~]# mount -r /dev/cdrom /media/cdrom/
    [[email protected] ~]# cd /media/cdrom/
    [[email protected] cdrom]# ls
    CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
    EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
    EULA             isolinux  repodata  TRANS.TBL
    [[email protected] cdrom]# cd Packages/                                                    里面放着程序包
    [[email protected] Packages]# ls | wc l统计程序包个数
    8653
  • Fedora-EPEL
  • 项目的官方站点
  • 搜索引擎
    • http://rpmfind.net
    • http://rpm.pbone.net
    • http://pkgs.org

6.基于rpm命令实现程序包管理

6.1安装:   -i:(install)安装

-v:显示详细过程,还有更详细显示-vv, -vvv

-h:显示安装进度

示例:

Centos6.7下

Centos7.1中还有更多的详细过程

6.2忽略依赖关系安装

因为每个rpm包都提供一个或多个capabilities,若安装时依赖的包未安装则无法进行安装

--nodeps:忽略依赖关系安装

--replacepkgs:重装程序包

--test:仅做测试

示例:

[[email protected] Packages]# rpm -ivh php-mysql-5.4.16-23.el7_0.3.x86_64.rpm
error: Failed dependencies:
php-pdo(x86-64) = 5.4.16-23.el7_0.3 is needed by php-mysql-5.4.16-23.el7_0.3.x86_64
[[email protected] Packages]# rpm -ivh php-mysql-5.4.16-23.el7_0.3.x86_64.rpm --nodeps
Preparing...                          ################################# [100%]
Updating / installing...
1:php-mysql-5.4.16-23.el7_0.3      ################################# [100%]

6.3升级

rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...       升级安装

rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

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

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

--nodeps        :忽略依赖关系

--oldpackage:降级;

--force            :强制升级,旧的版本被其他程序依赖,普通升级会导致出粗

6.4卸载

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

6.5查询

rpm {-q|--query} [select-options] [query-options]

查询选项:

-qa: 查询本机已经安装的所有程序包;

-qf /PATH/TO/SOMEFILE: 查询此处的文件由哪个程序包安装生成;

-qc: 查询指定程序包安装生成的配置文件

示例:

[[email protected] Packages]# rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc

-qd: 查询指定的程序包安装生成的文档

示例:

-qi: 查询指定的程序包的相关信息;

示例:

-q --scripts:查询程序包相关的脚本:

preinstall:安装前脚本

postinstall:安装后脚本

preuninstall:卸载前脚本

postuninstall:卸载后脚本

-p: 查询针对是未安装的程序包文件,组合-q使用;

6.6校验

作用:检查安装包的文件是否被修改过

rpm {-V|--verify} [select-options][verify-options]

示例:
安装zsh软件后,列出生成的所有文件的列表
[[email protected] Packages]# rpm -ql zsh
选择其中一个文件,修改该文件,加入‘#’号
vim /usr/share/zsh/4.3.11/scripts/newuser
校验zsh:

显示的消息意义如下:

Sfile Size differs                                         文件大小是否被改变
MMode differs (includes permissions and file type)       文件的类型或文件的属性(rwx)是否被改变
5digest (formerly MD5 sum) differs                     MD5de指纹码的内容已经不同
DDevice major/minor number mismatch          设备的主/次代码已经改变
LreadLink(2) path mismatch                                    Link路径已经被改变
UUser ownership differs                                 文件的所有者已被改变
GGroup ownership differs                             文件的所属用户组已经被改变
TmTime differs                                                    文件的创建时间已经被改变
PcaPabilities differ                                             文件的能力已经被改变
 
c :配置文件(config file)
d :文件数据文件(documentation)
g : ghost file,通常是该文件被某个软件所包含
l :许可证文件(license file)
r :自述文件(read me

7 包校验

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

导入密钥:rpm --import /PATH/TO/KEY_FILE

校验:rpm -K /PATH/TO/RPM_FILE

示例:

[[email protected] Packages]# ls/etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Debug-7  RPM-GPG-KEY-CentOS-Testing-7
[[email protected]]# cd ..
[[email protected] cdrom]# rpm --importRPM-GPG-KEY-CentOS-7
[[email protected] cdrom]# cd Packages/
[[email protected] Packages]# rpm -Kzsh-5.0.2-7.el7.x86_64.rpm
zsh-5.0.2-7.el7.x86_64.rpm: rsa sha1 (md5)pgp md5 OK

YUM

1.YUM: Yellowdog Updater Modified,是一种在线升级机制,解决RPM属性依赖的方式

yum repositories (yum 仓库):

文件服务器提供方式:

ftp://hostname/PATH/TO/REPO

http://hostname/PATH/TO/REPO

file:///PATH/TO/REPO

2.yum程序的配置文件

2.1/etc/yum.conf    定义全局配置:对所有仓库都适用的配置

2.2/etc/yum.repos.d/*.repo    一个文件通常用于一个或一组功能相近或相关的仓库

2.3定义一个仓库指向:

[REPO_ID]   代表仓库的名字,不能与其他仓库重名

name=               说明仓库的意义

baseurl=            后接仓库的实际网址

# mirrorlist=     列出该仓库可以使用的镜像站点

enabled=            1表示启用。0表示不启用  默认为启用

gpgcheck={1|0}  检验包的合法性,0为不启用

gpgkey=                公钥文件所在位置

cost=这个仓库的开销

示例:

[[email protected] yum.repos.d]# mvCentOS-Base.repo CentOS-Base.repo .bak
mv: target `.bak‘ is not a directory
[[email protected] yum.repos.d]# mvCentOS-Base.repo CentOS-Base.repo.bak
[[email protected] yum.repos.d]# vimCentOS-Base-aliyun.repo
[[email protected] yum.repos.d]# yum repolist

结果如下:

2.4定义仓库指向可用变量:

$releasever: 引用当前系统的主版本号;

$basearch: 当前系统的基本架构,例如:i386,i486, i586, i686: i386均为x86架构

例如:http://mirrors.163.com/CentOS/$releasever/os/$basearch

3. yum命令

1 .1 格式:yum [options][command] [package ...]

1.2安装:install  CentOS6和7中,该命令可以安装仓库中的软件,也可以安装本地某路径的软件包install /PATH/TO/package_file

1.3卸载:remove

1.4升级:update

1.5查询:

info

searchKEYWORD

listall|installed|availiable

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

1.6重新安装:reinstall

1.7降级:downgrade

1.8清理缓存:clean [ packages| metadata | expire-cache | rpmdb | plugins | all ]

1.9生动生成缓存:makecache

1.10包组:一次管理一组程序包

grouplist

groupinfo "GRP_NAME"

groupinstall "GRP_NAME"

groupremove "GRP_NAME"

1.11仓库:

repolist [all|enabled|disabled] 列出所有可用仓库,默认是all

repoinfo [all|enabled|disabled] 查看仓库相关信息

4 .使用光盘当做本地仓库

1)挂载光盘至某目录

mount -r /dev/cdrom /media/cdrom/

2)在baseurll栏使用file://指明其访问路径;

示例:

5.创建本地仓库:

1)安装 yum installcreaterepo

[[email protected] yum.repos.d]# yum installcreaterepo

2)在本地创建一个存放rpm包的目录

[[email protected] ~]#mkdir /yumload

3)将DVD中的Packages中的rpm包全部拷贝到本地rpm包的目录

4)使用createrepo指令创建本地仓库

[[email protected] ~]#createrepo/yumload/

5)配置repo文件

[CentOS6.7onLocal]                   
name= a local repo   
baseurl=file:///yumload/    
enabled=1                 
gpgcheck=1
cost=101
时间: 2024-08-02 18:53:13

程序包管理--9月10日作业的相关文章

高项学员:2015年10月10日作业

高项学员:2015年10月10日作业1.下载<政府采购法实施例例>2015年新发布的,并看一下(这个不用写,下面的是写的)2.沟通管理计划包括哪些内容?3.风险管理中,负面风险. 正向风险的应对策略?4.采购管理中,包括哪些内容?最晚提交时间:2015年10月12日(下次上课前).提交方法:同学们按照要求完成作业,并发布在自己的51CTO博客,并将博文地址以评论的形式发布在老师布置作业的评论区

9月10日作业

1.总结rpm和yum实现程序包的管理功能. 程序包管理: deb:debian rpm:redhat rpm用c语言重写之后才是现在用的,比较好,成为了业界标准 程序包组成部分: 二进制程序:/bin /sbin /usr/bin /usr/sbin 库文件:/lib64 /usr/lib64 配置文件:/etc 帮助文件:manual info 包管理器: 打包:一个单一的归档文件:里面包含一堆文件 安装:展开归档文件,把文件放到指定的地方 卸载:找到安装的文件,然后删除他们 升级:用新版的

2015年10月10日作业

2.沟通管理计划包括哪些内容? a.沟通计划编制,1.确定项目干系人,已经对项目的影响程度2.明确干系人需要的信息. b.信息分发,以合适的方式及时向项目干系人提供所需信息. c.绩效报告,收集并分发有关项目绩效的信息,包括状态报告.进展报告和预测. d.项目干系人管理,对项目沟通进行管理,以满足信息需要者的需求并解决项目干系人之间的问题.3.风险管理中,负面风险. 正向风险的应对策略? 负面风险:  a.避免:消除.隔离风险.放宽项目目标,解决.  b.转移:保险  c.减轻:冗余设计.减轻影

10月10日作业

1.沟通管理计划包括哪些内容? 沟通管理计划包括确定了项目干系人的信息和沟通需求:哪些人是项目干系人,他们对于该项目的收益水平和影响程度,谁需要什么样的信息,何时需要,以及应怎样分发给他们. 2.风险管理中正向风险.负面风险的应对策略? 正向风险的应对策略:开拓.分享.强化,负面风险的应对策略:避免.转移.减轻. 3.采购管理包含哪些内容? 采购管理包含:采购计划编制.编制合同.招标.供方选择.合同管理.合同收尾.

高项 10月10日作业

2.沟通管理计划包括哪些内容? 1 项目干系人沟通要求. 2 对要发布信息的描述,包括格式.内容和详尽程度. 3 信息接收的个人或组织. 4 传达信息所需的技术或方法 5 沟通频率,如每周沟通等. 6 上报过程,对下层无法解决的问题,确定问题上报的时间要求和管理链. 7 随项目的进展对沟通管理计划更新与细化的方法. 8通用词语表. 3.风险管理中,负面风险. 正向风险的应对策略? 负面风险: (1)    避免:获得信息,改良沟通 (2)    转移:转移给第三方 (3)    减轻:测试.选择

2015年9月10日课程作业【程序包管理:rpm, yum】_JY1506402-19+liuhui880818

<Linux系统管理> (1)磁盘和文件系统管理: (2)RAID, LVM; btrfs; (3)程序包管理:rpm, yum(dnf) (4)Linux的网络管理; (5)进程和作业管理:htop, glances, tsar: (6)sed和awk: (7)Linux系统的开机启动流程: (8)内核基础知识,内核定制编译: (9)系统安装:kickstart, pxe 一.作业(练习)内容: 1.总结rpm和yum实现程序包的管理功能. 要求:作业要图文并茂 二.完成时间: 2015年9

9月10日课程作业(练习)

linux运维实战练习-2015年9月10日课程作业(练习)安排 一.作业(练习)内容: 1.总结rpm和yum实现程序包的管理功能. (1)相关概念 内核功能:进程管理.内存管理.提供网络协议栈.驱动程序.... 应用程序功能:提供各种各样特定功能,如bash等 程序包的组成部分: 二进制程序:程序包的核心,存储在/bin, /sbin,/ /usr/bin, /usr/sbin等路径下 库文件:共享资源,存储在/lib64, /usr/lib64等路径下 配置文件:定义工作属性,存储在/et

2016年3月28日作业 项目沟通管理与合同管理

2016年3月28日作业 项目沟通管理与合同管理 一.项目沟通管理1.项目沟通管理包括哪些过程?(记)  沟通计划编制.信息分发.绩效报告.项目干系人管理. 2.阻碍有效沟通的因素有哪些?  物理距离.环境因素.缺乏清晰的沟通渠道.复杂的组织结构.复杂的技术术语.有害的态度. 3.沟通计划编制的第一步是什么?目的是什么?     沟通计划编制的第一步就是干系人分析,目的是得出项目中沟通的需求和方式,进而形成较为准确的沟通需求表,然后再针对需求进行计划编制. 4.沟通管理计划包括哪些内容(8条) 

第10章,程序包管理学习笔记

更多内容请点击: Linux学习从入门到打死也不放弃,完全笔记整理(持续更新,求收藏,求点赞~~~~) http://blog.51cto.com/13683480/2095439 笔记整理开始时间:2018年4月20日14:07:22 第10章  程序包管理 本章内容 软件运行环境 软件包基础 rpm包管理 yum管理 定制yum仓库 编译安装 软件运行和编译: ABI: Application Binary  Interface 应用程序的二进制接口 window:       PE,Por