yum自动化安装、压缩、解压详解

YUM:自动化RPM包管理工具

前端软件包管理器(Yellow Updater Modified,YUM)适用于 CentOS、Fedora、RedHat及 SUSE 中的 Shell 命令行,主要用于管理 RPM 包,与 RPM 工具使用范围类似,YUM 工具能够从指定的服务器自动下载 RPM 包并且安装,还可以自动处理依赖性关系。
使用 RPM 工具管理和安装软件时,会发现 rpm 包有依赖,需要逐个手动下载安装,而YUM 工具的最大便利就是可以自动安装所有依赖的软件包,从而提升效率,节省时间。

1、YUM 工作原理:

学习 YUM,一定要理解 YUM 工作原理,YUM 正常运行,需要依赖两个部分,一是
YUM 源端,二是 YUM 客户端,也即用户使用端。
YUM 客户端安装的所有 RPM 包都是来自 YUM 服务端,YUM 源端通过 HTTP 或者 FTP服务器发布。而 YUM 客户端能够从 YUM 源端下载依赖的 RPM 包是由于在 YUM 源端生成了 RPM 包的基准信息,包括 RPM 包版本号、配置文件、二进制信息、依赖关系等。
YUM 客户端需要安装软件或者搜索软件,会查找/etc/yum.repos.d 下以.repo 结尾文件,CentOS Linux 默认的.repo 文件名为 CentOS-Base.repo,该文件中配置了 YUM 源端的镜像地址,所以每次安装、升级 RPM 包,YUM 客户端均会查找.repo 文件。YUM 客户端如果配置了 CentOS 官方 repo 源,客户端操作系统必须能联外网,满足网络条件,才能下载软件并安装,如果没有网络,也可以构建光盘源或者内部 YUM 源。在只要 YUM 客户端时,YUM 客户端安装软件,默认会把 YUM 源地址、Header 信息、软件包、数据库信息、缓存文件存储在/var/cache/yum 中,每次使用 YUM 工具,YUM 优先通过 Cache查找相关软件包,Cache 中不存在,然后在访问外网 YUM 源

2、YUM 企业案例演练

由于 YUM 工具的使用简便、快捷、高效,在企业中得到广泛的使用,得到众多 IT 运
维、程序人员的青睐,要能熟练使用 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 tree内核升级或者软件更新;
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。

案例:
(1)基于 CentOS 7 Linux,执行命令 yum install httpd -y,安装 httpd 服务
yum自动化安装、压缩、解压详解_第1张图片
(2)执行命令 yum grouplist,检查 groupinstall 的软件组名
yum自动化安装、压缩、解压详解_第2张图片
(3)执行命令 yum groupinstall “GNOME Desktop” -y,安装 Linux 图像界面
yum自动化安装、压缩、解压详解_第3张图片
(4)执行命令 yum install httpd php php-devel php-mysql mariadb mariadb-server -y,安装中小企业 LAMP 架构环境
yum自动化安装、压缩、解压详解_第4张图片
(5)执行命令 yum remove ntpdate -y,卸载 ntpdate 软件包
yum自动化安装、压缩、解压详解_第5张图片
(6)执行命令 yum provides rz 或者 yum provides “*/rz”,查找 rz 命令的提供者
yum自动化安装、压缩、解压详解_第6张图片
(7)执行命令 yum update -y,升级 Linux 所有可更新的软件包或 Linux 内核升级
yum自动化安装、压缩、解压详解_第7张图片
**

3、Yum总结

**
以上使用yum软件安装的rpm软件包是来源于YUM 服务端,国内比较好用的几个yum源为网易(163)yum源,中科大和阿里云,要想使用这些yum源,需要在系统中配置,当然centos官方yum源也很好用,至于如何配置其它源,可以查看网上资料
除了用服务端的yum源,自己也可以把yum源的镜像下载到本地,那以后安装一些常用的软件就不需要联网了,
4、Tar 软件包管理
Linux 操作系统除了使用 RPM 管理工具对软件包管理之外,还可以通过 tar、zip、jar
等工具进行源码包的管理,实现对文件的压缩解压
4.1、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-file F 从存档文件 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-from FILE 从指定文件中读入不想包含的文件的列表。

4、Tar企业案例演示

tar  -cvf  jfedu.tar.gz  jfedu  打包 jfedu 文件或者目录,打包后名称jfedu.tar.gz;

tar -tf jfedu.tar.gz 查看 jfedu.tar.gz 包中内容;
tar -rf jfedu.tar.gz jfedu.txt 将 jfedu.txt 文件追加到 jfedu.tar.gz 中
tar -xvf jfedu.tar.gz 解压 jfedu.tar.gz 程序包;
tar -czvf jfedu.tar.gz jfedu 使用 gzip 格式打包并压缩 jfedu 目录;
tar -cjvf jfedu.tar.bz2 jfedu 使用 bzip2 格式打包并压缩 jfedu 目录;
tar -czf jfedu.tar.gz * -X list.txt 使用gzip格式打包并压当前目录所有文件,排除 list.txt中记录的文件;
tar -czf jfedu.tar.gz * --exclude=zabbix-3.2.4.tar.gz --exclude=nginx-1.12.0.tar.gz
使 用 gzip 格 式 打 包 并 压 当 前 目 录 所 有 文 件 及 目 录 , 排 除 zabbix-3.2.4.tar.gz 和nginx-1.12.0.tar.gz 软件包

5、TAR 实现 Linux 操作系统备份

Tar 命令工具除了用于日常打包、解压源码包或者压缩包之外,最大的亮点是还可以用于 Linux 操作系统文件及目录的备份,使用 tar -g 可以基于 GNU 格式的增量备份,备份原
理是基于检查目录或者文件的 atime、mtime、ctime 属性是否被修改。文件及目录时间属性
详解如下:
 文件被访问的时间(Access time,atime);
 文件内容被改变的时间(Modified time,mtime);
 文件写入、权限更改的时间(Change time,ctime)。
总结,更改文件内容 mtime 和 ctime 都会改变,但 ctime 可以在 mtime 未发生变化时被更改,例如修改文件权限,文件 mtime 时间不变,而 ctime 时间改变。TAR 增量备份案例演示步骤如下
(1)/root 目录创建 jingfeng 文件夹,同时在 jingfeng 文件夹中,新建 jf1.txt,jf2.txt 文件,如图
yum自动化安装、压缩、解压详解_第8张图片
(2)使用 tar 命令第一次完整备份 jingfeng 文件夹中的内容,-g 指定快照 snapshot 文件,第一次没有该文件则会自动创建,如图
cd /root/jingfeng/
tar -g /data/backup/snapshot -czvf /data/backup/2017jingfeng.tar.gz
yum自动化安装、压缩、解压详解_第9张图片
(3)使用 tar 命令第一次完整备 份 jingfeng 文件夹中之后,会 生成快照文件:/data/backup/snapshot,后期增量备份会以 snapshot 文件为参考,在 jingfeng 文件夹中再创建 jf3.txt jf4.txt 文件,然后通过 tar 命令增量备份 jingfeng 目录所有内容,如图
cd /root/jingfeng/
touch jf3.txt jf4.txt
tar -g /data/backup/snapshot -czvf /data/backup/2017jingfeng_add1.tar.gz *
yum自动化安装、压缩、解压详解_第10张图片
如上图所示,增量备份时,需-g 指定第一次完整备份的快照 snapshot 文件,同时增
量打包的文件名不能跟第一次备份后的文件名重复,通过 tar –tf 可以查看打包后的文件内容。
[root@localhost songlss]# tar -g /data/backup/snapshot -czvf dff.tar.gz ./*
tar: ./Desktop: Directory is new
tar: ./dfg: Directory is new
tar: ./Documents: Directory is new
tar: ./Downloads: Directory is new
tar: ./Music: Directory is new
tar: ./Pictures: Directory is new
tar: ./Public: Directory is new
tar: ./Templates: Directory is new
tar: ./Videos: Directory is new
./1.txt
./12.txt
./123.txt
./Desktop/
./Documents/
./Downloads/
./Music/
./Pictures/
./Public/
./Templates/
./Videos/
./dfg/
./dfg/1.txt
./dfg/2.txt
./dfg/3.txt
./dfg/4.txt
./dfg/aa.tar.bz2
./dfg/ddd.tar.gz
./dfg/dfg.tar.gz
[root@localhost songlss]# cd /data/backup/
[root@localhost backup]# ls
snapshot
[root@localhost backup]# cd snapshot
bash: cd: snapshot: Not a directory
[root@localhost backup]# cat snapshot
GNU tar-1.23-2
15532250893655690140155230354769007620020501446332./Public0155230354769007620020501446330./Downloads0155230354769007620020501446329./Desktop0155230354769007620020501446336./Videos015532245497100602720501446371./dfgY1.txtY2.txtY3.txtY4.txtYaa.tar.bz2Yddd.tar.gzYdfg.tar.gz0155230354769007620020501446331./Templates0155230354769007620020501446335./Pictures0155230354769007620020501446334./Music0155230354769007620020501446333./Documents[root@localhost backup]#

5、ZIP 软件包管理

ZIP 也是计算机文件的压缩的算法,原名 Deflate(真空),发明者为菲利普·卡兹(Phil
Katz)),他于 1989 年 1 月公布了该格式的资料。ZIP 通常使用后缀名“.zip”。
主流的压缩格式包括 tar、rar、zip、war、gzip、bz2、iso 等。从性能上比较,TAR、WAR、
RAR 格式较 ZIP 格式压缩率较高,但压缩时间远远高于 ZIP,Zip 命令行工具可以实现对 zip
属性的包进行管理,也可以将文件及文件及打包成 zip 格式。如下为 ZIP 工具打包常见参数详解:
-f freshen:只更改文件;
-u update:只更改或新文件;
-d 从压缩文件删除文件;
-m 中的条目移动到 zipfile(删除 OS 文件);
-r 递归到目录;
-j junk(不记录)目录名;
-l 将 LF 转换为 CR LF(-11 CR LF 至 LF);
-1 压缩更快 1-9 压缩更好;
-q 安静操作,不输出执行的过程;
-v verbose 操作/打印版本信息;
-c 添加一行注释;
-z 添加 zipfile 注释;
-o 读取名称使 zip 文件与最新条目一样旧;
-x 不包括以下名称;
-F 修复 zipfile(-FF 尝试更难);
-D 不要添加目录条目;
-T 测试 zip 文件完整性;
-X eXclude eXtra 文件属性;
-e 加密 - 不要压缩这些后缀;
-h2 显示更多的帮助

ZIP 企业案例演示

(1)通过 zip 工具打包 jingfeng 文件夹中所有内容,如图
zip -rv jingfeng.zip /root/jingfeng/
yum自动化安装、压缩、解压详解_第11张图片
(2)通过 zip 工具打包 jingfeng 文件夹中所有内容,排除部分文件,如图
zip -rv jingfeng.zip * -x jf1.txt
zip -rv jingfeng.zip * -x jf2.txt -x jf3.txt
yum自动化安装、压缩、解压详解_第12张图片
(3)通过 zip 工具删除 jingfeng.zip 中 jf3.txt 文件,如图 所示
zip jingfeng.zip -d jf3.txt
(4)通过 unzip 工具解压 jingfeng.zip 文件夹中所有内容,如图 所示:
unzip jingfeng.zip
unzip jingfeng.zip -d /data/backup/ 可以-d 指定解压后的目录
yum自动化安装、压缩、解压详解_第13张图片

6、源码包安装

通常使用 RPM 工具管理.rpm 结尾的二进制包,而标准的.zip、tar 结尾的源代码包则不能使用 RPM 工具去安装、卸载及升级,源码包安装有三个步骤,如下:
./configure 预编译,主要用于检测系统基准环境库是否满足,生成 MakeFile 文件;
make 编译,基于第一步生成的 makefile 文件,进行源代码的编译;
make install 安装,编译完毕之后,将相关的可运行文件安装至系统中;
使用 make 编译时,Linux 操作系统必须有 GCC 编译器,用于编译源码。
源码包安装通常需要./configure、make、make install 三个步骤,某些特殊源码可以只有
三步中的其中一个步骤,或者两个步骤。
以 CentOS Linux 系统为基准,在其上安装 Nginx 源码包,企业中源码安装的详细步
骤如下:

(1) Nginx.org 官网下载 Nginx-1.13.0.tar.gz 包
wget http://nginx.org/download/nginx-1.13.0.tar.gz
(2) Nginx 源码包解压 tar -xvf nginx-1.13.0.tar.gz
(3) 源码 Configure 预编译,需进入解压后的目录执行./configure 指令,分号“;”表示连接多个命令。
cd nginx-1.13.0;./configure
(4) make 编译 make
(5) make install 安装 make install
通过以上五个步骤,源码包软件安装成功,源码包在编译及安装时,可能会遇到各种错
误,需要把错误解决之后,然后再进行下一步安装即可,后面章节会重点针对企业使用的软
件进行案例演练。
注:需要加入几个依赖,才能正常操作以上步骤
安装依赖
yum install gcc
yum install pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
//一键安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

7、通过网络下载源码包的指令
1、使用wget下载单个文件
以下的例子是从网络下载一个文件并保存在当前目录
wget http://cn.wordpress.org/wordpress-3.1-zh_CN.zip
在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。
2、使用wget -O下载并以不同的文件名保存
wget默认会以最后一个符合”/”的后面的字符来命令,对于动态链接的下载通常文件名会不正确。
错误:下面的例子会下载一个文件并以名称download.php?id=1080保存
wget http://www.centos.bz/download?id=1
即使下载的文件是zip格式,它仍然以download.php?id=1080命令。
正确:为了解决这个问题,我们可以使用参数-O来指定一个文件名:
wget -O wordpress.zip http://www.centos.bz/download.php?id=1080
3、使用wget –limit -rate限速下载
当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。
wget –limit-rate=300k http://cn.wordpress.org/wordpress-3.1-zh_CN.zip
4、使用wget -c断点续传
使用wget -c重新启动下载中断的文件:
wget -c http://cn.wordpress.org/wordpress-3.1-zh_CN.zip
对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。
5、使用wget -b后台下载
对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载。
wget -b http://cn.wordpress.org/wordpress-3.1-zh_CN.zip
Continuing in background, pid 1840.
Output will be written to `wget-log’.
你可以使用以下命令来察看下载进度
tail -f wget-log

你可能感兴趣的:(yum自动化安装、压缩、解压详解)