RPM 软件包管理
Linux 软件包管理大致可分为二进制包、源码包,使用的工具也各不相同。Linux 常见软件包分为两种,分别是源代码包(Source Code)、二进制包(Binary Code),源代码包是没有经过编译的包,需要经过 GCC、C++编译器环境编译才能运行,二进制包无需编译,可以直接安装使用。通常而言,可以通过后缀简单区别源码包和二进制包,例如.tar.gz、.zip、.rar 结尾的包通常称之为源码包以.rpm 结尾的软件包称之为二进制包。真正区分是否为源码还是二进制还得基于代码里面的文件来判断,例如包含.h、.c、.cpp、.cc 等结尾的源码文件,称之为源码包,而代码代码里面存在 bin 目可以执行文件,称之为二进制包。CentOS 操作系统中有一款默认软件管理的工具,红帽包管理工具(Red HatPackageManager,RPM)。使用 RPM 工具可以对软件包实现快速安装、管理及维护。RPM 管理工具适用的操作系统包括:CentOS,RedHat,Fedora,SUSE 等,RPM 工具常用于管理.rpm 后缀结尾的软件包。RPM 软件包命令规则详解如下
RPM 包命名格式为:
name-version.rpm
name-version-noarch.rpm
name-version-arch.src.rpm
如下软件包格式:
epel-release-6-8.noarch.rpm
perl-Pod-Plainer-1.03-1.el6.noarch.rpm
yasm-1.2.0-4.el7.x86_64.rpm
RPM 包格式解析如下:
(name 软件名称,例如 yasm、perl-pod-Plainer
version 版本号,1.2.0 通用格式:“主版本号.次版本号.修正号”;4 表示是发布版本号,该 RPM 包是第几次编译生成的; arch 适用的硬件平台,RPM 支持的平台有:i386、i586、i686、x86_64、sparc、alpha 等。)
.rpm 后缀包表示编译好的二进制包,可用 rpm 命令直接安装;
.src.rpm 源代码包,源码编译生成.rpm 格式的 RPM 包方可使用;
el* 软件包发行版本,el6 表示该软件包适用于 RHEL 6.x/CentOS6.x;
devel: 开发包;
noarch: 软件包可以在任何平台上安装。
RPM 工具命令详解如下:
RPM 选项 PACKAGE_NAME
-a, --all 查询所有已安装软件包;
-q,–query 表示询问用户,输出信息;
-l, --list 打印软件包的列表;
-f, --file FILE 查询包含 FILE 的软件包;
-i, --info 显示软件包信息,包括名称,版本,描述;
-v, --verbose 打印输出详细信息;
-U, --upgrade 升级 RPM 软件包;
-h,–hash 软件安装,可以打印安装进度条;
–last 列出软件包时,以安装时间排序,最新的在上面;
-e, --erase 卸载 rpm 软件包
–force 表示强制,强制安装或者卸载;
–nodeps RPM 包不依赖
-l, --list 列出软件包中的文件;
–provides 列出软件包提供的特性;
-R,–requires 列出软件包依赖的其他软件包;
–scripts:列出软件包自定义的小程序
RPM 企业案例演示:
rpm -qhttpd 检查 httpd 包是否安装;
rpm -qlhttpd 查看软件安装的路径;
rpm -qihttpd 查看软件安装的版本信息;
rpm -ehttpd 卸载 httpd 软件;
rpm -e–nodeps httpd 强制卸载 httpd;
rpm-qa|grep httpd 检查 httpd 相关的软件包是否安装。
rpm -ivhhttpd-2.4.10-el7.x86_64.rpm 安装 httpd 软件包;
rpm -Uvhhttpd-2.4.10-el7.x86_64.rpm 升级 httpd 软件;
rpm-ivh --nodeps httpd-2.4.10-el7.x86_64.rpm 不依赖其他软件包;
YUM:自动化RPM包管理工具
前端软件包管理器(Yellow Updater Modified,YUM)适用于 CentOS、Fedora、RedHat及 SUSE 中的 Shell 命令行,主要用于管理 RPM 包,于 RPM 工具使用范围类似,YUM 工具能够从指定的服务器自动下载 RPM 包并且安装,还可以自动处理依赖性关系。使用 RPM 工具管理和安装软件时,会发现rpm 包有依赖,需要逐个手动下载安装,而YUM工具的最大便利就是可以自动安装所有依赖的软件包,从而提升效率,节省时间。学习 YUM,一定要理解 YUM 工作原理,YUM 正常运行,需要依赖两个部分,一是YUM源端,二是 YUM 客户端,也即用户使用端。
YUM工具命令详解如下
YUM 命令工具指南,YUM 格式为:
YUM [command] [package] -y|-q 其中的[options]是可选。-y 安装或者卸载出现 YES 时,自动确认 yes;-q 不显示安装的过程。
yum install httpd 安装 httpd 软件包;
yum search YUM 搜索软件包;
yum list httpd 显示指定程序包安装情况 httpd;
yum list 显示所有已安装及可安装的软件包;
yum remove httpd 删除程序包 httpd;
yum erase httpd 删除程序包 httpd;
yum update 内核升级或者软件更新;
yum update httpd 更新 httpd 软件;
yum check-update 检查可更新的程序;
yum info httpd 显示安装包信息 httpd;
yum provides 列出软件包提供哪些文件;
yum provides “*/rz” 列出 rz 命令由哪个软件包提供;
yum grouplist 查询可以用 groupinstall 安装的组名称;
yum groupinstall “Chinese Support” 安装中文支持;
yum groupremove “Chinese Support” 删除程序组 Chinese Support;
yum deplist httpd 查看程序 httpd 依赖情况;
yum clean packages 清除缓存目录下的软件包;
yum clean headers 清除缓存目录下的 headers;
yum clean all 清除缓存目录下的软件包及旧的 headers。
Tar 软件包管理
Linux 操作系统除了使用 RPM 管理工具对软件包管理之外,还可以通过 tar、zip、jar等工具进行源码包的管理,实现对文件的压缩解压。
Tar 命令参数详解
-A, --catenate,–concatenate 将存档与已有的存档合并
-c, --create 建立新的存档
-d, --diff,–compare 比较存档与当前文件的不同之处
–delete 从存档中删除
-r, --append 附加到存档结尾
-t, --list 列出存档中文件的目录
-u, --update 仅将较新的文件附加到存档中
-x, --extract,–get 解压文件
-j, --bzip2,–bunzip2 有 bz2 属性的软件包;
-z, --gzip,–ungzip 有 gz 属性的软件包;
-b, --block-size N 指定块大小为 Nx512 字节(缺省时 N=20);
-B,–read-full-blocks 读取时重组块;
-C, --directory DIR指定新的目录;
–checkpoint 读取存档时显示目录名;
-f, --file [HOSTNAME:]F指定存档或设备,后接文件名称;
–force-local 强制使用本地存档,即使存在克隆;
-G, --incremental 建立老 GNU 格式的备份;
-g,–listed-incremental 建立新 GNU 格式的备份;
-h, --dereference 不转储动态链接,转储动态链接指向的文件;
-i, --ignore-zeros 忽略存档中的 0 字节块(通常意味着文件结束);
–ignore-failed-read在不可读文件中作 0 标记后再退出;
-k, --keep-old-files保存现有文件;从存档中展开时不进行覆盖;
-K, --starting-fileF 从存档文件 F 开始;
-l,–one-file-system 在本地文件系统中创建存档;
-L, --tape-length N在写入 N*1024 个字节后暂停,等待更换磁盘;
-m,–modification-time 当从一个档案中恢复文件时,不使用新的时间标签
-M, --multi-volume 建立多卷存档,以便在几个磁盘中存放;
-O, --to-stdout 将文件展开到标准输出;
-P,–absolute-paths 不要从文件名中去除 ‘/’;
-v, --verbose 详细显示处理的文件;
–version 显示 tar 程序的版本号;
–exclude FILE 不把指定文件包含在内;
-X, --exclude-fromFILE 从指定文件中读入不想包含的文件的列表。