一、概述应用程序的前世今生
从程序猿写出源代码到生成一个目标程序,中间经历了(预处理)——(编译)——(汇编)——(链接)
这个过程就是将人类的高级语言翻译成计算机能看懂的二进制语言
那么关于Linux安装,到底安装的是什么?
rpm和yum安装的对象——rpm软件包:RPM包是已经编译好并打包好的文件,直接安装。
缺点:需要安装的环境必须与编译时的环境一致;也就是说包与包之间存在相互依赖的情况。
编译安装的对象——源代码软件包(.c文本) :需自行把源代码编译成可执行文件,复杂。
自由度高,可以修改源代码,源码包在编译的时候是可以附加额外的选项,个性化设置功能。
二、rpm
rpm有三大作用:
①查询、验证rpm软件的相关信息
rpm -q 软件包名 | 查询是否下载软件包(常用) |
rpm -qa 软件包名 | 查询已下载的软件包的信息 |
rpm -ql 软件包名 | 查询已下载的软件包的安装列表 |
rpm -qc 软件包名 | 只想知道已下载软件包的配置文件 |
rpm -qi 软件包名 | 查询下载软件包的基础信息 |
以httpd软件为例演示
②安装卸载rpm软件包
rpm -e 软件包名 | 卸载软件 |
rpm -ivh 软件包名 | 下载软件包(包名一定要跟全) |
rpm安装一般不用,因为不能解决包与包之间的依赖关系,以httpd举例
③维护rpm的数据库信息,存档在/var/lib/rpm
三、yum
①yum和rpm的关系
yum是rpm的一个升级版,能解决依赖关系,但是没有rpm,yum依然无法安装,也就是说yum的底层还是rpm。
可以做个小实验:rpm -e rpm 把rpm卸载了,查看yum是否有效~~~~
②yum的安装原理
yum安装时有客户端和服务端,服务端为客户端提供软件包和元信息(解决依赖关系)
工作原理如图:
那么系统是如何找到服务端?服务端在哪?
系统自带的yum源是在/etc/yum.repo.d/目录中,通过配置文件找到服务端
带你查看这些里面都是啥,配置信息都提供了什么,下载源在哪里
③建立本地yum仓库的原理和方法
创建本地yum仓库的目的:实际生产环境中,没有提供网络服务,只用使用本地yum仓库下载
创建本地yum仓库的原理:要做服务端,也要做客户端
服务端的两个必要条件从哪来:安装系统时的光盘镜像自带了很多rpm包,将光盘镜像挂载查看一下,有咩有Packages和repodata
话不多说,实操一下:
第一步:将光盘镜像挂载到一个目录,常用是/mnt
mount /dev/sr0 /mnt
df -h (检验一下是否挂载成功)
第二步:去到指定目录的指定位置备份系统自带yum仓库
cd /etc/yum.repos.d/
mkdir backup
mv *.repo backup
第三步:建立yum仓库
vim local.repo
[local] #仓库的描述,随便
name=local #仓库的名字,随便
baseurl=file:///mnt #服务端(也就是光盘镜像挂载点)
gpgcheck=0 #不校验安装包安全性
enable=1 #自启动
第四步:清理系统原缓存,生成新的缓存元信息
yum clean all && yum makecache
第五步:检验(空口无凭就是耍流氓,有理有据验证一下吧)
三、编译安装
①编译安装的三大步骤
编译安装三大步骤 | |
./confgiure | 检测安装环境 |
个性化指定安装目录 | |
个性化设置安装选项 | |
make | 将人类的高级语言翻译成二进制语言 |
make install | 将安装好的程序放到指定的安装目录 |
②实操练习编译安装nginx
第一步:到/opt 下载tar包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
第二步:解压tar包到当前目录
tar xf nginx-1.18.0.tar.gz
第三步:切换至解压后的nginx目录
第四步:解决安装环境
yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel
第四步:./configure(必须在源代码目录执行)
./configure --prefix=/apps/nginx
①查看是否还需要别的安装环境,再针对性解决
②指定安装目录 /apps/nginx
③也可以个性化配置安装选项
第五步:编译和安装:make && make install
第六步:创建快捷方式(也就是可以直接补全nginx命令)
ln -s /apps/nginx/sbin/nginx /usr/sbin/nginx
第七步:启动并检测安装是否成功
nginx ##启动
ss -natp |grep 80 ##可以查看是否成功
四、总结
不好意思,没有总结
最好的学习方法就是实践,发现问题,解决问题,验证结果!