源码编译安装 ( 二进制安装 )
由程序员按照特定的格式和语法编写出来的
源码: 编写好的 .c .java 文件
编译: 将人类写的 代码 翻译成二进制语言
安装: 将二进制保存在键盘上
缺点:
- 如果编译出了问题,你看不懂源代码,无法解决
- 安装过程复杂
- 没有统一的管理人员
优点
1.契合系统兼容性强
2.如果你可以看懂源代码,修改新增功能
3.比较自由
安装需要三步
一. ./configure 软件作者写的脚本(安装包中会有)
1.可以更改你的安装路径
2.选择你要安装软件的功能
3.检测你的安装环境
二. make 将源代码 编译成二进制语言,让电脑可以看懂
三.make install 将二进制 数据写入硬盘,安装进系统
例:安装 tar xf httpd-2.4.29.tar.bz2
mkdir /app #建立文件夹 (要安装到该文件夹下)
cd /opt #压缩包放到了该目录下
tar xf httpd-2.4.29.tar.bz2 #解压源码包
cd httpd-2.4.29/
yum install apr* gcc* pcre* -y #安装依赖环境需要的 工具包
./configure --prefix=/app #选择安装目录
make -j2 #编译 j2 带表使用2颗cpu编译
make install #写进硬盘
Rpm安装 (安装包管理工具)
优点:
1统一的安装包格式
2.已经帮你编译完成
3.使用简单
缺点:
有依赖关系
命令
对已安装程序:
#rpm -qa 查看系统已安装的所有软件
#rpm -q httpd(软件名) 查询是否安装了该软件
#rpm -qi 软件包名 查看软件包的详细信息
#rpm -ql 软件名 查看该软件的所有文件列表
#rpm -qc 配置文件 更详细的分类
#rpm -qf 软件名 该软件出自哪个安装包
#rpm -qd 软件名 查看一个已经安装软件的文档安装位置
安装
#rpm -ivh 软件包名
i install 安装
v 显示详细过程
h 进度条 #######
卸载
#rpm -e 软件名
升级
rpm -U 软件名 (要升级包)
yum 仓库 ( 解决依赖关系而诞生的)
1.安装简单
2.自动解决依赖关系
客户端
需要配置一个文件指明服务器的路径
客户端的配置文件固定位置在 /etc/yum.repos.d/
(客户端配置文件 必须以 .repo 结尾)
yum客户端安装过程
1.客户端第一次连接会将元数据文件下载下来
2.根据元数据中 的依赖关系和包的路径,将所需要的安装包全部下载下来,放到缓存目录
3.安装结束后,将缓存目录中的安装包全部删除
服务端
需要一台服务器来提供服务
成为服务器一定要有以下两个文件夹Packages repodata
1.安装包(Packages 不固定,但是同一都叫Packages )
2.元数据 (repodata 固定的)
- 安装包的路径
- 依赖关系
- 权限
默认的仓库路径 需要你可以访问互联网
在工作环境中大部分不允许使用互联网
搭建本地仓库
服务端需要:
安装包(通过挂载)
元信息(自行生成)
客户端需要:手写配置文件
mount /dev/sr0 /mnt/ #挂载
cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak/ #将原有的配置文件移动到此文件夹下
vim local.repo #新建一个配置文件
[local] #仓库名字
name=local #仓库描述
baseurl=file:///mnt #仓库服务器的路径
gpgcheck=0 #检验包的完整性,1为开启0为关闭
enabled=1 #代表启用该仓库 enabled=0 代表停用该仓库 不写默认开启
yum clean all #清除缓存
yum makecache #重新建立元数据
yum install 包名 -y 下载并安装
baseurl 有四种表示方式
file:// 本地的路径(当前系统的路径)
http:// 网页的形式
https:// 加密
ftp:// 文件共享服务来实现
挂载
将硬件和根分区下某一文件夹做关联, 相当于这个文件夹是进入硬盘的一个入口
命令
mount /dev/cdrom /mnt
硬件设备 挂载点
解挂载
umount /挂载的目录
(在挂载目录下 解挂载)
查看系统的硬件信息
1.查看内存:free -h 友好显示
2.查看硬盘 : lsblk fdisk
3.查看cpu:lscpu
4.系统架构:arch
5.内核版本:uname -r
面试题
请说出你工作运维当中常用的 20个命令
find grep mount sed awk free fdisk lsblk iostat
什么是buff 什么是cache
buff:写缓存
cache:读缓存