当前位置: 首页 > article >正文

第6章 Linux软件包企业实战

通过前几章的学习,掌握了Linux系统基本命令、用户及权限等知识,Linux整个体系的关键不在于系统本身,而是在于可以基于Linux系统去安装和配置企业中相关的软件、数据及应用程序,所以对软件的维护是运维工程师的重中之重。

本章介绍Linux系统软件的安装、卸载、配置、维护以及如何构建企业本地YUM光盘源及HTTP本地源。

6.1 RPM软件包管理

Linux软件包管理大致可分为二进制包、源码包,使用的工具也各不相同。Linux常见软件包分为两种,分别是源代码包(Source Code)、二进制包(Binary Code),源代码包是没有经过编译的包,需要经过GCC、C++编译器环境编译才能运行,二进制包无需编译,可以直接安装使用。

通常而言,可以通过后缀简单区别源码包和二进制包,例如.tar.gz、.zip、.rar结尾的包通常称之为源码包,以.rpm结尾的软件包称之为二进制包。真正区分是否为源码还是二进制还得基于代码里面的文件来判断,例如包含.h、.c、.cpp、.cc等结尾的源码文件,称之为源码包,而代码代码里面存在bin可执行文件,称之为二进制包。

CentOS操作系统中有一款默认软件管理的工具,红帽包管理工具(Red Hat Package Manager,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/CentOS 6.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  -q  			httpd 						 检查httpd包是否安装;
rpm  -ql  			httpd 						 查看软件安装的路径;
rpm  -qi  			httpd 						 查看软件安装的版本信息;
rpm  -e  			httpd  						 卸载httpd软件;
rpm  -e  --nodeps    httpd  					 强制卸载httpd;
rpm  -qa|grep      	httpd                      	 检查httpd相关的软件包是否安装。
rpm  -ivh  			httpd-2.4.10-el7.x86_64.rpm	     安装httpd软件包;
rpm  -Uvh 			httpd-2.4.10-el7.x86_64.rpm	     升级httpd软件;
rpm  -ivh  --nodeps    httpd-2.4.10-el7.x86_64.rpm	 不依赖其他软件包;

6.2 Tar软件包管理

Linux操作系统除了使用RPM管理工具对软件包管理之外,还可以通过tar、zip、jar等工具进行源码包的管理。

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

6.2.2 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软件包。

6.2.3 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文件,如图6-1所示:
在这里插入图片描述
图6-1 创建jingfeng目录及文件

(2) 使用tar命令第一次完整备份jingfeng文件夹中的内容,-g指定快照snapshot文件,第一次没有该文件则会自动创建,如图6-2所示:


http://www.kler.cn/a/381222.html

相关文章:

  • 蓝桥杯物联网开发板硬件组成
  • 写作词汇积累:纰漏、坎肩、颠三倒四、隔阂
  • Vue Web开发(十)
  • 2.4 网络概念(分层、TCP)
  • SQL进阶技巧:如何计算商品需求与到货队列表进出计划?
  • 用SparkSQL和PySpark完成按时间字段顺序将字符串字段中的值组合在一起分组显示
  • 大模型开发中将企业数据发送给Open AI是否有安全风险?
  • 跨平台Flutter 、ReactNative 开发原理
  • W5500-EVB-Pico2评估板介绍
  • C++面向对象设计模式——单例模式
  • MATLAB绘制水蒸气温度和压力曲线(IAPWS-IF97公式)
  • git远程和本地创建分支并关联
  • 苍穹外卖WebSocket无法建立连接 (修改前端代码)
  • 鸿蒙HarmonyOS开发生日选择弹框
  • 微信小程序uniapp+vue飞机订票航空售票系统
  • MVC 文件夹结构详解
  • 提升安全上网体验:Windows 11 启用 DOH(阿里公共DNS)
  • 商务礼仪与职场沟通
  • 定义全局键盘监听事件,el-dialog中删除不可用
  • docker离线使用镜像包还原镜像
  • Python设计模式探究:单例模式实现及应用解析
  • C#中的同步和异步回调
  • QML项目实战:自定义Switch按钮
  • 【毫米波雷达(三)】汽车控制器启动流程——BootLoader
  • NewStar easygui re wp
  • 常见用于从 HTTP 请求中提取数据的注解