Linux系统进阶指令(二)

Linux软件包企业实战

1、基本概述
Linux 整个体系的关键不在于系统本身,而是在于可以基于 Linux 系统去安装和配置企业中相关的软件、数据及应用程序,所以对软件的维护是运维工程师的重中之重。
本节向读者介绍 Linux 系统软件的安装、卸载、配置、维护以及如何构建企业本地 YUM光盘源及 HTTP 本地源
2、RPM 软件包管理
Linux 软件包管理大致可分为二进制包、源码包,使用的工具也各不相同。Linux 常见软件包分为两种,分别是源代码包(Source Code)、二进制包(Binary Code),源代码包是没有经过编译的包,需要经过 GCC、C++编译器环境编译才能运行,二进制包无需编译,可以直接安装使用。
通常而言,可以通过后缀简单区别源码包和二进制包,例如.tar.gz、.zip、.rar 结尾的包通常称之为源码包,以.rpm 结尾的软件包称之为二进制包。真正区分是否为源码还是二进制还得基于代码里面的文件来判断,例如包含.h、.c、.cpp、.cc 等结尾的源码文件,称之为源码包,而代码代码里面存在 bin 目可以执行文件,称之为二进制包。CentOS 操作系统中有一款默认软件管理的工具,红帽包管理工具(Red Hat PackageManager,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;
q version 版本号,1.2.0 通用格式:“主版本号.次版本号.修正号”;4 表示是发布版本号,该 RPM 包是第几次编译生成的;
q arch 适用的硬件平台,RPM 支持的平台有:i386、i586、i686、x86_64、sparc、alpha 等。
q .rpm 后缀包表示编译好的二进制包,可用 rpm 命令直接安装;
q .src.rpm 源代码包,源码编译生成.rpm 格式的 RPM 包方可使用;
q el* 软件包发行版本,el6 表示该软件包适用于 RHEL 6.x/CentOS 6.x;
q devel: 开发包;
q 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 不依赖其他软件包;

root@localhost /]# wget https://mirrors.aliyun.com/centos/6.10/os/x86_64/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm--2019-03-21 18:21:14-- https://mirrors.aliyun.com/centos/6.10/os/x86_64/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpmResolving mirrors.aliyun.com… 61.163.8.209, 61.163.8.211, 61.163.8.208, …Connecting to mirrors.aliyun.com|61.163.8.209|:443… connected.HTTP request sent, awaiting response… 200 OKLength: 72436 (71K) [application/x-redhat-package-manager]Saving to: “lrzsz-0.12.20-27.1.el6.x86_64.rpm” 100%[==========================================>] 72,436 --.-K/s in 0.02s 2019-03-21 18:21:14 (3.22 MB/s) - “lrzsz-0.12.20-27.1.el6.x86_64.rpm” saved [72436/72436] [root@localhost /]# lsbin dev lib lrzsz-0.12.20-27.1.el6.x86_64.rpm opt sbin sys varboot etc lib64 media proc selinux tmpdata home lost+found mnt root srv usr[root@localhost /]# rpm -q lrzszpackage lrzsz is not installed[root@localhost /]# [root@localhost /]# rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm warning: lrzsz-0.12.20-27.1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEYPreparing… ########################################### [100%] 1:lrzsz ########################################### [100%][root@localhost /]# rpm -q lrzszlrzsz-0.12.20-27.1.el6.x86_64[root@localhost /]# rpm -ql lrzsz/usr/bin/rb/usr/bin/rx/usr/bin/rz/usr/bin/sb/usr/bin/sx/usr/bin/sz/usr/share/locale/de/LC_MESSAGES/lrzsz.mo/usr/share/man/man1/rz.1.gz/usr/share/man/man1/sz.1.gz [root@localhost /]# ost /]# rz [root@localhost /]# rz [root@localhost /]# lsbin etc lost+found opt selinux usrboot home lrzsz-0.12.20-27.1.el6.x86_64.rpm proc srv vardata lib media root sys 视图.sqldev lib64 mnt sbin tmp[root@localhost /]# mv 视图.sql /tmp[root@localhost /]# lsbin dev lib lrzsz-0.12.20-27.1.el6.x86_64.rpm opt sbin sys varboot etc lib64 media proc selinux tmpdata home lost+found mnt root srv usr[root@localhost /]# rpm -e lrzsz[root@localhost /]# rzbash: /usr/bin/rz: No such file or directory
3、YUM:自动化RPM包管理工具
前端软件包管理器(Yellow Updater Modified,YUM)适用于 CentOS、Fedora、RedHat及 SUSE 中的 Shell 命令行,主要用于管理 RPM 包,与 RPM 工具使用范围类似,YUM 工具能够从指定的服务器自动下载 RPM 包并且安装,还可以自动处理依赖性关系。
使用 RPM 工具管理和安装软件时,会发现 rpm 包有依赖,需要逐个手动下载安装,而YUM 工具的最大便利就是可以自动安装所有依赖的软件包,从而提升效率,节省时间。
3.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 源
3.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 服务
在这里插入图片描述
(2)令 yum grouplist,检查 groupinstall 的软件组名
在这里插入图片描述
(3) 执行命令 yum remove ntpdate -y,卸载 ntpdate 软件包
在这里插入图片描述
(4) 执行命令 yum provides rz 或者 yum provides "
/rz”,查找 rz 命令的提供者
在这里插入图片描述
(5) 执行命令 yum update -y,升级 Linux 所有可更新的软件包或 Linux 内核升级
在这里插入图片描述
(6)令yum provides rz 或者 yum provides "/rz",查找 rz 命令的提供者
在这里插入图片描述
(7)命 令um update -y,升级 Linux 所有可更新的软件包或 Linux 内核升级
在这里插入图片描述
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.3、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 软件包
ZIP 软件包管理
ZIP 也是计算机文件的压缩的算法,原名 Deflate(真空),发明者为菲利普·卡兹(PhilKatz)),他于 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/
(2) 通过 zip 工具打包 jingfeng 文件夹中所有内容,排除部分文件,
zip -rv jingfeng.zip * -x jf1.txtzip -rv jingfeng.zip * -x jf2.txt -x jf3.txt
3) 通过 zip 工具删除 jingfeng.zip 中 jf3.txt 文件,如图 所示
zip jingfeng.zip -d jf3.txt
(4) 通过 unzip 工具解压 jingfeng.zip 文件夹中所有内容,如图 所示:
unzip jingfeng.zipunzip jingfeng.zip -d /data/backup/
可以-d 指定解压后的目录
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.zipContinuing in background, pid 1840.Output will be written to `wget-log’.
     你可以使用以下命令来察看下载进度
     tail -f wget-log

猜你喜欢

转载自blog.csdn.net/weixin_44160188/article/details/89161641
今日推荐