1. 软件包简介

1.1 软件包分类

(1)源码包:如C、C++源码包,脚本安装包执行后可以自动安装。

(2)二进制包:Redhat系列(如CentOS):为RPM包,Debian系列(如ubuntu):为DEB包,这些都是各自的系统默认包),它们都是经过编译的文件

1.2 源码包

(1)源码包的优点

  ①开源,如果有足够的能力,可以修改源代码

  ②可以自由选择所需要的功能

  ③软件是编译安装,所以更加适合自己的系统,更加稳定,效率更高

  ④卸载方便

(2)源码包的缺点

  ①安装过程步骤多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误。

  ②编译过程时间较长,安装比二进制安装时间长

  ③因为是编译安装,安装过程中一旦报错,新手很难解决。

1.3 RPM

(1)二制包的优点

  ①包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载

  ②安装速度比源码包安装快的多

(2)二进制包的缺点

  ①经过编译,不再可以看到源代码

  ②功能选择不如源码包灵活

  ③依赖性问题如A→B→C,则安装时应先安装C,再安装B,最后安装A。卸载时先A,再B,最后C

2. RPM包管理

2.1 rpm命令管理

(1)RPM包命名原则(如httpd-2.2.15-53.el6.centos.1.i686.rpm)

  ①httpd:软件包名

  ②2.2.15:软件版本

  ③53:软件发布的次数

  ④el6.centos:适合的Linux平台

  ⑤i686:适合的硬软平台

  ⑥rpm:rpm包扩展名

(2)RPM包的依赖性

  ①树形依赖:A→B→C,安装时先C再B,最后A。卸载先A再B最后C)

  ②环形依赖:A→B→C→A,用命令将ABC同时安装。

  ③模块依赖:如库依赖。可到模块依赖网站查询:www.rpmfind.net

(3)rpm包的安装、卸装与升级命令:rpm [选项] 包全名(或包名)

选项

含义

备注

-i

安装软件包

格式:rpm –ivh 包全名,如:

#rpm –ivh httpd-2.2.15-53.el6.centos.1.i686.rpm

-e

卸载安装包

格式:rpm –e 包名,如:

#rpm –e httpd(但要注意依赖关系)

-U

升级安装包

格式:rpm –Uvh 包全名

-v

verbose,显示详细信息

-h

hash,显示进度

--nodeps

不检测依赖性

(4)rpm包查询:格式#rpm [选项] 包全名(或包名)

选项

含义

备注

-q

(查询)

-qa:所有己安装包

-qi:查询软件信息

-qip:查询未安装包信息

-ql:以列表(list)显示

-qlp:查询未安装包信息

-qf:查询系统文件属于哪个包

-qR:查询软件包的依赖性

-qRp:查询未安装软件包的依赖性

①查询httpd包是否安装:

#rpm –q httpd

②查询所有己安装的RPM包

#rpm –q

③以列表形式查询httpd包软件信息

#rpm –ql httpd

④查询系统文件属于哪个RPM包

#rpm –qf /etc/yum.conf(系统文件名)

⑤查询httpd未安装包的依赖关系:

#rpm –qRp /路径/httpd的包全名

(5)RPM包的检验:格式:rpm –V 己安装的包名

检验的项目

含义

验证内容中的

8个信息位

S:文件大小是否改变

M:文件的类型或文件的权限(rwx)是否改变

5:文件MD5校验和是否改变(可以看成文件内容是否改变)

D:设备是否改变

L:文件路径是被改变

U:文件的属主(所有者)是否改变

G:文件的属组是否改变

T:文件的修改时间是否改变

文件类型

c:配置文件(config file)

d:普通文件(documentation)

g:"鬼"文件(ghost file),表示该文件不该出现在这个RPM包中,如果出现,表示该包可能是出现问题的了。

l:授权文件(license file)

r:描述文件(read me)

备注

①只能用来校验己安装包是否被更改。

②案例分析:#rpm –V httpd

【说明】运行该命令后,会将当前httpd包与刚安装时的包进行比较。如果没有被修改,则直接返回,如果己被修改的,会显示哪个文件被修改及被修改的项目(由8个信息位来表示)。如,

S.5....T. c /etc/httpd/conf/httpd.conf,表示httpd.conf这个文件S、5、T被修改,其它不变。其中的c表示该文件是配置文件类型

(6)RPM包中文件提取:格式:#rpm2cpio 包全名 | cpio –idv .文件绝对路径

  ①rpm2cpio:将rpm包转换为cpio格式

  ②cpio:是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件。其命令格式如下:cpio [选项] < [文件|设备]

    A.其中 –i:copy-in模式,即还原、解压备份档。-o:copy-out模式,把文件复制到备份档中,即压缩。 -d:还原时自动新建目录。-v:显示还原过程。

    B.通过输入重定向<从指定的文件或设备中提取文件。

  ③应用举例

#rpm – qf /bin/ls  //查询ls命令属于哪个软件包

#mv /bin/ls /tmp/   //模拟ls命令被误删除情况。

//提取RPM包中ls命令到当前目录的/bin/ls下
#rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-.el6.i686.rpm | \
cpio –idv ./bin/ls #cp /root/bin/ls /bin/ //把ls命令复制到/bin/目录,修复文件丢失。

2.2 yum在线管理

2.2.1 IP地址配置及网络yum源

(1)IP地址配置:

  ①vi /etc/sysconfig/network-scripts/ifcfg-eth0

  ②将ONBOOT=“no”改为ONBOOT=“yes”

  ③重启网络服务:#service network restart

(2)网络yum源

  ①#vi /etc/yum.repos.d/CentOS-Base.repo

[base]      容器名称,一定要放在[]中

name        容器说明,可以自己随便写

mirrorlist  镜像站点,可以注释掉

baseurl     yum源服务器的地址。默认是CentOS官方的yum源服务器

enabled     此容器是否生效,如果不写或写成enable=1都是生效,enable=0不生效

gpgcheck    如果是1是指RPM的数字证书生效,如果0则不生效

gpgkey      数字证书的公钥文件保存位置。不用修改。

  ②yum源设置示例

2.2.2 yum命令

(1)查询所有可用软件包列表:#yum list

(2)搜索服务器上所有和关键字相关的包:#yum search 关键字

(3)安装:#yum –y install 包名  (其中-y自动回答yes),如#yum –y install gcc-c++

(4)升级:#yum –y update 包名 (注意,如果不写包名,会将升级所有软件及linux内核!)

(5)卸载:#yum –y remove 包名  (注意,卸载会将其依赖包也删除!)

2.2.3 yum软件组管理命令

(1)列出所有可用的软件组列表:#yum grouplist

(2)安装指定软件组:#yum groupinstall 软件组名 (组名可由grouplist查询出来,yum不认识中文名称的软件组名,名称中有空格的,要用引号把整个名称引起来)

  ①切换英文:#LANG=en_US yum grouplist 或

        # LANG=en_US

        #yum grouplist

  ②切换中文:#LANG=zh_CN.utf8

(3)卸装指定软件组:#yum groupremove 软件组名

2.2.4 光盘yum源搭建

(1)挂载光盘:#mount /dev/cdrom /mnt/cdrom/

(2)让网络yum源文件失效:

#cd /etc/yum.repos.d/

#mv CentOS-Base.repo CenOS-Base.repo.bak  //改名

#mv CentOS-Debuginfo.repo CenOS-Debuginfo.repo.bak

#mv CentOS-Vault.repo  CentOS-Vault.repo.bak

(3)修改光盘yum源文件:#vim CentOS-Media.repo

第5章 软件包管理(1)_RPM包安装的更多相关文章

  1. 软件包管理:源码包管理-源码包与RPM包的区别

    RPM会安装在默认位置,源码包会安装在指定位置. 绝大多数ROM包遵循此规范.写软件包是就固定好了. 主要影响体现在对服务的管理方法,服务的管理分三种:启动,重启动,停止. 启动时使用绝对路径来启动. ...

  2. Linux命令应用大词典-第17章 软件包管理

    17.1 rpm:RPM软件包管理器 17.2 rpmargs:处理RPM软件包 17.3 rpmbuild:构建RPM软件包 17.4 rpmdiff:比较两个软件包之间的不同 17.5 rpmel ...

  3. linux笔记:RPM软件包管理-源码包管理

    源码包和rpm包的区别: 源码包安装过程: 编译安装前准备(执行./configure --prefix=路径 来配置软件的安装位置,以及做其他的配置和检查): 编译和安装(直接在目录下执行make和 ...

  4. 饮冰三年-人工智能-linux-08 软件包管理(Python的安装)

    1:软件包存放的位置 media/CentOS_6.9_Final/Packages文件夹下 2.RPM就是Red Hat Package Manger(红帽软件包管理工具)的缩写. 2.1 常用的命 ...

  5. mac os x 10.9.1 安装 Homebrew软件包管理工具及brew安装maven3.1.1

    Mac OSX上的软件包管理工具,安装软件或者卸载软件. 打开终端输入(如不行,可参考homebrew官网): ruby -e "$(curl -fsSL https://raw.githu ...

  6. Linux-软件包管理-源码包安装

    rpm -q gcc 查看c语言编译器是否已经安装 在浏览器输入:http://mirror.bit.edu.cn/apache/httpd/ 下载2.2.29这个包 cd ~ 回到root目录 ls ...

  7. 软件包管理:RPM包管理-yum在线管理

    CentOS 是免费的的 RedHat需要付费 1.IP地址配置 setup  #使用setup工具 (这种方式配置的永久有效 同时还可以配置掩码 网关等) 直接输入setup就会弹出(注意的是该命令 ...

  8. RedHat系列软件管理(第二版) --源码包安装

    RedHat系列软件管理 --源码包安装 源码包特点: 拥有广泛的平台支持性,可以装在所有的类UNIX操作系统上,不用考虑CPU架构. 灵活性,可以在安装过程中指定特有的选项. 定制度非常高,可以自己 ...

  9. linux操作系统4 软件包管理

    知识内容: 1.软件包介绍 2.基本软件包安装 3.yum软件包管理 4.apt软件包管理 5.源码安装 一.软件包介绍 1.软件包分类 压缩包形式:类似.tar.gz结尾的文件(源码) rpm: r ...

随机推荐

  1. Android Studio实现APK的更新、下载、安装

    先不讲那么多看效果图: 下面来讲解一些更新CODE,原理大家都知道,不废话,直接上代码.里面有一些是我自己做的测试例子,所以大家可以直接删掉就好了 第一个:activity_main.xml < ...

  2. HTTP协议详解

    Author :Jeffrey 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展. ...

  3. MySQL中优化sql语句查询常用的30种方法

      1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使 ...

  4. python基础之运算符

    算术运算符 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 31 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -11 * 乘 - 两个数相乘或是返回一个被重复 ...

  5. ExpandableListView实现展开更多和收起更多

    [需求]: 如上面图示 当点开某个一级菜单的时候,其他菜单收起: 子级菜单默认最多5个: 多于5个的显示"展开更多" 点击"展开更多",展开该级所有子级菜单,同 ...

  6. Chocolat.js – 响应式的 jQuery Lightbox 插件

    Chocolat.js 使您能够显示一个或多个图像在同一页面上.给用户展示一组图片缩略图,可以显示全页或块.Chocolat.js 可以很好地处理所有主要的浏览器.它在下面这些浏览器测试通过:IE7+ ...

  7. 【webapp的优化整理】要做移动前端优化的朋友进来看看吧

    单页or多页 本文仅代表个人观点,不足请见谅,欢迎赐教. webapp 小钗从事单页相关的开发一年有余,期间无比的推崇webapp的网站模式,也整理了很多移动开发的知识点,但是现在回过头来看,weba ...

  8. Quartz2D简介

    Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作:

  9. ae GP制作缓冲区分析

    private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { // ...

  10. 破壳漏洞利用payload—shellshock in the wild

    FireEye关于破壳漏洞(shellshock)在现实中的利用有一篇文章: shellshock in the wild 原文较长,进行了对CGI利用的详细分析,笔者比较感兴趣的是Shellshoc ...