1、软件包系统
不同的Linux发行版用的是不同的软件包系统,并且原则上,适用于发行版的软件包与其他版本是不兼容的。多数Linux发行版采用不外乎两种软件包技术阵营
软件包系统 | 发行版本(部分) |
Debian类 | Debian、Ubuntu、Xandros、Linspire |
Red Hat类 | Fedora、CentOS、Red Hat Enterprise Linux |
2、软件包工作方式
发行版本 | 低级工具 | 高级工具 |
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工作原理
包列表:包含所有可用软件包信息,如名称、版本、架构等。
依赖关系信息:描述每个软件包所需的其他软件包或库。
校验和:用于验证下载内容的完整性。
发布者签名:确保软件包来自可信来源,并未被篡改。
解压软件包:将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)