软件管理
一.RPM
1.RPM包
RPM(原Red Hat Package Manager,现在是一个递归缩写)
由 Red Hat 公司提出,被众多 Linux 发行版所采用
也称二进制( binary code)无需编译,可以直接使用
缺点:无法设定个人设置,开关功能
软件包示例(注意后缀):mysql-community-common-5.7.12-1.el7.x86_64.rpm
zip - 3.0-11. el7. x86_64. rpm
zip:软件包名
3.0-11:版本号(Version)
el7:发布版本(Release5/6/7)
x86-64:系统平台(32/64)
rpm:文件后缀
2.源码包
源码包
脚本安装包
source code 需要经过GCC,C++编译环境编译才能运行
源码包的优点是:
•开源,如果有足够的能力,可以修改源代码
•可以自由选择所需的功能
•软件是编译安装,所以更加适合自己的系统
•更加稳定也效率更高
•卸载方便
源码包的缺点:
•安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
•编译过程时间较长,安装比二进制安装时间长
•因为是编译安装,安装过程中一旦报错新手很难解决
软件包示例: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)配置YUM仓库/YUM源
本地源,系统安装光盘
通过系统光盘获得软件包,并安装软件
国外地址下载速度太慢
[root@localhost] # yum install -y wget
不需要任何修改,即可安装。YUM默认是配置好的
- 备份移除官方YUM库
[root@localhost ~]#mv /etc/yum.repos.d/* /tmp
把官方YUM库暂时移动到 /etc/yum.repos.d中
- 编写本地YUM库配置文件
[root@localhost ~]# vim /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd
baseurl=file:///mnt/cdrom
gpgcheck=0
/etc/yum.repos.d/是YUM下载地址库目录
[dvd]某一个库的名称,中括号[]是必须的
name=dvd是库的说明,name是必须的
baseurl=file:///mnt/cdrom下载库的具体地址.重要
gpgcheck=0是关闭校验
- 挂载安装光盘
把光盘放到服务器上 通电
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /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
- 使用YUM安装卸载软程序
安装软件
语法:yum install -y 软件名
[root@localhost~]# yun install -y hrrpd
卸载软件
语法:yum remove 软件名
[root@localhost~]# yum remove httpd
启动软件
语法: systemctl start 软件名
[root@localhost~]# systemctl start httpd
- 模拟客户机访问
打开浏览器,输入网站服务器的IP地址。http://127.0.0.1,验证网站程序部署成功。 - 观察仓库信息
[root@localhost ~]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识 源名称 状态
dvd dvd 4,067
repolist: 4,067
这样说明我们使用的是本地光驱中的软件包
网络源:使用官方源
- 设置网络
设置虚拟机的网络为NAT
打开Linux网络设置
然后上网测试
我们就可以使用国内厂商软件包的地址作为YUM的仓库 并且下载速度快 - 阿里云
Base/Extras/Updates: 默认(国外源)
清理原先YUM库
[root@losclhost~]# yum install wget
[root@localhist~]# mv /etc/yum.repos.d/* /tmp
下载阿里源至yum库
[root@localhist~]# wget
http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo
阿里源可以去阿里云官方镜像站直接复制下载
更新YUM源
[root@localhist~]# yum repolist 查询仓库列表列出
[root@localhost yum.repos.d]# yum repolist
已加载插件:fastestmirror, langpacks
base | 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,591
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 227
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 740
repolist: 10,558
[root@localhist~]# yum makecache 重新缓存加载
- EPEL
EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包)
下载epel配置文件
[root@localhost~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
epel镜像也在阿里云官方下载
[root@localhost~]# yum makecache
重新缓存一下
- nginx
从官网下载管理
找到官网,找到提示
document 文档
install 安装
找到下载的软件包
找到下载的安装系统包
按要求安装yum-utils
创建/etc/yum.repos.d/nginx.repo文件
把下面的内容填写上去
然后刷新列表找到nginx的资源软件包
验证一下nginx
系统的更新和升级,可以使用基础源(aliyun,163)。
软件的使用建议使用官方源(nginx.com/mysql.com)
(2)使用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 :移除,卸载软件包
- 查询工具和软件包的关系
当使用ifconfig命令失效时,却又不知道如何安装
使用provide查询命令的提供者进行安装。
[root@localhost ~]# yum provides ifconfig
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
源 :@anaconda
匹配来源:
文件名 :/usr/sbin/ifconfig
安装相对应的工具
[root@localhost ~]# yum install -y net-tools-2.0-0.25.20131004git.el7.x86_64
2.RPM工具
管理红帽系统/centos系统,rpm包的基本工具
YUM功能相同
优点不需要配置,直接使用
无法解决依赖关系
无法自行下载软件包
- 安装
找到安装包
[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 百分比
会出来提示信息
准备中
安装/升级中
- 查询
[root@localhost Packages]# rpm -q wget
-q 查询
看到软件包的名字,那就说明rpm -q 查询成功,已经安装软件
- 卸载
卸载软件包
[root@localhost Packages]# rpm -evh wget-1.14-15.el7.x86_64
会输出信息
准备中
正在清理/删除
然后再次查询
[root@localhost Packages]# rpm -q wget-1.14-15.el7.x86_64
未安装软件包wget-1.14-15.el7.x86_64
发现已经卸载
三.源码包管理
1.获得源码包
从官方网站,可以获得最新的软件包
Apache: www.apache.org
Nginx: www.nginx.org
Tengine: tengine.taobao.org
2.示例
###(1)下载tengine
(1)部署tengine
- 下载源码包
[root@localhost ~]# wget http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
这里示例的2.2.0版本的
- 准备编译环境
[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的服务器,直接启动会有冲突,所以确保httpd已关闭
[root@localhost tengine-2.2.0]# 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的网页,说明部署成功。