Linux学习笔记 一 第五章 软件包管理

目录--点击可快速直达

一、软件包管理简介

1. 软件包分类

  • 源码包 -> 也可以是脚本安装包
  • 二进制包(RPM包、系统默认包)

(1) 源码包

源码包的优点是:

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

源码包的缺点是:

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

(2) RPM包

二进制包的优点是:

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

二进制包的缺点是:

  • 经过编译不能看到源代码
  • 功能选择不如源码灵活
  • 依赖性复杂

二、RPM包管理 - rpm命令管理

1. RPM包命名原则

例如: httpd-2.2.15-15.el6.centos.1.i686.rpm ,含义如下:

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

2. RPM包依赖性

  • 树形依赖: a -> b -> c
  • 环形依赖: a -> b -> c -> a
  • 模块依赖: 模块依赖查询网站 -> www.rpmfind.net

3. 包名与包全名

  • 包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径。
  • 包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据

4. RPM安装

rpm -ivh 包全名
选项:
    -i (install) 安装
    -v (verbose) 详细信息
    -h (hash) 显示进度
    -nodeps 不检测依赖性

5. RPM包升级

rpm -Uvh 包全名
选项:
    -U (Upgrade) 升级

6. RPM卸载

rpm -ivh 包名
选项:
    -e (erase) 卸载
    -nodeps 不检测依赖性

7. 查询是否安装

rpm -q 包名
选项:
-q     (query) 查询
-qa     查询所有已经安装的包
-i     (information) 查询软件信息
-p     (package) 查询未安装包信息
-l     (list) 列表
-f     (file) 查询系统文件属于哪个软件包
-R     (requires) 查询软件包的依赖性

7. RPM包校验

rpm -V 包名
验证内容中的8个信息的具体内容如下:

  • S   文件大小是否改变
  • M   文件的类型或文件的权限(rwx)是否被改变
  • 5   文件MD5校验和是否改变(可以看出文件内容是否改变)
  • D   设备的中,从代码是否改变
  • L   文件路径是否改变
  • U   文件的所有者是否改变
  • G   文件的所属组是否改变
  • T   文件的修改时间是否改变

三、RPM包管理 - yum命令管理

1. IP地址配置

  • setup #使用setup工具(centos 独有的工具)
  • vi /etc/sysconfig/network-scripts/ifcfg-eth0 #将ONBOOT="no" 改为 "yes" 然后service network restart 重启网络服务

2. 网络yum源

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

3. 常用yum命令

查询

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

安装

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

升级

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

卸载

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

yum常用组命令

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

三、RPM包管理 - 光盘yum源搭建步骤

1.挂载光盘

mount /dev/cdrom /mnt/cdrom

2.让网络yum失效
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-Valut.repo CentOS-Valut.repo.bak

3.修改光盘yum原文件

vim CentOS-Media.repo

baseurl=file:///mnt/cdrom
#地址为你自己的光盘挂载地址
#file:///media/cdrom/
#file:///media/cdrecorder/
#注释这两个不存在的地址
gpgcheck=1
enable=1
#enable=0 改为 enable=1 让这个yum源配置文件生效

四、源码包管理

1.源码包和RPM包的区别

  • 安装之前的区别:概念上的不同。
  • 安装之后的区别:安装位置不同。

2.RPM包安装位置
是安装在默认位置中

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

3.源码包安装位置

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

4.安装位置不同带来的影响

  • RPM包安装的服务可以使用系统管理命令(service)来管理,例如RPM包安装的apache的启动方法是:
    /etc/rc.d/init.d/httpd start
    service httpd start
  • 而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理。例如:
    /usr/local/apach2/bin/apachectl start

五、源码包安装过程

1.安装准备

  • 安装c语言编译器
  • 下载apach的源码包:http:mirror.bit.edu.cn/apache/httpd/

2.安装注意事项

  • 源代码保存位置:/usr/local/src/
  • 软件安装位置:/usr/local/
  • 如何确定安装过程报错:
  • 安装过程停止,并出现error、warning或no的提示

3.源码包安装过程

  • 下载源码包
  • 解压缩下载的源码包
  • 进入解压缩目录
  • ./configure 软件配置与检查
  • 定义需要的功能选项
  • 检测系统环境是否符合安装要求
  • 把定义好的功能选项和检测系统环境的信息都写入makefile文件,用于后续的编辑。
  • make #编译
  • make clean #清除上一次编译产生的文件。
  • make install #编译安装

3.源码包的卸载

  • 不需要卸载命令,直接删除安装目录即可,不会遗留任何的垃圾文件。
posted @ 2020-08-31 18:50  洛神殇  阅读(239)  评论(0编辑  收藏  举报