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

linux运维实战练习-2015年9月10日课程作业(练习)安排

一、作业(练习)内容:

1、总结rpm和yum实现程序包的管理功能.

(1)相关概念

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

应用程序功能:提供各种各样特定功能,如bash等

程序包的组成部分:

二进制程序:程序包的核心,存储在/bin, /sbin,/ /usr/bin, /usr/sbin等路径下

库文件:共享资源,存储在/lib64, /usr/lib64等路径下

配置文件:定义工作属性,存储在/etc路径下

帮助文件:存储在manual, info等路径下

包管理器功能: 打包,包管理(如程序包的安装、升级、卸载、查询及校验等功能)

打包:将程序的所有文件存放在一个单一的归档文件中;

安装:将打包的文件对应展开在当前系统上(要验证来源的合法性、完整性)

卸载:把安装上的文件全部收集起来删除掉

升级:新版本代替旧版本

查询:安装情况及安装信息

校验:安装后配置文件是否被改变

包管理器类别:

deb: debian

rpm: redhat package manager

RPM is Package Manager

包组: 由许多程序包构成的一组包的集合

rpm包:基于rpm命令管理程序包的包组

打包工具:rpmbuild: 基于specs文件打包

rpm包的命名机制:

对于每一个程序包: name-VERSION.tar.gz

(包名-版本号.归档格式名称.压缩后缀名称)

VERSION:major.minor.release

( 程序版本号:主版本号.次版本号.修正号)

如:base-4.2.4.tar.gz

对于rpm包的程序包: name-VERSION-RELEASE.ARCH.rpm

(包名-版本号-rpm发行号.架构.rpm)

VERSION:major.minor.release

RELEASE :rpm包的发行号 (如1.el7)

ARCH:平台架构(如x86_64)

如:bash-4.2.4-1.el7.x86_64.rpm

bash-devel-4.2.4-1.el7.x86_64.rpm

分包机制:

testapp-VERSION.tar.gz可分为:

核心包:testapp-VERSION  ( bash-4.2.4-1.el7.x86_64.rpm)

支包:testapp-devel-VERSION (bash-devel-4.2.4-1.el7.x86_64.rpm)

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

每个rpm包都提供一个或多个capabilities(能力):

依赖其他包,或被其他包依赖

X --> Y (X功能依赖Y的功能)

(在使用rpm安装X时,必须先将Y安装了才安装X

在使用yum安装X时,是将Y一同安装了的)

rpm包的数据库:记录当前系统上安装的所有的包的信息

在RedHat、Centos系统中存储在/var/lib/rpm/路径下

如何获取rpm包:

1、发行版提供的程序包;

2、Fedora-EPEL

3、项目的官方站点

4、搜索引擎

http://rpmfind.net

http://rpm.pbone.net

http://pkgs.org

如何在CentOS7系统识获取rpm包(光盘用的设备文件存储在:/dev/cdrom)

(1)确认光盘设备为开启状态

(2)创建挂载点,并挂载光盘设备文件

(3)打开光盘设备中的文件

YUM: Yellowdog Updater Modified,是rpm包的前端管理工具,实现自动解决程序包的所有依赖关系,会将安装包和被安装包依赖的所有包一同安装,不再需要一个个去手动安装被依赖的包

yum的仓库:yum命令可以调用的所有程序包的路径(存储位置)

路径就是 yum repositories(文件服务器),它可以是一个服务器地址,也可以是网址,也可以是本地的路径,如:

ftp://hostname/PATH/TO/REPO

http://hostname/PATH/TO/REPO

file:///PATH/TO/REPO

如何创建yum的仓库(关键在于定义一个仓库指向)

yum程序仓库的配置文件:

/etc/yum.conf

定义全局配置:对所有仓库都适用的配置

/etc/yum.repos.d/*.repo

一个文件通常用于一个或一组功能相近或相关的仓库

1、切换到 /etc/yum.repos.d/目录下,

在该目录下创建一个以.repo结尾的文件,并使用vim编辑器打开该文件

2、定义一个仓库指向:在以.repo结尾的文件中编辑如下内容,保存后退出

[REPO_ID] : 唯一的ID

name=        :仓库名称

baseurl=     :程序包路径(可以有多个,但不建议使用多个)

或者mirrorlist=SCHEME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE :

#     以#开头表示注释信息,无需执行

enabled={1|0}  :是否启用仓库,默认1(启用)

gpgcheck={1|0} :安装前是否校验来源合法性、完整性

gpgkey=        :密钥文件的路径

cost=          :指明优先级,默认为1000,

这样就定义好了仓库的指向,上面操作是定义了互联网上的两个镜像路径为仓库指向,

相当于创建了两个仓库,可查看到

定义仓库指向时的可用变量:实现通用语法配置

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

$basearch: 当前操作系统的基本架构;

64位:x-86

32位:i386, i486, i586, i686: i386

http://mirrors.magedu.com/CentOS/$releasever/os/$basearch

http://mirrors.163/ailyun/sohu.com/CentOS/$releasever/os/$basearch

如何使用光盘当做本地仓库:

(1)挂载光盘至某目录

(2)使用file:///指明其访问路径,用来定义仓库指向

(baseurl=file://挂载点)

如何创建本地仓库:

(1)下载一个rpm包至本地某目录下(如/tmp/test)

(2) 安装createrepo工具:yum install createrepo

(3)使用命令createrepo /PATH/TO/RPMFILES/(如createrepo /tmp/test)

(4)在/etc/yum.repo.d/目录下定义仓库(如baseurl= file:///tmp/test)

使用包管理器安装程序包时,在安装前要对程序包的来源合法性、完整性进行校验

(1)找到密钥,一般都在光盘里面(挂载点)

这是Centos7系统的

这是Centos6系统的

(2)导入密钥:rpm --import /PATH/TO/KEY_FILE  (导入后将会自动校验)

或手动校验:rpm -K /PATH/TO/RPM_FILE

(2)基于rpm命令实现程序包管理:

安装:

rpm {-i|--install} [install-options] PACKAGE_FILE ...

rpm -i PACKAGE_FILE ...:直接安装程序包

rpm -ivh PACKAGE_FILE...:显示安装过程及安装进度

-v:显示详细过程,

-vv, -vvv(显示比-v更为详细的安装过程)

-h:用#显示安装进度

rpm -ivh PACKAGE_FILE... --replacepkgs:重装程序包

rpm -ivh PACKAGE_FILE... --nodeps:安装时忽略依赖关系安装

安装时忽略依赖关系安装,程序能正常安装,但可能会无法运行

升级:(http://pkgs.org/可查询程序包是否有新版本)

rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

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

-Uvh PACKAGE_FILE ...: 如果已安装了该程序包的旧版程序包,则将其升级;

如果没有安装该程序包,则安装最新版本的;

-Fvh: 如果已安装旧版程序包,则将其升级;

如果没有安装该程序包,则不做任何操作(即不安装);

--nodeps:忽略依赖关系

--oldpackage:降级;

-force:强制升级

卸载:

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

rpm -e PACKAGE_NAME

rpm -e PACKAGE_NAME --nodeps:卸载时忽略依赖关系

(忽略依赖关系卸载后,依赖于此程序包的程序将无法正常运行)

rpm -e PACKAGE_NAME --noscripts:卸载时不执行脚本

查询:

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

查询选项:

已安装的程序包的查询

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

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

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

rpm -qd PACKAGE_NAME: 查询指定的程序包安装时生成的帮助文档

rpm -ql PACKAGE_NAME: 查询程序包安装时生成的所有文件的列表

( 包含qd、qc的查询结果);

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

rpm -qR PACKAGE_NAME:查询程序包依赖于哪些其他人提供的程序包

rpm -q --provides PACKAGE_NAME:查询程序包可以被哪些程序包依赖

rpm -q --scripts PACKAGE_NAME:查询程序包安装需执行的相关的脚本

preinstall: 安装前脚本

postinstall:安装后脚本

preuninstall: 卸载前脚本

postuninstall: 卸载后脚本

未安装的程序包的查询

rpm -qpi PACKAGE_FILE : 查询可以安装但尚未安装的程序包文件的信息;

rpm -qpl PACKAGE_FILE :查询未安装的程序包安装时会生成的所有文件

校验:

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

rpm -V PACKAGE_NAME:检查已安装的程序包生成的文件是否被改变

表示 /usr/share/doc/tree-1.6.0/LICENSE文件的S、5、T发生改变了

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文件被删除

(3)基于yum命令实现程序包管理

yum [options] [command] [package ...]

安装:install

yum install PACKAGE_NAME

yum install /PATH/TO/PACKAGE_FILE

yum reinstall PACKAGE_NAME:重新安装

yum groupinstall "GRP_NAME":安装包组(安装包组中的所有程序包)

卸载:remove

yum remove PACKAGE_NAME

yum groupremove "GRP_NAME":卸载包组(卸载包组中的所有程序包)

注意:卸载程序包时,依赖于此程序包的其他程序包将会被一起卸载

查询:

查询包

yum info PACKAGE_NAME:查询指定包的简要信息

yum search KEYWORD:查询KEYWORD相关的包(匹配包名)

yum search all KEYWORD (匹配包名,匹配包的简要信息)

yum check-update :查询是否有可升级的程序包

yum list  PACKAGE_NAME:查询指定程序包是否已安装

yum list all:显示所有程序包

yum list installed:显示已安装的程序包

yum list availiable:显示能安装但尚未安装的程序包

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

yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

yum clean all:清理所有缓存

yum makecache ;手动生成缓存

查询包组:

yum grouplist:显示当前系统的所有包组

yum groupinfo "GRP_NAME":显示指定包组中的程序包的相关信息

查询仓库:

yum repolist :显示当前系统中可用的仓库

yum repolist enabled:(可用的),等同于yum repolist

yum repolist all:显示当前系统所有仓库

yum repolist disabled:显示当前系统中禁用的仓库

yum repoinfo [all|enabled|disabled] 显示仓库的相关信息

升级:

yum update PACKAGE_NAME

降级:

yum downgrade PACKAGE_NAME

(4)补充: dnf管理工具:yum的升级版工具

(1)使用yum info dnf 查询dnf程序包相关信息

(2)使用yum inst dnf安装dnf

这样就可以使用dnf命令管理包了

时间: 2024-12-14 05:09:07

9月10日课程作业(练习)的相关文章

linux运维实战练习-2015年9月10日课程作业(练习)安排

一.作业(练习)内容: 1.总结rpm和yum实现程序包的管理功能. 要求:作业要图文并茂 二.完成时间: 2015年9月15日之前. 三.提交方式: 请将作业的博文链接地址以评论本博客的形式提交.格式如: 学员编号+姓名   http://mageedu.blog.51cto.com/4265610/1687589

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

2015年9月10日课程作业(rpm、yum)

1.rpm 程序包管理: 用法: rpm [选项...] 查询/验证软件包选项:   -a, --all                        查询/验证所有软件包   -f, --file                       查询/验证文件属于的软件包   -g, --group                      查询/验证组中的软件包   -p, --package                    查询/验证一个软件包 查询选项(用 -q 或 --query):

linux运维实战练习-2015年9月10日课程作业

总结rpm和yum实现程序包的管理功能 rpm实现程序包的管理功能 安装: 命令格式:rpm {-i|--install} [install-options] PACKAGE_FILE ... 选项: -i: -v:显示详细过程,-vv, -vvv -h: 每个rpm包都提供一个或多个capabilities --nodeps:忽略依赖关系安装 --replacepkgs:重装程序包 例子:

3月7日课程作业 信息化基础知识、信息化系统服务管理

3月7日课程作业  信息化基础知识.信息化系统服务管理 信息化基础知识 1.国家信息化体系要素 a) 信息化技术:是信息化体系六要素的龙头. b) 信息化资源:是国家信息化的核心任务,是国家信息建设取得实效的关键,也是我国信息化的薄弱环节.信息资源开发和利用的程度是衡量国家信息化水平的一个重要标志. c) 信息网络:是信息资源开发利用和信息技术应用的基础.通常将信息网络分为电信网.广播电视网和计算机网络.三网的发展方向将逐步实现三网融合. d) 信息技术和产业:是我国进行信息化建设的基础. e)

2015年8月30日课程作业(练习)

linux运维实战练习-2015年8月30日课程作业(练习)安排 一.作业(练习)内容: 1.总结文本编辑工具vim的使用方法: vim: 全屏幕的编辑器 编辑模式:命令模式 输入模式: 末行模式: 编辑模式 --> 输入模式: i: insert, 在光标所在在位置前可输入内容 a:append,在光标所在在位置后可输入内容 I: 行首,在光标所在在位置行首可输入内容 A:行尾,在光标所在在位置行尾可输入内容 O:在光标所在位置上方新建行,在行首可输入内容 o:new line,在光标所在位置

9月13日-9月15日课程作业(练习)

9月13日-9月15日课程作业(练习)   5.写一个脚本:如果某路径不存在,则将其创建为目录:否则显示其存在,并显示内容类型:(不要怀疑,就是这么简单) 1 #!/bin/bash2 #3 #4 if [ $# -ne 1 ];then5 echo "please input one parameter"6 exit 37 fi8 9 if [ -e $1 ];then10 echo $(file $1)11 else12 mkdir -p $113 echo "make

linux运维实战练习-2015年9月01日课程作业(练习)

linux运维实战练习-2015年9月01日课程作业(练习)安排 一.作业(练习)内容: 1.复习本次课程所讲的内容 2.总结整理磁盘管理及文件系统管理中设计的各种命令的使用,并附注一定的示例: 在Linux中,一块磁盘能被使用(可以被访问.被写入.被存储)要有以下三个步骤: (1)进行磁盘分区,及创建分区 (2)创建文件系统 (3)挂载文件系统 (1)磁盘分区 创建分区的命令: fdisk, parted, sfdisk fdisk:最多支持在一块硬盘上的15个分区:fdisk提供了一个交互式

linux运维实战练习-2015年9月5日课程作业(任务计划使用和练习)-JY1506402-19+liuhui880818

作业目标:linux运维实战练习-2015年9月5日课程作业(练习)安排 作业环境:CentOS 6.7/7 x86_64 一.作业(练习)内容: 1.总结Linux系统上的任务计划(at.crontab)的详细使用方法: 2.每周一到周六的凌晨3点20分,运行cp命令对/etc/目录进行归档另存,存储位置为/backups/etc-YYYY-MM-DD: 3.每周日凌晨2点30分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backup/fstab-YYYY-MM-DD-hh-