在Linux中安装软件的三种方式
- rpm ( 一般用来查,不用来安装 )
- yum
- 编译
一 、 应用程序基础
常见的软件包封装类型
| 文件类型 | 保存目录 |
|---|---|
| RPM软件包 | 扩展名为“.rpm” |
| DEB软件包 | 扩展名为“.deb” |
| 源代码软件包 | 一般为“.tar.gz”、“.tar.bz2”等格式的压缩包 包含程序的原始代码 |
| 绿色免安装的软件包 | 软件包的扩展名不一,以TarBall格式的居多 在压缩包内提供已编译好的执行程序文件 解开压缩包后的文件即可直接使用 |
一定要在官网下载安装包!
-
RPM包 : RPM Package Manager的缩写 是红帽公司自主研发的一款工具,实用性强。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在相互依赖的情况。
-
DEB包:在Linux系统中类似于windows中的软件包(exe),几乎不需要什么复杂的编译即可通过鼠标点击安装使用。此外,deb广泛应用于越狱后iOS软件及MeeGo(含Maemo软件)中。Debian包是将包的文件信息以及包内容,经过gzip和tar打包而成。
-
源代码软件包 :是需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。
-
绿色免安装的软件包 :顾名思义自行理解比如Windows的截图软件
二 、 RPM软件包管理工具
1. 简介
RPM Package Manager (RPM) 是一个强大的命令行驱动的软件包管理工具,用来安装、卸载、校验、查询和更新 Linux 系统上的软件包。
- 由Red Hat公司提出,被众多Linux发行版所采用
- 建立统一的数据库文件(一张对应表将信息写入)
- 详细记录软件包安装、卸载等变化信息
- 自动分析软件包依赖关系,不能解决依赖关系
RPM软件包 软件素材参考:www.rpm.org
2. rpm 命令功能
- 查询、验证RPM软件包的相关信息
- 安装、升级、卸载RPM软件包
- 维护重建RPM数据库信息等综合管理操作
3. rpm 查询
:rpm -q[选项] [软件名]
| 命令 | 效果 |
|---|---|
| rpm -q | 查询已安装软件 |
| rpm -qa | 查询所有已安装的软件 |
| rpm -q 软件名 | 查询某个软件是否已安装 |
| rpm -qc 软件名 | 列出已安装的指定软件的配置文件 |
| rpm -ql 软件名 | 查询某软件的所有文件列表 |
| rpm -qi 软件名 | 查看指定软件包的名称、版本、许可协议、用途描述等详细信息 |
4. rpm 安装
:rpm -ivh 软件名
| 选项 | 含义 |
|---|---|
| i | install安装 |
| v | 显示过程 |
| h | #####进度条 |
5. rpm 卸载
:rpm -e 软件名(可缩写)
注意!此命令只卸载本包,不卸依赖关系
```实验
安装软件首先要有安装包
准备安装包:准备将镜像文件放入光驱
系统中输入命令 mount /dev/sr0 /mnt #将光驱中的内容复制到mnt
cd /mnt/Packages
安装软件 ls | grep httpd
rpm -ivh httpd-tools-2.4.6-67.el7.centos.x86_64.rpm #系统提示需先安装此依赖包
rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm #安装软件
卸载 rpm -e httpd
三 、 yum
YUM 是一个基于RPM包构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间
1. 客户端
安装软件首先要有安装包。 包不在本地,网络上有一台服务器给你提供安装包
客户端————>服务端
客户端怎么知道去找哪个服务器? 需要写客户端配置文件!
- 客户端配置文件两个要求 : ①必须在 /etc/yum.repos.d/ 这个目录下 ②配置文件必须以 *.repo 结尾
```配置文件的内容
[base] #仓库的描述,可以随便写(字母)
name=ali #仓库的名字,不需重复即可 ,可以随便起(字母)
baseurl=http:// #指明服务器的位置,去服务器端下载软件包
gpgcheck=0 #开启包的验证,如果是0代表关闭包的验证
enabled=1 #是否开启仓库 默认的选项是自动开启仓库 1开启 0关闭
2. 服务端
一个机器想成为yum的服务端需要有
- 安装包
- 元信息(数据库) :存了安装包的位置;安装包的依赖关系
3. 单机yum仓库
自己既是服务端,又是客户端
自己给自己提供软件,那么软件从何而来呢? 光驱! 挂载光驱到某一个文件夹
```建立本地yum仓库的过程
mount /dev/sr0 /mnt #挂载提供安装包和元信息
cd /etc/yum.repos.d #切换到指定目录,写配置文件
mkdir bak #建立子文件夹
mv *.repo bak #移走网络源 (没有网,会影响速度,先放置另一个文件夹中)
vim local.repo #建立本地配置文件
[local]
name=local
basurl=file:///mnt #仓库的具体地址 file本机 fill://固定格式
gpgcheck=0
wq
yum clean all #清除缓存 (清除以前网络源的元信息)
yum makecache #下载元信息 (重新建立元信息,加快速度)
4. yum 命令
| 命令 | 效果 |
|---|---|
| yum list | 显示所有安装包 |
| yum install 软件名 | 安装软件 |
| yum remove 软件名 | 卸载软件 (不卸载依赖包) |
| yum provides 关键字 | 精确查找 |
四 、编译安装
在编译安装前,要先安装编译的软件(gcc gcc-c++ make等),然后安装依赖的软件,再准备 tar xf 解压
1. 编译安装三步走
☛ ./configure #脚本文件,源码包中自带 最后会生成makefile文件,是你做的个性化设置(选择功能、指定路径等)
- 功能:①检测安装环境 和依赖关系
②可以选择安装软件的哪些功能,选择好后生成一个文件make.file,按照这个文件的配置进行编译安装
③指定安装路径 --perfix=路径 路径可以不存在,会自动建立
( 默认在 /usr/local/nginx )
☛ make #将源代码编译成二进制可以执行的文件
☛ make install #将软件安装进系统的指定路径
(install是cp 、 chown 、chmod 三个命令的集合)
2. 编译安装nginx网站软件
nginx最基础的功能就是运行一个网站,你安装了nginx软件等于搭建了一个网站
mkdir /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 #编译 -j2 2个核心编译 (必须在源码包下编译)
make install #将软件复制到 前面规定的路径
In -s /apps/nginx/sbin/nginx /usr/local/sbin #做软连接可以补全
nginx #执行nginx
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭selinux防火墙
五、yum安装和编译安装优缺点对比
| yum | 编译 | |
|---|---|---|
| 优点 | 1.简单 2. 自动解决依赖关系 | 1.功能自定义 2.可以安装最新的版本 |
| 缺点 | 1. 软件的功能不全 2. 软件版本过旧 | 复杂 |