第一阶段:云计算基础
Linux系统配置及服务管理_第09章_软件管理
概述
RPM包
- RPM(原Red Hat Package Manager,现在是一个递归缩写)
- 由 Red Hat 公司提出,被众多 Linux 发行版所采用
- 也称二进制( binary code)无需编译,可以直接使用
- 无法设定个人设置,开关功能
- 软件包示例(注意后缀):mysql-community-common-5.7.12-1.el7.x86_64.rpm
- 认识RPM包
• zip-3.0-11.el7.x86_64.rpmwget-1.14-15.el7.x86_64.rpmtcpdump-4.9.0-5.el7.x86_64.rpm
• 注释
• zip - 3.0-11. el7. x86_64. rpm
• 软件包名
• zip
• 版本号(Version)
• 3.0-11
• 发布版本(Release5/6/7)
• el7
• 系统平台(32/64)
• x86_64
• 文件后缀
• rpm
源码包
- source code 需要经过GCC,C++编译环境编译才能运行
- 可以设定个人设置,开关功能
- 软件包示例:nginx-1.8.1.tar.gz
- 认识源码包
• nginx
• 包名
• -1.8.1
• 版本号
• .tar.gz
• 压缩格式
RPM包管理
1.YUM工具
- 简介
• Yum(全称为 Yellow dog Updater, Modified)
• 是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
• 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,
• 可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
- 1.本地源:系统安装光盘
• 目的
• 通过系统光盘获得软件包,并安装软件
• 0.观察YUM核心配置目录
• 记住这个目录/etc/yum.repos.d/
• 打开一个*.repo
• 观察国外地址(下载速度慢)
• yum install -y wget
• 没有任何修改,即可安装软件。YUM默认是配置好的。
• 1 备份移除官方YUM库
• [root@localhost ~]#mv /etc/yum.repos.d/* /tmp
• 2编写本地YUM库配置文件
• [root@localhost ~]# vim /etc/yum.repos.d/dvd.repo [dvd] name=dvd baseurl=file:///mnt/cdromgpgcheck=0
• 注释
• /etc/yum.repos.d/是YUM下载地址库目录
• [dvd]某一个库的名称,中括号[]是必须的
• name=dvd是库的说明,name是必须的
• baseurl=file:///mnt/cdrom下载库的具体地址.重要
• gpgcheck=0是关闭校验
• 老铁多检查检查,很容易打错字
• 3 挂载安装光盘:
• 老铁千万记得要把光盘放到服务器上,通电
•
• [root@localhost ~]# mkdir /mnt/cdrom
• [root@localhost ~]# vim /root/.bashrc
• 自启动文件,跟随用户启动运行的程序
• mount /dev/cdrom /mnt/cdrom
• mount挂载
• /dev/cdrom是光驱文件
• /mnt/cdrom是挂载点
• [root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
• 手动挂载光驱
• 重启后,使用ls /mnt/cdrom,查看到光盘信息即可
• [root@localhost ~]# ls /mnt/cdrom/
• CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7
• EFI images Packages RPM-GPG-KEY-CentOS-Testing-7
• EULA isolinux repodata TRANS.TBL
• 4 使用YUM 安装和卸载程序
• [root@localhost ~]#yum install -y httpd
• 安装软件
• [root@localhost ~]#systemctl start httpd
• 启动软件
• [root@localhost ~]#systemctl stop firewalld
• 关闭防火墙
• [root@localhost ~]#systemctl disable firewalld
• 禁用防火墙开机自启
• 5.模拟客户机访问
• 打开浏览器,输入网站服务器的IP地址。http://127.0.0.1,验证网站程序部署成功。
• 6.观察仓库信息
• [root@localhost ~]# yum repolist
• 已加载插件:fastestmirror, langpacksLoading mirror speeds from cached hostfile源标识 源名称 状态dvd dvd 4,067repolist: 4,067
• 说明我们使用的是本地光驱中 的软件包
• 报错锦集
- 2.网络源:使用官方源
• 前提:联网
• 设置虚拟机网络为NAT
•
• 打开Linux网络设置
•
• 打开浏览器上网测试
•
• 目的
• 使用国内厂商提供的软件包地址(如:http://alibaba.com/.sadflsdjfjsdalkfdsa)作为YUM的仓库。
• 阿里云
• Base/Extras/Updates: 默认(国外源)1 清理原先YUM库yum install wgetmv /etc/yum.repos.d/* /tmp2 下载阿里源至yum库wget http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo 3 更新YUM源yum repolistyum makecache
• wget -O或者curl -O
• 验证
• [root@localhost yum.repos.d]# yum repolist 已加载插件:fastestmirror, langpacksbase | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 (1/4): extras/7/x86_64/primary_db | 110 kB 00:00:00 (2/4): base/7/x86_64/group_gz | 156 kB 00:00:01 (3/4): updates/7/x86_64/primary_db | 2.7 MB 00:00:01 base/7/x86_64/primary_db FAILED http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/0c34273ad0292747ee5e15c047d3e51c67ca59861a446972db45d71abacc7ad7-primary.sqlite.bz2: [Errno 12] Timeout on http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/0c34273ad0292747ee5e15c047d3e51c67ca59861a446972db45d71abacc7ad7-primary.sqlite.bz2: (28, 'Connection timed out after 30001 milliseconds')正在尝试其它镜像。(4/4): base/7/x86_64/primary_db | 5.7 MB 00:00:04 Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com源标识 源名称 状态base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 9,591extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 227updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 740repolist: 10,558
• 教程
• http://mirrors.aliyun.com/
• 课后作业:独立部署163yum源。(自学)
• EPEL
• EPEL
• EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包)
• 下载epel配置文件
• wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
• 重建缓存
• [root@localhost ~]# yum makecache
• Nginx:(配置文件)
• 目的:通过查找官网了解构建官方源的原理。第一步:找到提示第二步:根据提示创建YUM配置文件第三步: 查看服务器是否已经具备软件官方源。
• 网站
• document文档》install安装》packet包说明
•
•
•
• 1 根据提示创建YUM配置文件2 根据提示替换关键字,centos和7
• 配置示例
• [root@localhost ~]# vim /etc/yum.repos.d/nginx.repo[nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/7/$basearch/gpgcheck=0enabled=1
• 结果示例
•
• 提示:
• 系统的更新和升级,可以使用基础源(aliyun,163)。软件的使用建议使用官方源(nginx.com/mysql.com)
- 3.使用YUM管理RPM包
• 安装
• 全新安装
• [root@localhost ~]# yum -y install httpd vsftpd
• yum 主命令
• -y 自动确认
• install 安装
• httpd 软件包1
• vsftpd 软件包2
• 软件包N
• 重新安装
• 当软件缺失文件,可尝试重新安装
• [root@localhost ~]# yum -y reinstall httpd
• reinstall 重新安装
• 升级安装
• [root@localhost ~]# yum -y update httpd
• 升级一个程序httpd
• [root@localhost ~]# yum -y update
• 查询
• 查询YUM源
• [root@localhost ~]# yum repolist
• 查询HTTP程序
• [root@localhost ~]# yum list httpd
• 带@ 是已经安装的。
• 卸载
• 卸载程序
• [root@localhost ~]# yum -y remove httpd
• remove移除,卸载软件包
• 查询工具和软件包的关系
• 1.当使用ifconfig命令失效时,却又不知道如何安装
• 2.使用provide查询命令的提供者进行安装。
• 3.查询
• [root@localhost ~]# yum provides ifconfig
• [root@localhost ~]# yum provides ifconfig已加载插件:fastestmirror, langpacksLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.comnet-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools源 :@anaconda匹配来源:文件名 :/usr/sbin/ifconfig
• 4.安装对应工具
• [root@localhost ~]# yum install -y net-tools-2.0-0.25.20131004git.el7.x86_64
2.RPM工具
- 前言
• 1.管理红帽系统/centos系统,rpm包的基本工具
• 2.YUM功能相同
• 3.优点不需要配置,直接使用
• 4.无法解决依赖关系
• 5.无法自行下载软件包
- 安装(i)
• 安装
• 先找到安装包
• [root@localhost ~]# cd /mnt/cdrom/Packages
• 检查软件包是否存在
• [root@localhost Packages]# ls wget-1.14-18.el7_6.1.x86_64.rpm
• wget-1.14-18.el7_6.1.x86_64.rpm
• [root@localhost Packages]# rpm -ivh wget-1.14-15.el7.x86_64.rpm
• -i 安装
• v 可视
• h 百分比
• 提示信息
• 警告:wget-1.14-15.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
• 准备中... ################################# [100%]
• 正在升级/安装... 1:wget-1.14-15.el7 ################################# [100%]
- 查询(q)
• [root@localhost Packages]# rpm -q wget
• -q 查询
• wget-1.14-15.el7.x86_64
• 看到软件包的名字,就说明rpm -q查询成功,已经安装软件。
- 卸载(e)
• 卸载软件包
• [root@localhost Packages]# rpm -evh wget-1.14-15.el7.x86_64
• 输出信息
• 准备中... ################################# [100%]
• 正在清理/删除...
• 1:wget-1.14-15.el7 ################################# [100%]
• 再次查询,发现已经卸载
• [root@localhost Packages]# rpm -q wget-1.14-15.el7.x86_64
• 未安装软件包 wget-1.14-15.el7.x86_64
源码包管理
获得源码包
- 官方网站,可以获得最新的软件包
• Apache: www.apache.org
• Nginx: www.nginx.org
• Tengine: tengine.taobao.org
实战案例
- 下载tengine
•
- 部署Tengine
• 下载源码包的命令
• [root@localhost ~]# wget http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
• 准备编译环境如编译器
• [root@localhost ~]# yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
• 解压
• [root@localhost ~]# useradd www
• [root@localhost ~]# tar xvf tengine-2.2.0.tar.gz
• [root@localhost ~]# cd tengine-2.2.0
• 配置
• [root@localhost tengine-2.2.0]#./configure --user=www --group=www --prefix=/usr/local/nginx
• 注意空格
• 编译
• [root@localhost tengine-2.2.0]# make
• 安装
• [root@localhost tengine-2.2.0]# make install
• 启动测试
• 可能之前的实验,安装过httpd服务。如果直接启动nginx会有冲突。请确保关闭httpd
• # systemctl stop httpd
• [root@localhost tengine-2.2.0]# /usr/local/nginx/sbin/nginx
• [root@localhost tengine-2.2.0]# systemctl stop firewalld
• 使用浏览器访问本机的IP,http://127.0.0.1,如果能看到NGINX的网页,说明部署成功。