1.16. Linux系统程序包管理

linux环境下有2种软件管理软件,分别是rpm和dpkg。

发行版代表

软件管理机制

使用命令

线上升级机制

Red Hat/Fedora

RPM

rpm,rpmbuild

yum

Debian/Ubuntu

DPKG

dpkg

apt-get

1.16.1. rpm包格式

样例: ftp-0.17-54.el6.x86_64.rpm

ftp             软件名称
0.17            软件版本
54              编译次数
el6             红帽企业6
x86_64          适合的硬件平台,有i386,i586,i686,x_86_6,noarch
.rpm            rpm的扩展名

1.16.2. rpm的优点

  1. rpm内部宝航已经编译过程序和配置等数据,可以让用户免去重新编译的困扰。

  2. rpm在被安装之前,会自动检查磁盘容量,操作系统环境,避免错误安装。

  3. rpm文件本身提供软件信息,依赖性软件,方便用户了解软件信息

  4. 便于升级、移除、查询和验证工作。

1.16.3. rpm包管理

1.16.3.1. 安装

安装相关的选项

-h

以#来表示安装的进度

-v

显示安装过程的详细信息

-vvv

更详细的信息

--test

不执行真正的安装,只是测试下

--nodeps

忽略依赖关系,可能安装成功,但是没法使用

--replacepkgs

覆盖安装

--force

强制安装

1.16.3.2. 升级

升级相关的选项

--oldpackage

降级到旧版本

-U

升级或者安装

-F

升级

1.16.3.3. 卸载

卸载相关的选项

-e

卸载

--allmatches

如果一个安装包安装多个版本,就都卸载

1.16.3.4. 查询

查询相关选项

-q

查询

-a

所有包

-f

查询文件有那个包安装的

-i

查询安装的包信息

-l

列出包安装提供的文件列表

-c

列出安装的配置文件

-d

列出安装的帮助文档信息

--changlog

列出版本变化信息

--provides

列出包提供的能力,能使用的命令

--requires

查询包依赖于那个包

--scripts

查询包安装前和安装后脚本,preinstall,preuninstall,postinstall,postuninstall

1.16.3.5. 校验

校验包使用-V选项

S size          文件大小被修改了
M mode          文件的类型或者属性被修改了。
5 md5           文件的指纹信息不同了
D device        文件的主设备号变了
L link          文件link路径变化了
U user          所有者变了
G group         所属组变了
T time          创建时间变了
P capabilities 提供能力变化

1.16.3.6. 额外选项

-K

验证包

--nosignature

不检查包来源合法性

--nodigest

不检查完整性

--initdb

初始化数据库

--rebuliddb

重建数据库

1.16.4. yum

yum是通过分析rpmde 标头信息,根据各个软件的依赖关系制作出有依赖关系的解决方案, 然后可以自动处理软件的依赖问题,以解决软件安装或移除与升级的问题。

1.16.4.1. yum的配置

yum的配置需要配置到/etc/yum.repo.d目录下,且以repo作为后缀。 主要片段

[repoid]        仓库名字,全局唯一的
name            仓库名字
url             仓库的地址,支持ftp,http,file三种协议
enabled         是否启用
gpgcheck        是否包校验
gpgkey          gpgkey文件路径
cost            代价,默认1000,越小越优先

yum命令

子命令

功能

样例

install

安装包

yum install tree

update

更新包

yum update tree

downgrade

降级

yum downgrade tree

check-update

检查那些升级可用

yum check-update

remove

移除包

yum remove tree

list

列出包

yum list all |grep tree

info

查看包详细信息

yum info tree

provides

查看包提供信息

yum provides tree

clean

清空特定缓存

yum clean all

makecache

制作缓存

yum makecache

groupinstall

包组安装

yum groupinstall ‘development tools’

grouplist

包组列表

yum grouplist ‘development tools’

groupremove

包组卸载

yum groupremvoe ‘development tools’

groupinfo

包组详细信息

yum groupinfo ‘development tools’

search

搜索相关包

yum search top

localinstall

本地安装

yum localinstall tree*.rpm

reinstall

重新安装包

yum reinstall tree -f

deplist

查看包依赖列表

yum deplist tree

repolist

查看仓库列表

yum repolist

history

安装历史

yum histrory

yum history 这个是个比较好用的工具,支持redo和undo的。

样例:

[root@centos-155 backup]# yum history
Loaded plugins: fastestmirror
ID     | Command line             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    39 | install mdadm            | 2018-02-10 17:34 | Install        |    2
    38 | install MariaDB-server M | 2018-02-08 18:55 | I, O           |    5 EE
    37 | remove mysql             | 2018-02-08 18:50 | Erase          |    2 EE
    36 | install mariadb-server   | 2018-02-06 15:38 | Install        |    4
    35 | install libsemanage-pyth | 2018-02-06 14:47 | Install        |    1
    34 | install libselinux-stati | 2018-02-06 14:45 | Install        |    4
    33 | install cifs-utils       | 2018-02-06 10:14 | Install        |    1
    32 | install samba-client     | 2018-02-06 09:39 | Install        |    3
    31 | install samba            | 2018-02-06 09:37 | Install        |   14
    30 | install nfs-utils        | 2018-02-04 18:18 | Install        |   16
    29 | install bind bind-utils  | 2018-01-21 03:10 | Install        |    1
    28 | remove bind              | 2018-01-21 01:42 | Erase          |    1 EE
    27 | install psmisc           | 2018-01-20 13:29 | Install        |    1
    26 | install wget             | 2018-01-20 11:12 | Install        |    1
    25 | remove Maria*            | 2018-01-20 10:59 | Erase          |    6 EE
    24 | install mariadb-server   | 2018-01-20 10:22 | Install        |    2
    23 | remove MariaDB-server Ma | 2018-01-20 09:47 | Erase          |    2
    22 | install MariaDB-server M | 2018-01-20 09:32 | I, O           |   10 EE
    21 | reinstall mariadb-server | 2018-01-19 16:53 | Reinstall      |    2
    20 | install mariadb-server   | 2018-01-19 16:51 | Install        |   10
history list
[root@centos-155 backup]# yum history undo 39

1.16.5. 源码编译安装

源码编译大概流程

  1. ./configure –help

  2. ./configure

  3. make && make install

  4. 添加bin目录到path环境变量

  5. 创建软连接到/usr/include下

  6. 在帮助文档配置文件安装的帮助man目录

  7. 额外文件的配置,比如服务文件,默认配置文件等。