1、rpm
什么是rpm?
rpm : red hat packages manager 红帽包管理系统。
rpm包 就是软件的安装包,扩展名为.rpm , rpm只适用于红帽系的内核使用。( 类似于windows的.exe)
rpm的位置: /var/lib/rpm
rpm的特点
- 建立统一的数据库文件 可以记录操作信息
- 详细记录软件包安装、卸载等变化信息
- 自动分析软件包依赖关系,但缺点是:不能解决依赖关系。
自动安装软件的帮助手册:
/usr/share/doc
rpm查询命令
1. q 查询
| 命令 | 功能描述 |
|---|---|
| rpm -q | 查询已安装软件 |
| rpm -q 软件名 | 查询某个软件是否已安装软件 |
| rpm -qa 软件名 | 查询所有已安装软件 |
| rpm -qc 软件名 | 查询某个软件的配置文件 |
| rpm -ql 软件名 | 某软件的所有文件列表 |
| rpm -qi 软件名 | 软件的 基本信息 |
2. i 安装
rpm 安装软件命令: rpm -ivh 软件名
i install 安装
v 显示过程
h ###### 进度条
安装httpd软件:
安装软件 首先要有安装包 # 注意: 软件包一定要从官方网站下载。
ls | grep httpd
rpm -ivh httpd-tools-2.4.6.67.el7.centOS.X86_64.rpm # 安装软件时,会存在很多依赖关系,比如想安装a,可能就会需要先安装b,
rpm -ivh httpd-2.4.6.67.el7.centOS.X86_64.rpm # 安装b的话,可能又需要先安装c。
rpm -q httpd # 查询是否已经安装了httpd软件。
3. -e 卸载
语法:rpm -e 软件名
卸载安装包,只会卸载本包,不卸载依赖关系。
rpm查询的基操
cd /var/lib/rpm #切换rpm目录
[root@localhost rpm]# rpm -qa #查询所有已安装软件
[root@localhost rpm]# rpm -qa | wc -l #统计所有已安装软件的个数
软件已安装:
[root@localhost rpm]# rpm -q tree #查询是否安装tree软件
tree-1.6.0-10.el7.x86_64 #已安装,并且会显示tree软件的相关信息。
软件未安装:
[root@localhost rpm]# rpm -q httpd #查询是否安装httpd软件
未安装软件包 httpd # 提示未安装
[root@localhost rpm]# rpm -qa | grep tree #用过滤命令,查询所有安装的软件中是否有tree
[root@localhost rpm]# rpm -qi tree #查看tree软件的详细基本信息
rpm安装基操
安装软件,首先要有安装包,光驱中有大量的安装包!
[root@localhost ~]# ll /dev/sr0 #首先,找到光驱设备的位置
[root@localhost ~]# mount /dev/sr0 /mnt #用挂载的方式将光驱里的软件,复制到/mnt下面
[root@localhost ~]# cd /mnt/Packages/ #里面有大量的安装包
安装httpd软件:
[root@localhost Packages]# ls | grep httpd #安装包比较多,可以先进行过滤,找到httpd
rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm #安装httpd软件安装包的主包。注意,安装软件时,名字一定要写全
2、yum
2.1 yum简介
yum是一个能够自动解决软件包之间的依赖关系,解决了日常工作中的大量查找安装依赖包的时间。
yum是rpm的升级版,yum是为了解决依赖关系而存在的。yum底层还是用的rpm代码,yum是需要依靠网络,如果rpm出问题,yum也用不了。
2.2 yum实现过程
yum安装软件,首先要有安装包。
获取安装包的方式:
1.光驱里自带 挂载提供软件包
2.网络下载 到本地
3.直接通过网络
通过 客户端 去找 服务端
1 客户端
客户端配置文件的两个要求:
- 必须在 /etc/yum.repos.d/ 目录下
- 配置文件必须以 * .repo 结尾
客户端配置文件的内容,分为4步:
- [base] #仓库的描述(方括号里的内容可以随便写英文)
- name= ali ali是仓库的名字,不重复即可,最好也是用英文字母。
- baseurl=http:// #指明服务器的位置,去服务器端下载软件包(位置不是随便写的,必须要能打开)。baseurl和mirrorlist用法一样,二者任选其一即可。 http是远端服务器,file是本机。file:/// 也就是本地下载,第三个/是根。
- gpgcheck=1 #开启包的验证 ,如果是0 ,代表关闭包的验证。像阿里、华为、清华大学等官方权威的网站,可以不用开始验证。并且如果用1 开启验证 的话,验证会比较麻烦。
enabled=1 #是否开启仓库 ,1是开启、0是关闭,默认是1开启 。enabled是默认选项。
小科普: 因为红帽公司发布的软件是免费的,会被某些恶意黑客下载之后,在里面加入病毒,然后再发布到网上。所以下载软件一定要从官方渠道!!!并且红帽公司为了解决该问题,利用算法形成了一种密钥,将密钥和软件包关联起来。如果下载的软件的密钥,与红帽公司发布软件的密钥不一致,即软件被人篡改。
2 服务端
成为yum服务端要具备的条件:
-
安装包
-
元信息(数据库)
- 安装包的路径/位置
- 安装包的依赖关系
服务端的配置文件: /etc/yum.conf
3 如何实现安装服务
2.3 单机yum仓库
什么是单机yum仓库?
单机yum 仓库就是指,自己既是服务端,又是客户端。
因为在实际生产环境中,部分公司会因为严格的保密措施,不允许连接外网。如果没有外网的话,从网络源中下载软件将无法实现!所以单机yum仓库应运而生,因为单机yum仓库不需要依靠网络,就可以实现软件下载。
单机yum仓库过程:
先写配置文件:
mount /dev/sr0 /mnt #服务端 挂载光驱数据到mnt文件夹
cd /etc/yum.repos.d/ # 规定的仓库放置的路径, 切换目录,写配置文件
mkdir bak #建立子文件夹
mv *.repo bak #移走网络源,意思是把所有以.repo结尾的文件 移到bak文件夹内。
vim local.repo #建立本地配置文件 ,就是按照配置文件的四个步骤:
[local]
name=local
baseurl=file:///
gpgcheck=0 #vim中操作完以上四步,然后保存并退出。
yum clean all #清除缓存
yum makecache #下载元信息
yum install tree -y #安装tree软件 # -y就是yes 确定
yum remove tree -y #卸载tree软件
单机yum仓库实验做好后,可以接着操作
rm -rf local.repo #把yum中新建的删掉
mv bak/* . # 把bak中的文件删掉,这样就又从本地源回到了网络源
2.4 搭建网络源仓库
平时做实验可以用本地源,但是正常工作中如果有网络源,还是优先使用网络源。 因为本地源与网络源相比:
- 本地源数量少,只有三千多个;网络源有两万多个
- 本地源更新慢,版本较老
- 本地源只适合在没有网络情况下 应急使用。
如果配置网络源仓库的话,客户端配置文件的四个步骤中,只需要修改第三步baseurl
网络源链接中的地址,可以填写多个。但是链接的缩进 一定要对齐!
2.5 yum命令:
| 命令 | 功能描述 |
|---|---|
| yum list | 显示所有可用包 |
| yum provides [关键字] | 不知道完整名称,根据关键字去找 |
| yum provides */mime.types | 不知道文件对应的完整路径,用通配符 |
| yum install 软件名 | 安装软件 |
| yum remove 软件名 | 卸载软件 |
| yum history | 可以看到之前的操作命令 |
// yum卸载与rpm一样,只卸载自己的软件,不卸载依赖关系。
yum的优点:
- 自动解决依赖关系
- 简单
yum的缺点:
- 软件功能很多,但是软件的功能不全
- 更新速度慢,版本过旧
3、编译
3.1 什么是编译?
编译就是将人类使用的高级语言,如java python shell 等,翻译成二进制码(计算机语言)。
linux中安装软件的步骤
- 首先要写代码脚本
- 将代码翻译成二进制码(机器语言)
- 安装进入系统
- 使用运行
// 与linux不同,windows中安装软件 只需要后两步。因为windows中 开发者在发布前,已经把前两步做好了。
3.2 编译的特点
1、编译的优点:
- 功能自定义
- 可以安装最新的版本
2、编译的缺点:
- 复杂
3.3 编译环境
编译安装前,需要先安装编译软件,比如gcc 、gcc-c++ 、make等编译软件。这些软件安装过程中,也会存在依赖关系。
可以通过官方文档(英文)或者百度,查询软件之间的依赖关系,准备好 编译环境。没准备的好的话 安装软件时就会报错。
3.4 安装编译软件
共分为三步:
第一步:
-
./configure # 脚本文件,源码包中自带
- 检测安装环境 和 依赖软件,如果没装好会报错 提示
- 可以选择安装软件的哪些功能 生成一个文件 make.file ,按照这个文件的配置进行编译安装
- 指定安装路径 - -prefix= 路径 路径可以不存在,会自动建立路径,不需要手动 。 路径一般指定在 /apps/nginx ;如果没有指定,默认在 /usr/local/nginx
第二步:
make 将源代码编译成二进制可以执行的文件 # 后面加 -j2,2个核心编译,(前提是要确实有两核cpu) 并且编译必须要在源码包下。
第三步:
make install #将软件安装到 系统指定的路径
小拓展:
with添加 :代表需要自行选择
without减去:代表默认已有的,想要去除某些功能就用without
3.5 编译安装nginx实验:
mkdir /data #新建data文件夹
cd /data
wget http://nginx.org/download/nginx-1.18.0.tar.gz #下载源码包
tar xf nginx-1.18.0.tar.gz #解压
cd nginx-1.18.0/
yum -y install make gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel #安装依赖环境
./configure --prefix=/apps/nginx #检测环境,指定安装目录
make -j2 #编译
make install #将软件复制到前面规定的路径
ln -s /apps/nginx/sbin/nginx /usr/local/sbin #建立软链接,下次输入nginx命令时,可以自动补全
nginx #运行nginx
systemctl stop firewalld #关闭防火墙
setenforce 0
curl 本机ip地址 #curl就是文字版的浏览器 查询本机ip地址的命令:hostname -I 或者也可以再浏览器中输入ip地址,同样可以查看nginx是否安装完成。
killall nginx #关闭nginx 注意:只是关闭,并不是卸载。