Linuxx指令进阶(3)

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 从指定文件中读入不想包含的文件的列表。

猜你喜欢

转载自blog.csdn.net/MK750/article/details/89449949