rpm、yum、编译安装

1、软件包系统

不同的Linux发行版用的是不同的软件包系统,并且原则上,适用于发行版的软件包与其他版本是不兼容的。多数Linux发行版采用不外乎两种软件包技术阵营

软件包系统 发行版本(部分)
Debian类 Debian、Ubuntu、Xandros、Linspire
Red Hat类 Fedora、CentOS、Red Hat Enterprise Linux

2、软件包工作方式

  • 软件包:软件包是包含应用程序及器元数据的文件,不同发行版使用不同的包格式如.deb、.rpm等。
  • 仓库:集中储存软件包的地方,可以是本地服务器或远程HTTP/FTP服务器。发行版通常维护官方仓库,同时用户也可以添加第三方仓库。
  • 依赖关系:软件包可能依赖于其他软件包才能正常工作。包管理系统会自动解析并安装这些依赖关系。
  • 元数据:每个软件包都附带元数据,描述包的名称、版本、描述、作者、许可证、依赖关系等信息。
  • 签名与验证:为了确保软件包的真实性和完整性,仓库中的包通常经过数字签名。包管理器在安装前会验证这些签名。
  • 高级和低级软件包工具:执行如安装、删除软件包文件等任务的低级工具。进行元数据搜索及提供依赖性解决的高级工具。
    发行版本 低级工具 高级工具
    Debian类(Ubuntu) dpkg apt
    Red Hat、CentOS rpm yum

 3、RPM包管理员

全称为The RPM Package Manager,最早由Red Hat研制,现在也由开源社区开发。PRM仅适用于安装用PRM来打包的软件,目前是GNU/Linux下软件包资源最丰富的软件包类型之一。

语法格式:rpm 参数名 软件包名

-a 显示所有软件包 -l 显示软件包的文件列表
-c 仅显示组态配置文件 -p 显示指定的软件包信息
-d 仅显示文本文件 -q 显示指定软件包是否已安装
-e 卸载软件包 -R 显示软件包的依赖关系
-f 显示文件或命令属于哪个软件包 -v 显示执行过程
-i 安装软件包

3.1查询rpm包信息

[root@localhost Packages]# rpm -q httpd            //查询特定软件包
未安装软件包 httpd 
[root@localhost Packages]# rpm -qa                 //查询已安装的软件包列表
libstoragemgmt-python-1.8.1-1.el7.noarch
lksctp-tools-1.0.17-2.el7.x86_64
[root@localhost Packages]# rpm -ql tree            //查询软件包提供的文件
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
[root@localhost Packages]# rpm -qi tree            //查询软件包的详细信息
Name        : tree
Version     : 1.6.0
Release     : 10.el7
[root@localhost Packages]# rpm -qc tree            //查询软件的配置文件

3.2、安装rpm包

推荐用固定搭配“rpm-ivh 软件包名”安装软件,而卸载软件则用固定搭配“rpm -evh 软件包名”,简单好记又好用。

[root@localhost Packages]# rpm -ivh httpd-2.4.6-95.el7.centos.x86_64.rpm
                                        //安装新软件包
[root@localhost Packages]# rpm -e httpd-2.4.6-95.el7.centos.x86_64.rpm
                                        //卸载软件包

3.3、挂载

功能是将文件系统挂载到目录。文件系统指的是被格式化过的硬盘或分区设备,进行挂载操作后,用户便可以在挂载目录中使用硬盘资源‍了。

默认情况下,Linux系统并不会像Windows系统那样自动地挂载光盘和U盘设备,需要我们自行完成。

语法格式:mount 参数 设备名 挂载点

mount /dev/sdb1 /mnt/usb

4、yum安装

全称是Yellow dog Updater,Modified,是由Duke University团队修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于RPM包管理员的软件包管理器。能够从指定的服务器自动下载RPM包并且安装,可以处理依赖性关系,并且一次安装所有以来的软件包,无须繁琐地一次次下载、安装。

4.1、yum工作原理

  • 读取配置文件:首先读取配置文件/etc/yum/conf以及/etc/yum.repos.d目录下所有.repo文件。这些文件定义了可用的软件源(仓库)、默认设置和其他重要的配置选项。
  • 获取仓库元数据:对于每个启用的仓库,yum会下载并解析仓库的元数据。元数据包含以下

        包列表:包含所有可用软件包信息,如名称、版本、架构等。

        依赖关系信息:描述每个软件包所需的其他软件包或库。

        校验和:用于验证下载内容的完整性。

        发布者签名:确保软件包来自可信来源,并未被篡改。

  • 解析依赖关系:安装软件包时,根据以获取的元数据解析该软件报的所有依赖关系。
  • 冲突检测与解决:解析依赖关系时,还会检查是否存在任何冲突,并提示可能的解决方案。
  • 下载软件包:确定所有必要软件包及其版本后,就开始下载。同时验证每个下载的软件包是否符合预期的校验和签名。
  • 模拟安装:实际执行安装前,模拟整个安装过程并显示将要进行的操作,以便用户确认
  • 执行事务:经过以上准备后,开始执行安装或更新软件包。

         解压软件包:将rpm文件中的内容提取到临时位置。

        检查文件冲突:再次确认没有文件冲突。

        安装文件:将文件复制到最终目标位置。

        运行脚本:执行软件包中包含的预安装和后安装脚本。

        更新数据库:记录已安装的软件包信息到RPM数据库中。

4.2yum仓库

yum仓库是一个包含 RPM 软件包和元数据的地方,它允许 YUM 工具从远程服务器或本地文件系统中检索和安装软件包。可以是本地的,也可以是远程的。

yum仓库使用/etc/yum.conf作为主配置文件,并且每个仓库都有自己的配置文件,通常位于/etc/yum.repos.d目录下,以.repo后缀保存。

[repository-name]                             //仓库标识符,即仓库名称,且必须唯一
name=Repository Description                   //仓库描述
baseurl=http://path-to-repository/            //指定仓库的URL,可以是http、ftp或是本地文件路径
enabled=1                                     //仓库是否启用
gpgcheck=1                                    //启用GPG签名检查,验证软件包完整性
gpgkey=http://path-to-repository/RPM-GPG-KEY  //GPG密匙的URL,用于验证仓库的包

4.3本地yum仓库

mount /dev/sr0  /mnt                   //挂载光驱文件
cd /etc/yum.repos.d                    //移动至yum配置文件夹下
mkdir repo.bak                         //新建文件夹,用于备份初始配置文件
mv *.repo repo.bak/                    //将初始配置文件移动至备份文件夹
vim local.repo                         //新建本地yum仓库配置文件
[local]                                //仓库名
name=local                             //仓库描述
baseurl=file:///mnt                    //指定本地文件路径
gpgcheck=0                             //关闭GPG签名检查
:wq                                   //保存并退出vim编辑器
yum clean all                          //清除yum缓存
yum makecache                          //更新yum仓库元数据缓存
yum install tree -y                    //安装软件

 

5、编译安装

编译安装(从源代码编译安装)是指将源代码转换为可执行文件,并在系统中安装软件的过程。许多 Linux 软件包和工具提供源代码包,这些包通常使用 tar .tar.gz 格式发布。编译安装可以让用户根据需要定制软件,适配特定的环境或进行优化。

编译安装流程:源代码-->预处理-->编译-->汇编-->链接-->执行

5.1、编译安装源代码包

可以通过软件官网下载或本地拷贝等方式获取源代码包,现以nginx为例进行安装:

[root@localhost opt]# wget   https://nginx.org/download/nginx-1.18.0.tar.gz  //获取源码包
[root@localhost opt]# ls
nginx-1.18.0.tar.gz
[root@localhost opt]# tar xf nginx-1.18.0.tar.gz                          //解压包
[root@localhost opt]# ls
nginx-1.18.0  nginx-1.18.0.tar.gz
[root@localhost opt]# cd nginx-1.18.0/                                    //移动到文件夹内
[root@localhost nginx-1.18.0]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
[root@localhost nginx-1.18.0]# ./configure --prefix=/apps/nginx/          //检测安装环境并指定安装目录
[root@localhost nginx-1.18.0]# make                                       //编译源代码
[root@localhost nginx-1.18.0]# make install                               //安装编译好的软件
[root@localhost nginx-1.18.0]# /apps/nginx/sbin/nginx -v                  //验证安装
nginx version: nginx/1.18.0                                               //显示版本号
[root@localhost nginx-1.18.0]# ln -s /apps/nginx/sbin/nginx /sbin         //创建软链接,方便快速运行
[root@localhost nginx-1.18.0]# ll /sbin/nginx
lrwxrwxrwx. 1 root root 22 1月  21 15:43 /sbin/nginx -> /apps/nginx/sbin/nginx  //软链接
[root@localhost nginx-1.18.0]# nginx                                      //运行软件
[root@localhost nginx-1.18.0]# pstree -p |grep nginx                      //运行成功
           |-nginx(6820)---nginx(6822)

你可能感兴趣的:(linux,nginx,centos,运维)