文章目录
  1. 1. Linux软件包分类
  2. 2. RPM命令管理
  3. 3. yum在线安装
  4. 4. 源码包安装
  5. 5. 脚本安装包
  6. 6. 藏在最后

Linux软件包分类

  • 源码包
    • 优点 :
      • 开源;有能力可以自己修改源代码
      • 可以自由选择所需的功能
      • 软件为编译安装;更适合自己的系统,更稳定高效
      • 卸载方便!!!
    • 缺点 :
      • 安装步骤较多;在安装较大的软件集合时,容易出现拼写错误
      • 编译过程时间较长,安装比二进制安装时间长
      • 安装过程中要是报错了..就对我们这样的智障十分不友好
  • 二进制包(RPM包)
    • 优点 :
      • 包管理系统简单,只需要几个命名就可以实现包的安装、升级、查询、卸载
      • 安装速度比源码包安装快得多
    • 缺点 :
      • 经过编译,不再能够看到源码
      • 功能选择不如源码包灵活
      • 依赖性强
  • 脚本安装包
    就是把复杂的安装过程写成了一个脚本,初学者可以通过执行脚本实现一键安装;但实际安装的还是源码包或二进制包
    • 优点 :
      • 安装简单、快捷
    • 缺点 :
      • 完全丧失了自定义性

RPM命令管理

  • RPM包在哪里?
    • 在系统光盘中的Packages包下啦!
    • 要怎么进入看到呢?
      • 首先把光盘挂载过来 :
      • 然后进入这个挂载点,再进入Packages包 :
      • ls一下就会看见所有的RPM包啦 :
  • RPM包命名规则
    • 以 httpd-2.2.15-15.el6.centos.1.i686.rpm 为例
      • httpd 软件包名
      • 2.2.15 软件版本
      • 15 软件发布的次数
      • el6.centos 适合的Linux平台
      • i686 适合的硬件平台
      • rpm rpm包的扩展名
  • RPM包的依赖性
    • 树形依赖 :a -> b -> c
    • 解决方案 :先装 c 再装 b 再装 a
    • 环形依赖 :a -> b -> c -> a
    • 解决方案 :把这几个包同时装上
    • 模块依赖 :依赖一个文件(一般以 so.数字 结尾)
    • 解决方案 :把这个文件所在的包装上先
    • 注 :可在 www.rpmfind.net 中进行查询
  • 包全名与包名
    • 包全名 :
      • 在操作的包是没有安装的软件包时使用
      • 且需要注意路径(使用绝对路径或进入Packages)
    • 包名 :
      • 在操作的是已经安装的软件包时使用
      • 注 :本质是搜索 /var/lib/rpm/ 中的数据库
      • 所以一般不需要特别注意路径
  • RPM包的安装
    • 基本格式 :rpm -ivh 包全名
    • 选项 :
      • -i install 安装
      • -v verbose 显示详细信息
      • -h hash 显示进度
      • –nodeps 不检测依赖性
    • 注意 :但–nodeps不推荐使用
    • 让我们走个流程看一下 :
    • 首先来装一个Apache –> 先让它自动补一下
    • 一般会先装第一个,也就是主安装包 :
    • 但是没装上..为什么呢?差依赖 –>
      那就先装它的依赖包试试 :
    • 但是还是没装上..还差依赖 –>
      注意 apr-util = 其实指的就是它的版本号
    • 再装 –> 还是没装上 –>
      这次差的是依赖文件 –> 那就装它所在的安装包
    • 假装查过之后..好!终于装上了!
    • 然鹅这只是装上了最底层的一个依赖包而已..
      让我们再一层一层装回去 :
    • 最后是Apache的主安装包!
    • 所以说它为什么叕报错了呢..因为刚刚只装好了一条线上的依赖鸭..还有另N条线 嘤!让我们再试一次 :
    • 然后就成功啦!成功装上了Apache..的主安装包 –>
      也就是说,还有不主的安装包要装..那就装叭 嘤 :

    • 好了,最后还剩一个httpd-devel,听说它有八个依赖包..就..就不装了嘤 QAQ 等着后面讲到yum再装叭 嗷呜
  • RPM包的升级
    • 基本格式 :rpm -Uvh 包全名
    • 选项 :
      • -U update 升级
    • 注意 :
      • 后面跟的是包全名不是包名
      • 其实也能当安装命令用
      • 但没啥事还是分开用了啦
  • RPM包的卸载
    • 基本格式 :rpm -e 包名
    • 选项 :
      • -e erase 卸载
      • –nodeps 不检查依赖性
    • 注意 :
      • 实际是去 /var/lib/rpm/ 中寻找对应安装包
      • 所以用包名就可以了,并且不用太在意路径
      • 要按与安装相反的依赖顺序卸载 嗷呜
      • 所以 –nnodeps 依旧不推荐使用
  • RPM包的查询
    • 查询是否安装 :
      • 基本格式 :rpm -q 包名
      • 选项 :-q query 查询
      • 如果是已经装过的 :
      • 如果是没有装过的 :
    • 查询所有已经安装的RPM包 :
      • 基本格式 :rpm -qa
      • 选项 :-a all 所有的
      • 比如这样 :
    • 通过管道符查询相关包 :
      • 比如 rpm -qa | grep httpd
      • 就会为你查询到所有包含httpd的RPM包 :
    • 查询已安装的软件包的详细信息 :
      • 基本格式 :rpm -qi 包名
      • 选项 :-i information 查询软件信息
      • 比如这样 :
    • 查询未安装的软件包的详细信息 :
      • 基本格式 :rpm -qip 包全名
      • 选项 :-p package 未安装的软件包
      • 比如这样(注意得是在目录下才行哦):
    • 查询软件包中的文件安装位置 :
      • 基本格式 :rpm -ql(p) 包名(包全名)
      • 选项 :-l list 列表
      • 比如这样 :
      • 附一张传说中RPM包一般默认安装位置的图 :
    • 查询系统文件属于哪个RPM包 :
      • 基本格式 :rpm -qf 系统文件名
      • 选项 :-f file 查询文件属于哪个RPM包
      • 比如这样 :
      • 当然如果这个文件不是通过RPM包装上的..
    • 查询软件包的依赖性 :
      • rpm -qR(p) 包名(包全名)
      • 选项 :-R requires 依赖性
      • 但它其实并没有什么实际用处,因为..
  • RPM包的校验
    • 基本格式 :rpm -V 已安装的包名
    • 选项 :
      • -V verify 校验
    • 比如这样 :–> 但是会发现并没有什么动静
    • 但如果我们在httpd某个文件中加一行注释..
    • 就会发现有变化了!
    • 那么验证内容中的八个信息具体指什么呢?
      • S 文件大小是否改变
      • M 文件类型或权限是否改变
      • 5 文件内容是否改变
      • D 设备的主从代码是否改变
      • L 文件路径是否改变
      • U 文件所有者是否改变
      • G 文件的属组是否改变
      • T 文件的修改时间是否改变
    • 那后面那个c又是指什么呢?
      • c config file 配置文件
      • d documentation 普通文档
      • g ghost file 幽灵文件(就是指这个文件不应该被这个RPM包包含,也就是嗦!你该检查一下系统有没有粗什么事啦)
      • L license file 授权文件
      • r readme 描述文件
  • RPM包中文件提取
    • 基本格式 :
      • rpm2cpio 包全名 | cpio -idv .文件绝对路径
    • 选项 :
      • -rpm2cpio 将rpm包转换为cpio格式的命令
      • -cpio 这是一个标准工具,用来创建软件档案文件和从档案文件中提取文件的
    • 用途 :
      • 用于不小心删了什么系统文件然后从它的rpm包中把这个文件再提取出来以防止系统崩溃什么的
      • 其实也可以直接把这个RPM包再装一遍
      • 其实我并看不太懂 但是还是要记一下 不能懒不能懒

yum在线安装

  • yum源文件
    • 让我们来看看系统默认的yum源文件放在哪 :
    • 默认是第一个生效,让我们vi一下进去看看 :
    • 那所以这里面写了点啥?哎算了还是截个图叭
  • 光盘搭建本地yum源
    • 挂载光盘 :
      • mkdir /mnt/cdrom
      • mount /dev/sr0 /mnt/cdrom/
    • 使网络yum源生效(即使第一个失效,使第三个生效):
      • 首先进入yum源目录 :
      • 然后修改yum源文件的后缀名,使其失效 :
      • 然后进入第三个文件,修改一下使其生效 :
      • 最后再验证一下 –>
        输入 yum list,如果看见一堆c6-media,就说明成功啦 :
    • 常用的yum命令
    • 查询所有可用软件包列表 :
      • 基本格式 :yum list
      • 比如说上面那样 :
    • 搜索服务器上素有和关键字相关的包 :
      • 基本格式 :yum search 关键字
      • 比如说这样 :
    • 安装(没有包全名也没有路径要求啦!快乐!) :
      • 基本格式 :yum -y install 包名
      • 选项 :-y 自动回答yes
      • 比如说把上次没装完的Apache-devel装上 :
      • 回车然后只需要等一会..啊简直不要太快乐 :
    • 升级 :
      • 基本格式 :yum -y update 包名
      • 当然你必须得有个更高版本的包
      • and据说没啥事不要瞎升级
      • 所以这里就不举栗子啦 嗷呜~
    • 卸载 :
      • 基本格式 :yum -y remove 包名
      • 同样,没啥事不要瞎卸载,尤其不要用yum卸
      • 因为卸载的时候也是有依赖性的啦
      • rpm还会确定一下,yum问都不问直接就帮你卸了
    • yum软件组管理命令
    • 列出所有可用的软件组列表 :
      • 基本格式 :yum grouplist
      • 比如这样 :
      • 但是有个问题 :查的时候查出来中文很开心,但你装的时候不能输中文装鸭!怎么办呢!
      • 这个时候就可以把系统语系改成英文啦 :
      • 然后等安装完了再改回来就好,比如这样 :
    • 安装软件组 :
      • 基本格式 :yum groupinstall 软件组名
    • 卸载指定软件组 :
      • 基本格式 :yum groupremove 软件组名

源码包安装

  • 源码包和RPM包的区别
    • 安装之前 :概念上的区别
      • 详见..前面的 嘻嘻
    • 安装之后 :安装位置不同
      • RPM包 :一般让它保持默认安装
      • 源码包 :需要手动指定安装位置
    • 注意注意 :
      • 源码包是没有卸载命令的
      • 所以一定要手动指定位置
      • 一般放在 /usr/local/软件名/ 下
      • 不然它会像RPM一样装的到处都是
      • 你要删还得一个包一个包找着删
  • 源码包的(云)安装
    • 因为没WiFi了所以不装了 心疼流量嘤嘤嘤
    • 下面是源码包的云安装时间 :
    • 安装注意事项 :
      • 源代码保存位置 :/usr/local/src/
      • 软件安装位置 :/usr/local/
      • 如何确定安装过程报错 :
        • 安装过程停止
        • 并出现error/warning/no等提示
    • 源码包的安装过程 :
      • 下载源码包
      • 解压缩下载的源码包
      • 进入解压缩目录
      • ./configure 软件配置与检查 :
        • 定义需要的功能选项
        • 检测系统环境是否符合安装要求
        • 将上述信息写入Makefile文件
        • 注意一定要加上下面这个功能 :
        • ./configure –prefix=路径
        • 用来指定安装位置
      • 然后 :make 编译
        • 万一报错怎么办呢?像这样 :
        • make clean 清除刚刚编译的文件
      • 最后 :make install 安装

脚本安装包

实际上还是源码包和RPM包

  • 接下来依然是(云)安装时间
    • 算了这次连云都不想云了 嘤

藏在最后

  • 好我们的软件安装管理到此结束(呸)
  • 虽然好像仿佛还是啥也不会???
  • 嗷呜~说好不偷懒结果又摸了
  • 算了算了以后要用到就滚回来再过一遍叭
文章目录
  1. 1. Linux软件包分类
  2. 2. RPM命令管理
  3. 3. yum在线安装
  4. 4. 源码包安装
  5. 5. 脚本安装包
  6. 6. 藏在最后