Linux笔记—软件包管理

文章目录

软件包管理简介

软件包分类(WINDOWS包不能用于LINUX)

  • 源码包(脚本安装包) 开源 绝大多数都是C语言写的
  • 二进制包(RPM包、系统默认包) 源代码包经过编译后的机器语言包,二进制包不能看到源代码,但其能够加快安装速度,省略编译过程
  • redhat和debian版本的主要区别主要是使用的二进制包不同

源码包优点

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

源码包缺点

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

二进制包优点

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

二进制包缺点

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

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(装a要求b,装b要求c)
  • 环形依赖: a->b->c->a (解决方法:用一条命令同时装)
  • 模块依赖: 模块依赖查询网站:www.rpmfind.net
  • 十分繁琐,而且靠猜

安装升级与卸载

包全名与包名

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

RPM安装 rpm -ivh 包全名

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

RPM升级 rpm -Uvh 包全名

  • -U 升级

RPM卸载 rpm -e 包名

  • -e 卸载
  • –nodeps 不检查依赖性

查询

查询是否安装 rpm -q 包名

  • -q 查询
  • -a 所有(查询所有已经安装的RPM包)

查询软件包详细信息 rpm -qi 包名

  • -i 查询软件信息
  • -p 查询未安装包信息

查询包中文件安装位置 rpm -ql 包名

  • -l 列表
  • -p 查询未安装包信息

查询系统文件属于哪个RPM包 rpm -qf 系统文件名

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

查询软件包的依赖性 rpm -qR 包名

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

校验(判断系统文件是否受到更改)

rpm -V 已安装的包名

  • -V 校验指定RPM包中的文件
  • 没有提示信息则表示没有经过修改

验证内容中的信息具体内容

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

文件类型

  • c 配置文件
  • d 普通文档
  • g 鬼文件
  • l 授权文件
  • r 描述文件

RPM包中文件提取(常用于误删除后的恢复)

  • pm2cpio 包全名 |\ cpio -idv .文件绝对路径(\代表命令没有输完,换行)

  • rpm2cpio - 将rpm包转换为cpio格式的命令

  • cpio 是一个标准工具,用于创建软件档案文件和从档案文件中提取文件

  • -i copy-in模式,还原

  • -d

yum在线管理

IP地址配置和网络yum源

网络yum源 vi /etc/yum.repos.d/CentOS-Base.repo

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

yum命令

查询

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

安装 yum - y install 包名

  • install - 安装
  • -y - 自动回答yes

升级 yum -y update 包名

  • update - 升级
  • -y - 自动回答yes
  • 不加包名则升级所有软件包(包括Linux内核)
  • 慎重使用

卸载 yum -y remove 包名

  • remove - 卸载
  • -y - 自动回答yes
  • 会自动卸载所依赖的包
  • 尽量不卸载,特别是使用yum卸载
  • 用什么装什么

yum软件组管理命令

yum grouplist # 列出所有可用的软件组列表

yum groupinstall 软件组名 # 安装指定软件组,组名可以由grouplist查询出来

  • 如果软件组名有空格,则需要用双引号

yum groupremove 软件组名 # 卸载指定软件组

光盘yum源搭建

挂载光盘

  • mount /dev/cdrom /mnt/cdrom/

让网络yum源文件失效

  • 只让CentOS-Media.repo生效
  • 更改其他所有的repo文件的enable=0
  • 或者把其他的所有repo文件的后缀名都改掉,让其不是repo文件,它就不再起作用

源码包管理

源码包和RPM包的区别(安装之前的区别:概念上的区别;安装之后的区别:安装位置不同)

RPM包安装在默认位置中

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

源码包安装在指定位置中

  • 一般是/usr/local/软件名/

安装位置不同带来的影响

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

源码包安装过程

安装准备

  • 安装C语言编译器gcc
  • 下载源码包

安装注意事项

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

安装过程

  • 下载源码包

  • 解压缩下载的源码包

  • 进入解压缩目录

  • ./configure 软件配置与检查(–prefix = 前缀)

    • 定义需要的功能选项
    • 检测系统环境是否符合安装要求
    • 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑
  • make 编译

  • make install 编译安装

卸载

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

脚本安装包

简介

  • 脚本安装包并不是独立的软件包类型,常见安装的是源码包
  • 是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装。
  • 非常类似于Windows下软件的安装方式

Webwin的作用

  • Webwin是一个基于Web的Linux系统管理界面。可以通过图形化的方式设置用户账号,Apache、DNS、文件共享等服务
发布了59 篇原创文章 · 获赞 3 · 访问量 1750

猜你喜欢

转载自blog.csdn.net/Felix_hyfy/article/details/104332387