1、软件包管理简介

1.软件包分类

源码包

  • 脚本安装包

二进制包(RPM包、系统默认包)

2.源码包

源码包的优点是:

  • 开源,如果有足够的能力,可以修改源代码
  • 可以自由选择所需要的功能
  • 软件设计编译安装,所以更加适合自己的系统,更加稳定有效
  • 卸载方便

源码包的缺点:

  • 安装过程步骤较多,尤其是安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
  • 编译过程时间较长,安装比二进制安装时间长
  • 因为是编译安装,安装过程中一旦报错新手很难解决

3.RPM包

二进制包的优点:

  • 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
  • 安装速度比源码包安装快的多

二进制包缺点:

  • 经过编译,不再可以看到源代码
  • 功能选择不如源码包灵活
  • 依赖性

4.脚本安装包

所谓的脚本安装包,就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行程序脚本实现一键安装。但实际安装的还是源码包和二进制包。

优点:安装简单、快捷

缺点:完全丧失了自定义性

2、rpm命令管理

Red Hat Package Manager/RPM 红帽软件包管理器

RPM包命名规则

1.RPM包的来源

RPM包在系统光盘中

2.RPM包命名原则

httpd-2.2.15-15.el6.centos.1.i686.rpm

  • httpd 软件包名
  • 2.2.15 软件版本
  • 15 软件发布的次数
  • el6.centos 适合的Linux平台
  • i686 适合的硬件平台
  • rpm rpm扩展名

3.RPM包依赖性

树形依赖:a -> b -> c

环形依赖:a -> b -> c -> a

模块依赖:模块依赖,查询网站:www.rpmfind.net

安装命令

1.包全名与包名

包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径。

包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库。

2.RPM安装

rpm -ivh 包全名

选项:

  • -i(install) 安装
  • -v(verbose) 显示详细信息
  • -h(hash) 显示进度
  • --nodeps 不检测依赖性

升级与卸载

1、RPM包升级

rpm -Uvh 包全名

选项:

  • -U(upgrade) 升级

2.卸载

rpm -e 包名

选项:

  • -e(erase) 卸载
  • --nodeps 不检查依赖性

RPM包查询

1.查询是否安装

rpm -q 包名

# 查询包是否安装

  • -q 查询(query)

rpm -qa

# 查询所有已经安装的RPM包

  • -a 所有(all)

rpm -qa | grep httpd

2.查询软件包详细信息

rpm -qi 包名

选项:

  • -i 查询软件信息(information)
  • -p 查询未安装包信息(package)

3.查询包中文件安装位置

rpm -ql 包名

选项:

  • -l 列表(list)
  • -p 查询未安装包信息(package)

RPM包默认安装位置

RPM包默认安装路径
/etc/ 配置文件安装目录
/usr/bin 可执行的命令安装目录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc 基本软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置

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

rpm -qf 系统文件名

选项:

  • -f 查询系统文件属于哪个软件包(file)

5、查询软件包的依赖性

rpm -qR 包名

选项:

  • -R 查询软件包的依赖性(requires)
  • -p 查询未安装包信息(package)

RPM包校验

1、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)

2、RPM包中文件提取

rpm2cpio 包全名 | cpio -idv .文件绝对路径

  • rpm2cpio
    # 将rpm包转换为cpio格式的命令
  • cpio
    # 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件

[root@AmorLei ~]# cpio 选项 < [文件|设备]

选项:

  • -i :copy-in模式,还原
  • -d :还原时自动新建目录
  • -v :显示还原过程
rpm -qf /bin/ls
# 查询ls命令属于哪个软件包
mv /bin/ls /tmp/
# 造成ls命令误删除现象
rpm2cpio /mnt/cdrom/Package/coreutils-8.4-.el6.i686.rpm | cpio -idv ./bin/ls
# 提取RPM包中ls命令到当前目录的/bin/ls下
cp /root/bin/ls /bin/
# 把ls命令复制回/bin/目录,修复文件丢失

3、yum在线管理

RPM包缺点:安装过程中,rpm包的依赖性太强。如果所有rpm包都是手工安装,则rpm包使用难度较大。

yum优点:将所有包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。

yum缺点:Red Hat的yum在线安装需要付费

1.yum源文件

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

  • [base] 容器名称,一定要放在[]中
  • name 容器说明,可以自己随便写
  • mirrorlist 镜像站点,这个可以注释掉
  • baseurl 我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地址
  • enabled 此容器是否生效,如果不写或写成enable=1都生效,写成enable=0就是不生效
  • gpgcheck 如果是1是指RPM的数字证书生效,如果是0则不生效
  • gpgkey 数字证书的共钥文件保存位置。不用修改

2.光盘搭建yum源

1.挂载光盘

mkdir /mnt/cdrom
# 建立挂载点
mount /dev/cdrom /mnt/cdrom
# 挂载光盘

2.使网络yum源失效

cd /etc/yum.repos.d/
# 进入yum源目录
mv CentOS-Base.repo CentOS-Base.repo.bak
# 修改yum源文件后缀名,使其失效

3.使光盘yum源生效

vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever-Media
baseurl=file:///mnt/cdrom # 地址为你自己的光盘挂载地址
# file:///media/cdrom/
# file:///media/cdrecorder # 注释这两个不存在的地址
gpgcheck=
enabled= # 把enabled=0改为enabled=,让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

3.yum命令

1.常用yum命令

(1)查询

yum list
# 查询所有可用软件包列表
yum search 关键字
# 搜索服务器上所有和关键字相关的包

(2)安装

yum -y install 包名
选项:
- install 安装
- -y 自动回答yes
例如:yum -y install gcc

(3)升级

yum -y update 包名
选项:
- update 升级
- -y 自动回答yes

(4)卸载

yum -y remove 包名
选项:
- remove 卸载
- -y 自动回答yes

服务器使用最小化安装,用什么软件安装什么,尽量不卸载

2.yum软件组管理命令

yum grouplist
# 列出所有可用的软件组列表
yum groupinstall 软件组名
# 安装指定软件组,组名可以由grouplist查询出来
yum groupremove 软件组名
# 卸载指定软件组

4、源码包管理

1.源码包和RPM包的区别

区别

安装之前的区别:概念上的区别

安装之后的区别:安装位置不同

RPM包安装位置

是安装在默认位置中

rpm安装可以指定安装位置,但是不建议指定安装位置

[root@AmorLei ~]# rpm --help | grep prefix
--prefix=<dir> relocate the package to <dir>, if

源码包安装位置

安装在指定位置当中,一般是: /usr/local/软件名/

源码包没有卸载命令

安装位置不同带来的影响

RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是:

  • /etc/rc.d/init.d/httpd start
  • service httpd start(RedHat 专有方法)

源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理,如:

  • /usr/local/apache2/bin/apachectl start

2.源码包安装过程

1.安装准备

安装C语言编译器

下载源码包:使用httpd-2.2.34没有报错

http://mirror.bit.edu.cn/apache/httpd

2.安装注意事项

源代码保存位置:/usr/local/src/

软件安装位置:/usr/local/

如何确定安装过程报错:

安装过程停止 并出现error、warning或no的提示

3.源码包安装过程

下载源码包

解压缩下载的源码包

进入解压缩目录

  • /configure 软件配置与检查

    • 定义需要的功能选项。
    • 检测系统环境是否符合安装要求。
    • 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。
    • [root@AmorLei httpd-2.2.34]# ./configure --prefix=/usr/local/apache2
make 编译
make clean
make install 编译安装 /usr/local/apache2/bin/apachectl start

RPM包网页位置 /var/www/html/

源码包网页位置 /usr/local/apache2/htdocs/

4.源码包的卸载

不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件。

5、脚本安装

脚本安装的笔记将在之后进行更新!

Linux软件安装管理的更多相关文章

  1. Linux软件安装管理之——dpkg与apt-*详解 apt命令(dpkg和apt代替rpm)

    apt list *python* Nosee123关注赞赏支持   Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件 ...

  2. Linux软件安装管理之——dpkg与apt-*详解

    Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件安装管理之--源码安装详解> - -<Linux软件安装管 ...

  3. Linux软件安装管理---源码安装

    在Linux平台下,软件包的类型可以划分为两类:源码包.二进制包. 源码包: 即程序软件的源代码(一般也叫Tarball,即将软件的源码以tar打包后再压缩的资源包). 二进制包: 如 Red Hat ...

  4. Linux软件安装管理 - CentOS (二)

    1. 软件包管理简介 2. rpm命令管理(Redhat Package Manager) 3. yum在线安装 3.1 yum源文件 vi /etc/yum.repos.d/CentOS-Base. ...

  5. 2017.11.15 linux软件安装管理(todo)

    学习来自:http://www.imooc.com/learn/447 第一章 介绍 第二章 软件包简介 1.源码包 2.二进制包(RPM包或系统默认包) 脚本安装包其实是别人把软件安装的脚本写好了, ...

  6. Linux软件安装管理概述

    介绍如何在Linux字符界面下安装软件 课程大纲: 一.软件包管理简介 二.rpm命令管理 三.yum在线管理 四.源码包管理 五.脚本安装包

  7. Linux软件安装管理 - CentOS (三)

    1. 软件包管理简介 2. rpm命令管理(Redhat Package Manager) 3. yum在线安装 4. 源码包管理 4.1 源码包和RPM包的区别 4.1.1 区别 安装前:概念上的区 ...

  8. Linux软件安装管理 - CentOS

    ---恢复内容开始--- 1. 软件包管理简介 1.1 源码包 - 脚本安装包 1.2 二进制包(RPM包,系统默认包) - 依赖性 2. rpm命令管理(Redhat Package Manager ...

  9. 5.Linux 软件安装管理

    1.RPM包安装 (RPM会有依赖性,即安装这个包之前,需要安装某个包) 查询已安装的rpm 列表   rpm  -qa | grep  xx 安装rpm包 rpm  -ivh  rpm  包名 -i ...

随机推荐

  1. [转载]Web前端和后端之区分,以及面临的挑战【转】

    原文地址:Web前端和后端之区分,以及面临的挑战[转]作者:joyostyle 在我们实际的开发过程中,我们当前这样定位前端.后端开发人员. 1)前端开发人员:精通JS,能熟练应用JQuery,懂CS ...

  2. 24点游戏详细截图介绍以及原型、Alpha、Beta对比

    原型设计 图片展示 功能与界面设计 1.登录注册 2.手机号验证 3.24点游戏 4.粉色系女生界面 Alpha 图片展示 功能与界面设计 1.24点游戏 2.背景音乐 3.可查看多种可能的答案 4. ...

  3. 团队作业4——第一次项目冲刺(Alpha版本)2017.4.22

    昨天来不及编写,这是4月22日的日志,现在补上. 1.开完站立式会议后的合照 2.任务分解图 3.开会讨论的结果,任务分派 队员 今日进展 明日安排 陈鑫龙 原型设计图分析,设计登陆界面原稿 实现登陆 ...

  4. Java 第六周总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  5. 201521123055 《Java程序设计》第5周学习总结

    1. 本章学习总结 2. 书面作业 Q1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1. ...

  6. 201521123029《java程序设计》第2周学习总结

    1. 本周学习总结 (1)完成了课后习题,对所学知识进一步巩固. (2)学会了JAVA中的选择结构,循环结构,其中条件必须为布尔表达式,与C++非0即真不同. (3)学会java中的break和con ...

  7. vbs读取excel的一个实例

    功能:在excel中对ip与loginType这两列进行遍历读取.本程序依赖于excel文件的"sheet2"表单中具有这两列. dim dictTarget, objExcel ...

  8. 201521123034 《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前 ...

  9. 201521123035《Java程序设计》第十一周作业

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 本周对多线程的冲突是从多线程的冲突开始讲起,从而提出互斥共享与互斥访问.其中,互斥访问提到了synchronize ...

  10. Mybatis第九篇【基于Maven在Idea下Mybatis逆向工程】

    前言 在Intellij idea下,没有学习Maven的情况下使用Mybatis的逆向工程好像有点复杂,资料太少了-找到的资料好像也行不通- 于是学完Maven之后,我就再来更新Idea下使用Myb ...