软件管理
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.rpm
wget-1.14-15.el7.x86_64.rpm
tcpdump-4.9.0-5.el7.x86_64.rpm
例:zip - 3.0-11. el7. x86_64. rpm
zip :软件包名
3.0-11 :版本号
el7 : 发布版本(Release5/6/7) enterprise linux (企业版Linux系统)(红帽)
x86_64 :系统平台(32/64)
rpm :文件后缀
RPM包管理
YUM工具
简介:Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
YUM本地源:系统安装光盘
目的:通知Linux服务器,通过本机的系统光盘获得软件包,并安装软件
1、观察YUM核心配置目录
记住这个目录/etc/yum.repos.d/
打开一个*.repo
观察国外地址(下载速度慢)
yum install -y wget —> 没有任何修改,即可安装软件。YUM默认是配置好的。
2、备份移除官方YUM库
(之后再需要可直接解压)(移除后YUM不可用,需进行下步,编写本地YUM库文件)
方法一:
[root@localhost yum.repos.d]# tar -cvf repo.tar*
将本目录下的YUM库打包至本目录下,名为repo.tar
[root@localhost yum.repos.d]# mv repo.tar /tmp/ (再移到tmp中)
[root@localhost yum.repos.d]# rm -rf *
方法二:
[root@localhost ~]#mv /etc/yum.repos.d/* /tmp
编写本地YUM库配置文件
[root@localhost ~]# vim /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd
baseurl=file:///mnt/cdrom
gpgcheck=0
注释:
/etc/yum.repos.d/ 是YUM下载地址库目录 (report 报告)
dvd.repo 是文件名(自定义)但后缀是固定的
[dvd] 某一个库的名称,中括号[]是必须的 []内–>库的名字(不固定)
name=dvd 是库的说明,name是必须的 name= :描述
baseurl=file:///mnt/cdrom 下载库的具体地址.重要
(base:基本 url:地址)file:/// -->file://(在本机寻找) 和 /mnt/cdrom(需自己创)
gpgcheck=0 是关闭校验(1是打开) (gpg:软件包 check:校验)(系统会自动下载校验码和包验证,看是否能对上,可以对上就是软件包没有被改过。上述地址都是准备好的,不需要验证,关闭后 节省速度)
挂载安装光盘
需和图中显示一样,将光盘放置服务器上,通电
新建cdrom文件
[root@localhost ~]# mkdir /mnt/cdrom
手动挂载光驱(每次重启需重新挂载)(也可复制进cdrom 但占空间,所以用挂载)
mount 挂载
/dev/cdrom 是光驱文件
/mnt/cdrom 是挂载点
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
自启动文件,跟随用户启动运行的程序
[root@localhost ~]# vim /root/.bashrc
mount /dev/cdrom /mnt/cdrom ( 任意一行写入)
更新数据库或重启:
[root@localhost ~]#updatedb
可查看到光盘信息即可:
[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库安装和卸载程序
安装软件:
[root@localhost ~]#yum install -y httpd
启动软件:
[root@localhost ~]#systemctl start httpd
关闭防火墙:
[root@localhost ~]#systemctl stop firewalld
禁用防火墙:
[root@localhost ~]#systemctl disable firewalld
模拟客户机访问
打开浏览器,输入网站服务器的IP地址。http://127.0.0.1,验证网站程序部署成功。
[root@localhost ~]# ip a
观察仓库信息
说明我们使用的是本地光驱中 的软件包
[root@localhost ~]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识 源名称 状态
dvd dvd 4,067
repolist: 4,067
网络源:使用官方源
前提:联网
设置虚拟机网络为NAT
打开Linux网络设置
打开浏览器上网测试
目的:使用国内厂商提供的软件包地址(如:http://alibaba.com/.sadflsdjfjsdalkfdsa)作为YUM的仓库。
阿里云
Base/Extras/Updates: 默认(国外源) 更换成阿里YUM–>安装软件包速度会快
百度搜索 阿里巴巴开源镜像站 找到centos 下载对应版本的YUM源 网址: http://mirrors.aliyun.com/
1 清理原先YUM库
[root@localhost ~]#yum install wget 先下载接下来需要的wget
[root@localhost ~]#mv /etc/yum.repos.d/* /tmp 移走官方源
2 下载阿里源至yum库
[root@localhost ~]#wget -O /etc/yum.repos.d/CentOS-Base.repo
[root@localhost ~]#https://mirrors.aliyun.com/repo/Centos-7.repo
3 更新YUM源
[root@localhost ~]#yum repolist
[root@localhost ~]#yum makecache 建立元数据缓存
验证:
[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@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo epel.repo
扩展:独立部署163yum源(阿里和163会冲突 需事先将阿里源移走,实验后再移回)
[root@localhost ~]#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
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
重建缓存:把服务器的包信息下载到本地电脑缓存起来 不用上网检索就能查找软件信息
[root@localhost ~]# yum makecache
Nginx:(配置文件)
目的:通过查找官网了解构建官方源的原理。
第一步:找到提示
第二步:根据提示创建YUM配置文件
第三步: 查看服务器是否已经具备软件官方源。
系统的更新和升级,可以使用基础源(aliyun,163)。
软件的使用建议使用官方源(nginx.com/mysql.com)
步骤:
使用YUM管理RPM包
安装
1、全新安装
网络测试:
[root@localhost ~]# ping www.baidu.com
[root@localhost ~]# yum -y install httpd vsftpd
yum 主命令
-y 自动确认
install 安装
httpd 软件包1
vsftpd 软件包2
… 软件包N
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl stop firewalld
重新安装
当软件缺失时文件,可尝试reinstall 重新安装
[root@localhost ~]# yum -y reinstall httpd
升级安装
升级一个程序httpd
[root@localhost ~]# yum -y update httpd
对系统内所有程序进行更新(轻易不要尝试,需等待很久)
[root@localhost ~]# yum -y update
查询
查询YUM源
[root@localhost ~]# yum repolist
查询HTTP程序
[root@localhost ~]# yum list httpd
带@ 是已经安装的。
卸载
remove移除,卸载软件包
[root@localhost ~]# yum -y remove httpd
查询工具和软件包的关系
1、当使用ifconfig命令失效时,用yum -y install 下载不上,因为安装包的名字和命令不一样
2.使用provides查询命令的提供者进行安装。
3.查询
[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
4.安装对应工具(二者都可)
[root@localhost ~]# yum install -y net-tools-2.0-0.25.20131004git.el7.x86_64
[root@localhost ~]# yum install -y net-tools
刷新数据库:updatedb
DPKG
DPKG 包是由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理,主要应用在 Debian 和 Ubuntu 中。
RPM工具
1.管理红帽系统/centos系统,rpm包的基本工具
2.YUM功能相同
3.优点不需要配置,直接使用
4.无法解决依赖关系
5.无法自行下载软件包
安装(-i)
按照下列步骤:
-i :安装
-v:可视
-h:百分比,显示进度
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom -->挂载光驱(在dvd镜像中已挂载)
[root@localhost ~]# cd /mnt/cdrom/Packages
[root@localhost Packages]# ls wget-1.14-18.el7_6.1.x86_64.rpm -->此处尽量用tab自动补充软件包(版本号可能不一样)
wget-1.14-18.el7_6.1.x86_64.rpm
[root@localhost Packages]# rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm -->安装wget
准备中... ################################# [100%]
软件包 wget-1.14-18.el7_6.1.x86_64 已经安装
查询(-q)
看到软件包的名字,就说明rpm -q查询成功,已经安装软件。
[root@localhost Packages]# rpm -q wget -->查询软件包的安装情况
wget-1.14-18.el7_6.1.x86_64
卸载(-e)
卸载软件包
[root@localhost Packages]# rpm -evh wget
准备中... ################################# [100%]
正在清理/删除...
1:wget-1.14-18.el7_6.1 ################################# [100%]
再次查询:
[root@localhost Packages]# rpm -q wget-1.14-18.el7_6.1.x86_64.rpm
未安装软件包 wget-1.14-18.el7_6.1.x86_64.rpm
发现未安装
DPKG
DPKG 包是由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理,主要应用在 Debian 和 Ubuntu 中。
源码包管理
获得源码包
官方网站,可以获得最新的软件包
Apache: www.apache.org
Nginx: www.nginx.org
Tengine: tengine.taobao.org
实战案例
下载tengine
方法一:
点击下载的压缩包:
[root@localhost ~]# yum -y install lrzsz
[root@localhost ~]# rz
选择上述下载的文件 传入系统中
方法二:
复制安装包的下载链接
http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
下载源码包:
[root@localhost ~]# wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
.....
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2835884 (2.7M) [application/octet-stream]
正在保存至: “tengine-2.3.2.tar.gz.”
100%[====================>] 2,835,884 518KB/s 用时 5.3s
2020-12-02 22:06:08 (527 KB/s) - 已保存 “tengine-2.3.2.tar.gz.” [2835884/2835884])
准备编译环境 如 编译器
tengine手册首页会提示安装
[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.3.2 -->进入软件包内配置
配置(必须进入软件包内配置)
./configure 是用来检查环境变量及配置编译选项的 。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。
功能:启动或者关闭一个软件
[root@localhost tengine-2.3.2]#./configure --user=www --group=www --prefix=/usr/local/nginx(最后一个是安装地址)
正常状态,若出现很多error 则是没有准备好编译环境 或安装系统时没有勾选开发与兼容选项
编译
[root@localhost tengine-2.3.2]# make -->将文件转换为二进制
安装
[root@localhost tengine-2.3.2]# make install -->将make编译出来的文件安装到指定位置(或默认位置)
启动测试
可能之前的实验,安装过httpd服务。如果直接启动nginx会有冲突。请确保关闭或者卸载httpd
[root@localhost ~]# systemctl stop httpd (关闭)
使用绝对路径方式启动(linux标准启动方法)
/usr是Linux系统资源目录;
/local是本地的意思,是系统专门为我们准备安装软件的位置
[root@localhost tengine-2.3.2]# /usr/local/nginx/sbin/nginx
关闭防火墙:
[root@localhost tengine-2.3.2]# systemctl stop firewalld
[root@localhost tengine-2.3.2]# systemctl disable firewalld -->永久关闭(可重新启动)
使用浏览器访问本机的IP,http://127.0.0.1,如果能看到NGINX的网页,说明部署成功。
关闭测试
方法一:
[root@localhost ~]# ps -ef | grep nginx|grep master
root 11528 1 0 16:05 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
[root@localhost ~]# nginx -s stop
nginx: [alert] kill(9257, 15) failed (3: No such process)
(搜索出现的错误,并解决)
[root@localhost ~]# echo 11528 > /var/run/nginx.pid
[root@localhost ~]# nginx -s stop
方法二:
[root@localhost ~]# ps -ef | grep nginx|grep master
root 11528 1 0 16:05 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
[root@localhost ~]#kill 11528
卸载
直接删除安装目录即可,不会有残留
源码包与RPM包区别
源码包既然是软件包,就不会是一个文件,而是多个文件的集合。
出于发行的需要,我们一般会把源码包打包压缩之后发布,
而 Linux 中最常用的打包压缩格式是"Mar.gz",所以我们也把源码包叫作 Tarball。
源码包需要自己去软件的官方网站进行下载。
源码包的优点:
开源。如果你有足够的能力,则可以修改源代码。
可以自由选择所需的功能。
因为软件是编译安装的,所以更加适合自己的系统,更加稳定,效率也更高。
卸载方便。
源码包的缺点如下:
安装过程步骤较多,尤其是在安装较大的软件集合时(如 LAMP 环境搭建),容易出现拼写错误。
编译时间较长,安装时间比二进制安装要长。
因为软件是编译安装的,所以在安装过程中一旦报错,新手很难解决。
二进制包是在软件发布的时候已经进行过编译的软件包,所以安装速度比源码包快得多(和 Windows 下软件安装速度相当)。但是因为已经进行通译,大家也就不能在看到软件的源代码了。目前两大主流的二进制包系统是 DPKG 包和 RPM 包。
DPKG 包是由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux
就可以进行软件包管理,主要应用在 Debian 和 Ubuntu 中。RPM 包是由 Red Hat
公司所开发的包管理系统,功能强大,安装、升级、査询和卸载非常简单方便。
目前很多 Linux 版本都在使用这种包管理方式,包括 Fedora、CentOS、SuSE 等。
Linux 默认采用 RPM 包来安装系统,所以常用的 RPM 包都在安装光盘中。
RPM 包的优点如下:
包管理系统简单,只通过几个命令就可以实现包的安装、升级、査询和卸载。
可自动处理依赖关系
安装速度比源码包安装快得多。 报错少
RPM 包的缺点如下:
经过编译,不能在看到源代码。
功能选择不如源码包灵活,不能自定义功能