1.1 Linux软件包企业实战
通过前几章的学习,读者掌握了Linux系统基本命令、用户及权限等知识,Linux整个体系的关键不在于系统本身,而是在于可以基于Linux系统去安装和配置企业中相关的软件、数据及应用程序,所以对软件的维护是运维工程师的重中之重。
本章向读者介绍Linux系统软件的安装、卸载、配置、维护以及如何构建企业本地YUM光盘源及HTTP本地源。
1.2 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包格式解析如下:
4表示是发布版本号,该RPM包是第几次编译生成的;
|
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 不依赖其他软件包; |
1.3 Tar软件包管理
Linux操作系统除了使用RPM管理工具对软件包管理之外,还可以通过tar、zip、jar等工具进行源码包的管理。
1.4 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 从指定文件中读入不想包含的文件的列表。 |
1.5 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软件包。 |
1.6 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增量备份案例演示步骤如下:
- /root目录创建jingfeng文件夹,同时在jingfeng文件夹中,新建jf1.txt,jf2.txt文件,如图6-1所示:
图6-1 创建jingfeng目录及文件
- 使用tar命令第一次完整备份jingfeng文件夹中的内容,-g指定快照snapshot文件,第一次没有该文件则会自动创建,如图6-2所示:
cd /root/jingfeng/
tar -g /data/backup/snapshot -czvf /data/backup/2017jingfeng.tar.gz |
图6-2 tar备份jingfeng目录中文件
- 使用tar命令第一次完整备份jingfeng文件夹中之后,会生成快照文件:/data/backup/snapshot,后期增量备份会以snapshot文件为参考,在jingfeng文件夹中再创建jf3.txt jf4.txt文件,然后通过tar命令增量备份jingfeng目录所有内容,如图6-3所示:
cd /root/jingfeng/
touch jf3.txt jf4.txt tar -g /data/backup/snapshot -czvf /data/backup/2017jingfeng_add1.tar.gz * |
图6-3 tar增量备份jingfeng目录中文件
如上图6-3所示,增量备份时,需-g指定第一次完整备份的快照snapshot文件,同时增量打包的文件名不能跟第一次备份后的文件名重复,通过tar –tf可以查看打包后的文件内容。
1.7 Shell+TAR实现增量备份
企业中日常备份的数据包括/boot、/etc、/root、/data目录等,备份的策略参考:每周1-6执行增量备份,每周日执行全备份。同时在企业中备份操作系统数据均使用Shell脚本完成,此处auto_backup_system.sh脚本供参考,后面章节会系统讲解Shell脚本,脚本内容如下:
#!/bin/bash
#Automatic Backup Linux System Files #By Author www.jfedu.net #Define Variables SOURCE_DIR=( $* ) TARGET_DIR=/data/backup/ YEAR=`date +%Y` MONTH=`date +%m` DAY=`date +%d` WEEK=`date +%u` FILES=system_backup.tgz CODE=$? if [ -z $SOURCE_DIR ];then echo -e “Please Enter a File or Directory You Need to Backup:\n——————————————–\nExample $0 /boot /etc ……” exit fi #Determine Whether the Target Directory Exists if [ ! -d $TARGET_DIR/$YEAR/$MONTH/$DAY ];then mkdir -p $TARGET_DIR/$YEAR/$MONTH/$DAY echo “This $TARGET_DIR Created Successfully !” fi #EXEC Full_Backup Function Command Full_Backup() { if [ “$WEEK” -eq “7” ];then rm -rf $TARGET_DIR/snapshot cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf $FILES `echo ${SOURCE_DIR[@]}` [ “$CODE” == “0” ]&&echo -e “——————————————–\nFull_Backup System Files Backup Successfully !” fi } #Perform incremental BACKUP Function Command Add_Backup() { cd $TARGET_DIR/$YEAR/$MONTH/$DAY ; if [ -f $TARGET_DIR/$YEAR/$MONTH/$DAY/$FILES ];then read -p “$FILES Already Exists, overwrite confirmation yes or no ? : ” SURE if [ $SURE == “no” -o $SURE == “n” ];then sleep 1 ;exit 0 fi #Add_Backup Files System if [ $WEEK -ne “7” ];then cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf $$_$FILES `echo ${SOURCE_DIR[@]}` [ “$CODE” == “0” ]&&echo -e “—————————————–\nAdd_Backup System Files Backup Successfully !” fi else if [ $WEEK -ne “7” ];then cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf $FILES `echo ${SOURCE_DIR[@]}` [ “$CODE” == “0” ]&&echo -e “——————————————-\nAdd_Backup System Files Backup Successfully !” fi fi } Full_Backup;Add_Backup |
1.8 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企业案例演示:
- 通过zip工具打包jingfeng文件夹中所有内容,如图6-4所示:
zip -rv jingfeng.zip /root/jingfeng/ |
图6-4 zip对jingfeng目录打包备份
- 通过zip工具打包jingfeng文件夹中所有内容,排除部分文件,如图6-5所示:
zip -rv jingfeng.zip * -x jf1.txt
zip -rv jingfeng.zip * -x jf2.txt -x jf3.txt |
图6-5 zip对jingfeng目录打包备份,排除部分文件
- 通过zip工具删除jingfeng.zip中jf3.txt文件,如图6-6所示
zip jingfeng.zip -d jf3.txt |
- 通过unzip工具解压jingfeng.zip文件夹中所有内容,如图6-6所示:
unzip jingfeng.zip
unzip jingfeng.zip -d /data/backup/ 可以-d指定解压后的目录 |
图6-6 unzip对jingfeng目录解压
1.9 源码包软件安装
通常使用RPM工具管理.rpm结尾的二进制包,而标准的.zip、tar结尾的源代码包则不能使用RPM工具去安装、卸载及升级,源码包安装有三个步骤,如下:
使用make编译时,Linux操作系统必须有GCC编译器,用于编译源码。 |
源码包安装通常需要./configure、make、make install三个步骤,某些特殊源码可以只有三步中的其中一个步骤,或者两个步骤。
以CentOS 7 Linux系统为基准,在其上安装Nginx源码包,企业中源码安装的详细步骤如下:
- Nginx.org官网下载Nginx-1.13.0.tar.gz包
wget http://nginx.org/download/nginx-1.13.0.tar.gz |
- Nginx源码包解压
tar -xvf nginx-1.13.0.tar.gz |
- 源码Configure预编译,需进入解压后的目录执行./configure指令,分号“;”表示连接多个命令。
cd nginx-1.13.0;./configure |
- make编译
make |
- make install安装
make install |
通过以上五个步骤,源码包软件安装成功,源码包在编译及安装时,可能会遇到各种错误,需要把错误解决之后,然后再进行下一步安装即可,后面章节会重点针对企业使用的软件进行案例演练。
1.10 YUM软件包管理
前端软件包管理器(Yellow Updater Modified,YUM)适用于CentOS、Fedora、RedHat及SUSE中的Shell命令行,主要用于管理RPM包,于RPM工具使用范围类似,YUM工具能够从指定的服务器自动下载RPM包并且安装,还可以自动处理依赖性关系。
使用RPM工具管理和安装软件时,会发现rpm包有依赖,需要逐个手动下载安装,而YUM工具的最大便利就是可以自动安装所有依赖的软件包,从而提升效率,节省时间。
1.11 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源。
1.12 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 内核升级或者软件更新; 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。 |
- 基于CentOS 7 Linux,执行命令yum install httpd -y,安装httpd服务,如图6-7所示:
图6-7 YUM 安装httpd软件
- 执行命令yum grouplist,检查groupinstall的软件组名,如图6-8所示:
图6-8 YUM Grouplist显示组安装名称
- 执行命令yum groupinstall “GNOME Desktop” -y,安装Linux图像界面,如图6-9所示:
图6-9 GNOME Desktop图像界面安装
- 执行命令yum install httpd php php-devel php-mysql mariadb mariadb-server -y,安装中小企业LAMP架构环境,如图6-10所示:
图6-10 LAMP中小企业架构安装
- 执行命令yum remove ntpdate -y,卸载ntpdate软件包,如图6-11所示:
图6-11 卸载NTPDATE软件
- 执行命令yum provides rz或者yum provides “*/rz”,查找rz命令的提供者,如图6-12所示:
图6-12 查找RZ命令的提供者
- 执行命令yum update -y,升级Linux所有可更新的软件包或Linux内核升级,如图6-13所示:
图6-13 软件包升级或内核升级
1.13 基于ISO镜像构建YUM本地源
通常而言,YUM客户端使用前提是必须联外网,YUM安装软件时,检查repo配置文件查找相应的YUM源仓库,企业IDC机房很多服务器为了安全起见,是禁止服务器上外网的,所以不能使用默认的官方YUM源仓库。
构建本地YUM光盘源,其原理是通过查找光盘中的软件包,实现YUM安装,配置步骤如下:
- 将CentOS-7-x86_64-DVD-1511.iso镜像加载至虚拟机CD/DVD或者放入服务器CD/DVD光驱中,并将镜像文件挂载至服务器/mnt目录,如图6-14所示,挂载命令:
mount /dev/cdrom /mnt/ |
图6-14 CentOS ISO镜像文件挂载
- 备份/etc/yum.repos.d/CentOS-Base.repo文件为CentOS-Base.repo.bak,同时在/etc/yum.repos.d目录下创建media.repo文件,并写入如下内容:
[yum]
name=CentOS7 baseurl=file:///mnt enabled=1 gpgcheck=1 gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7 |
Media.repo配置文件详解:
name=CentOS7 YUM源显示名称;
baseurl=file:///mnt ISO镜像挂载目录; gpgcheck=1 是否检查GPG-KEY; enabled=1 是否启用YUM源; gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7 指定载目录下的GPG-KEY文件验证。 |
- 运行命令yum clean all清空YUM Cache,执行yum install screen –y安装screen软件如图6-15所示:
图6-15 YUM 安装Screen软件
- 至此YUM光盘源构建完毕,在使用YUM源时,会遇到部分软件无法安装,原因是因为光盘中软件包不完整导致,同时光盘源只能本机使用,其他局域网服务器无法使用。
1.14 基于HTTP构建YUM网络源
YUM光盘源默认只能本机使用,局域网其他服务器无法使用YUM光盘源,如果想使用的话,需要在每台服务器上构建YUM本地源,该方案在企业中不可取,所以需要构建HTTP局域网YUM源解决,可以通过CreateRepo创建本地YUM源端,repo即为Repository。
构建HTTP局域网YUM源方法及步骤如下:
- 挂载光盘镜像文件至/mnt
mount /dev/cdrom /mnt/ |
- 拷贝/mnt/Packages目录下所有软件包至/var/www/html/centos/
mkdir -p /var/www/html/centos/
cp -R /mnt/Packages/* /var/www/html/centos/ |
- 使用Createrepo创建本地源,执行如下命令会在Centos目录生成repodata目录,目录内容如图6-16所示:
yum install createrepo* -y
cd /var/www/html createrepo centos/ |
图6-16 Createrepo生成repodata目录
- 利用HTTP发布YUM本地源
本地YUM源通过CreateRepo搭建完毕,需要借助HTTP WEB服务器发布/var/www/html/centos/中所有软件,YUM或者RPM安装HTTP WEB服务器,并启动httpd服务。
yum install httpd httpd-devel -y 安装HTTP WEB服务;
useradd apache -g apache 创建apache用户和组; systemctl restart httpd.service 重启HTTPD服务; setenforce 0 临时关闭SeLinux应用级安全策略; systemctl stop firewalld.service 停止防火墙; ps -ef |grep httpd 查看HTTPD进程是否启动。 |
- 在YUM客户端,创建/etc/yum.repos.d/http.repo文件,写入如下内容:
[base]
name=”CentOS7 HTTP YUM” baseurl=http://192.168.1.115/centos/ gpgcheck=0 enabled=1 [updates] name=”CentOS7 HTTP YUM” baseurl=http://192.168.1.115/centos gpgcheck=0 enabled=1 |
- 至此在YUM客户端上执行如下命令,如图6-17所示:
yum clean all 清空YUM Cache;
yum install ntpdate -y 安装NTPDATE软件。 |
图6-17 HTTP YUM源客户端验证
1.15 YUM源端软件包扩展
默认使用ISO镜像文件中的软件包构建的HTTP YUM源,会发现缺少很多软件包,如果服务器需要挂载移动硬盘,Mount挂载移动硬盘需要ntfs-3g软件包支持,而本地光盘镜像中没有该软件包,此时需要往YUM源端添加ntfs-3g软件包,添加方法如下:
- 切换至/var/www/html/centos目录,官网下载NTFS-3G软件包。
cd /var/www/html/centos/
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/n/ntfs-3g-2016.2.22-3.el7.x86_64.rpm http://dl.fedoraproject.org/pub/epel/7/x86_64/n/ntfs-3g-devel-2016.2.22-3.el7.x86_64.rpm |
- Createrepo命令更新软件包,同理,如需新增其他软件包,同样把软件下载至本地,然后通过createrepo更新即可,如图6-18所示:
createrepo –update centos/ |
图6-18 CreateRepo update更新软件包
- 客户端YUM验证,安装NTFS-3G软件包,如图6-19所示:
图6-19 YUM INSTALL NTFS-3G软件包
1.16 同步外网YUM源
在企业实际应用场景中,仅仅靠光盘里面的RPM软件包是不能满足需要,我们可以把外网的YUM源中的所有软件包同步至本地,可以完善本地YUM源的软件包数量及完整性。
获取外网YUM源软件常见方法包括Rsync、Wget、Reposync,三种同步方法的区别Rsync方式需要外网YUM源支持RSYNC协议,Wget可以直接获取,而Reposync可以同步几乎所有的YUM源,下面以Reporsync为案例,同步外网YUM源软件至本地,步骤如下:
- 下载CentOS7 REPO文件至/etc/yum.repos.d/,并安装reposync命令工具:
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo /etc/yum.repos.d/centos.repo yum clean all yum install yum-utils createrepo –y yum repolist |
- 通过reposync命令工具获取外网YUM源所有软件包,-r指定repolist id,默认不加-r表示获取外网所有YUM软件包,-p参数表示指定下载软件的路径,如图6-20(a)、图6-20(b)所示:
reposync -r base -p /var/www/html/centos/
reposync -r updates -p /var/www/html/centos/ |
图6-20(a) Reposync获取外网YUM源软件包
图6-20(b) Reposync获取外网YUM源软件包
- 通过reposync工具下载完所有的软件包之后,需要执行createrepo更新本地YUM仓库:
createrepo /var/www/html/centos/ |
1.17 本章小结
通过对本章内容的学习,读者掌握了Linux安装不同包的工具及命令,使用RPM及YUM管理.RPM结尾的二进制包,基于configure、make、make install实现源码包安装,并能够对软件进行安装、卸载及维护。
能够独立构建企业光盘源、HTTP网络YUM源,实现无外网网络使用YUM安装各种软件包及工具,同时能随时添加新的软件包至本地Yum源中。
1.18 同步作业
- RPM及YUM管理工具的区别是什么?
- 企业中安装软件,何时选择YUM安装或者源码编译安装?
- 将Linux系统中PHP5.3版本升级至PHP5.5版本,升级方法有几种,分别写出升级步骤?
- 使用源码编译安装httpd-2.4.25.tar.bz2,写出安装的流程及注意事项。
- 如何将CentOS 7 Linux字符界面升级为图形界面,并设置系统启动默认为图形界面?