软件包管理

207 阅读5分钟

软件包分类

源码包:(脚本安装包)

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

RPM包命名原则

httpd-2.2.15-15.e16.centos.1686.rpm

  • httpd 软件包名

  • 2.2.15 软件版本

  • 15 软件发布的次数

  • e16.centos 适合的Linux平台

  • i686 适合的硬件平台

  • rpm rpm包扩展名

RPM包依赖性

RPM安装

rpm -ivh 包全名

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

RPM包升级

rpm -Uvh 包全名

  • U(upgrade) 升级

rpm -e 包名

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

查询是否安装

rpm -q 包名

  • -q 查询(query)

rpm -qa

  • -a所有(all)

查询软件包详细信息

rpm -qi 包名

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

查询包中文件安装位置

rpm -ql 包名

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

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

rpm -qf 系统文件名

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

查询软件包的依赖性

rpm -qR 包名

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

RPM包的校验

rpm -V 已安装的包名

  • -V 校验指定RPM包中的文件

验证内容中的8个信息的具体内容:

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

文件类型:

  • c配置文件
  • d普通文档
  • g该文件不应该被在这个RPM包包含
  • L授权文件
  • r描述文件

RPM包中文件提取

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

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

cpio 选项 < [文件|设备]

  • -i:copy-in模式,还原
  • -d:还原时自动新建目录
  • -v:显示还原过程

yum在线管理

IP地址配置和网络yum源

IP地址配置:

  1. setup配置
  2. vi /etc/sysconfig/network-scripts/ifcfg-etho 把ONBOOT="no"该为yes
  3. vi /etc/yum.repos.d/CentOS-Base.repo
    1. [base] 容器名称,一定要放在[]中
    2. name容器说明,可以自己随便写
    3. mirrorlist镜像站点,可以注释掉
    4. baseurl yum源服务器的地址,默认时centos官方的yum源服务器,可以更改
    5. enabled 容器是否生效,如果不懈或携程enable=1都是生效,携程enable=0就是不生效
    6. gpgcheck 如果时1是指RPM的数字证书生效,如果是0则不生效
    7. gpgkey 数字证书的公钥巍峨年保存位置,不用修改

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 软件组名 卸载指定软件组

光盘yum源搭建

光盘yum源搭建步骤

  1. 挂载光盘 mount/dev/cdrom /mnt/cdrom/
  2. 让网络yum源文件失效(让CentOS-Media.repo生效)
    1. cd /etc/yum.repos.d/
    2. mv CentOS-Base.repo CentOS-Base.repo.bak
    3. mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
    4. mv CentOS-Vault.repo CentOS-Vault.repo.bak
  3. 修改光盘yum源文件 vim CentOS-Media.repo
    1. [c6-media]
    2. name=CentOS-$releasever-Media
    3. baseurl=file:///mnt/cdrom
    4. 注释这2个不存在的地址
      1. file:///media/cdrom
      2. file:///media/cdrecorder
    5. gpgcheck=1
    6. enabled=1
    7. 把enabled=0改为enabled=1,让在这个yum源配置文件生效
    8. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

源码包和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

源码包安装的服务则不能被服务管理命令管理,因为i没有装到默认路径中

/usr/local/apache2/bin/apachectl start

源码包安装过程

  1. 下载源码包
    1. 源代码保存位置:/usr/local/src/
    2. 软件安装位置:/usr/local
  2. 解压缩下载的源码包
    1. tar -zxvf 压缩包
    2. du -sh 目录 查看大小
  3. 进入解压缩目录
    1. cd 目录
  4. 软件配置与检查 ./configure
    1. 定义需要的功能选项
      1. ./configure --prefix = /usr/local/apache2
    2. 检测系统环境是否符合安装要求
    3. 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑.
  5. make 编译
    1. 调用gcc,将apache从源码包翻译成机器语言
      1. 如果有问题可以执行make clean完全清空编译产生的临时文件
  6. make install
    1. 向文件中写入数据
  7. 启动命令
    1. /usr/local/apache2/bin/apachectl start
  8. 删除
    1. rm -rf /usr/local/apache2/ 直接删除该安装目录即可

脚本安装包

常见于源码包,人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装.

Webmin,图形化的方式设置用户账号,Apache,DNS,文件共享等服务.