Linux中rpm和yum相关配置和命令以及源代码软件包安装流程示例 + 疑问分享

应用程序与系统命令的关系

角色
系统命令
应用程序

文件位置

一般在/bin和/sbin目录中,或成为Shell内部指令

通常在/usr/bin和/usr/sbin目录中

主要用途

完成对系统的基本管理工作,例如IP配置工具

完成相对独立的其他辅助任务,例如网页浏览器

适用环境

一般只在字符操作界面中运行

根据实际需要,有些程序可在图形界面中运行

运行格式

一般包括命令字,命令选项和命令参数

通常没有固定的执行格式

典型应用程序的目录结构

安装完一个程序后,生成的文件都有哪些类别

文件类型
保存目录

普通执行程序文件

/usr/bin

服务器执行程序文件和管理程序文件

/usr/sbin

应用程序配置文件

/etc

日志文件

/var/log

var:variable - 可变的

应用程序参考文档文件

/usr/share/doc

应用程序手册页文件

/usr/share/man

常见的软件包封装类型

文件类型
保存目录

RPM软件包

扩展名为 “.rpm”(redhat package manager)

DEB软件包

扩展名为 “.deb”(Debian)

源代码软件包

一般为 “.tar.gz”、“.tar.bz2” 等格式的压缩包,包含程序的原始代码

安装流程:解压、部署开发环境、配置、编译、安装

绿色免安装的软件包

软件包的扩展名不一,以TarBall格式的居多,在压缩包内提供已编译好的执行程序文件,解开压缩包后的文件即可直接使用


挂载

  1. 虚拟机设置界面连接ISO映像文件
  2. mount /dev/cdrom 要挂载的目录(/dev/cdrom 是设备文件)
  3. 挂载完成,cd到要挂载的目录查看映射文件
路径
说明

/etc/fstab

用于定义文件系统的挂载点、挂载选项以及其他与挂载相关的参数。

自定义系统挂载点

在最后一行加入 /dev/cdrom /media/cdrom iso9660 defaults 0 0

  1. /dev/cdrom
    1.  CD/DVD 驱动器的设备文件路径
  2. /media/cdrom
    1. 希望挂载到的目录路径
  3. iso9660
    1. 文件系统类型,用于存储数据光盘
  4. defaults
    1. 挂载选项,表示使用默认的挂载选项
  5. 第一个0
    1. dump 备份选项,表示不需要进行 dump 备份
  6. 第二个0
    1. fsck 检查顺序,在系统启动时 fsck 工具也不会检查这个文件系统

RPM包管理工具

  • Red-Hat Package Manager

    • 由Red Hat公司提出,被众多Linux发行版所采用
    • 建立统一的数据库文件
    • 详细记录软件包安装、卸载等变化信息
    • 自动分析软件包依赖关系
  • RPM软件包

一般命名格式:bash-4.1.2-15.el6_4.x86_64.rpm — 名称-版本-发行编号.系统版本.硬件架构

rpm软件包相关命令

查询、安装和卸载rpm软件包命令

命令
说明

rpm --import RPM-GPG-KEY-CentOS-7

导入校验密钥文件(GPG公钥文件)

告诉系统“我只信任来自这个公钥签名的软件包”

该文件用于对软件包进行校验判断软件包是否经过篡改,利用SHA算法针对每一个软件包进行校验

GPG(GNU Privacy Guard)是一种基于公钥加密和数字签名的工具,它使用RSA、ElGamal等公钥密码算法,以及SHA-1、SHA-256等哈希算法。在RPM软件包管理中,GPG公钥用于验证RPM软件包是否被正确地签名和未被篡改。

rpm -ivh 软件包名

-i:install

-v:verbose - 详细信息

-h:进度条

安装指定软件包

rpm -ivh 软件包全名 --nodeps

忽略依赖关系安装软件包

rpm -e 已安装的软件包名

卸载指定软件包

rpm -F 软件包全名

-F:freshen

只更新已安装的软件包

rpm -U 软件包全名

-U:upgrade

更新指定软件包,如果软件包未安装,则直接安装

rpm --rebuilddb

重新构建RPM数据库,确保其中的信息是最新的和准确的。这个命令会扫描 /var/lib/rpm 目录下的所有 RPM 软件包,并重新生成数据库文件。

rpm --initdb(Initialize:初始化)

初始化 RPM 数据库,这个命令会创建一个空的 RPM 数据库,并准备好接受新的 RPM 软件包信息。

针对已安装软件包的命令

命令
说明

rpm -q

单独查询某个软件包安装了没有

rpm -qa

-q:查询; query

-a:all

当前系统里已经安装rpm软件包的个数

rpm -qi 已安装的软件包名

i:information - 信息

查询已经安装的软件包的相关信息

对于已经安装的软件包,可以只输入软件包名进行查询,比如 rpm -qi zziplib

rpm -ql 已安装的软件包名

-l:list

显示该软件包在安装过程中 所涉及到的文件放置的位置

rpm -qf 要查找的文件的绝对路径

-f:file

查找 指定绝对路径的文件是由哪个软件包所生成的

针对未安装软件包的命令

命令
说明

rpm -qpi 未安装的软件包全名

查询 未安装软件包的相关信息

rpm -qpl 未安装的软件包全名

查询 指定未安装的软件包

安装后涉及文件的放置位置


yum

yum:Yellow dog Updater, Modified

是一个基于RPM包的软件包管理器

# 单独安装语法
yum -y install 软件名

# 解决安装软件包的依赖链
# 安装开头为gcc的软件包的所有相关依赖软件包
yum -y install gcc*

自定义yum仓库配置文件

# 自定义 /etc/yum.repos.d/ 目录下的 .repo 仓库配置文件
[repository_id] # 仓库标识
name=Repository Name # 仓库名称
baseurl=file:///media/cdrom/ # 指定仓库的基础URL,这里使用本地光驱目录,也可以替换为其他URL,如HTTP、HTTPS或FTP服务器的地址。
enabled=1 # 启用此仓库,默认为1启用,0禁用
gpgcheck=0 # 不进行GPG校验,默认值为1(进行校验),设置为0以禁用
# gpgkey:指定用于验证仓库签名的 GPG 公钥的 URL。

注意

当你修改 .repo 仓库配置文件后,yum不会自动重新加载配置  如果你想要立即生效你的更改

可以运行 yum clean all 和 yum makecache 命令来清除YUM的缓存并重新生成它。这样,YUM就会读取你新添加的仓库配置。

命令
说明

yum clean all

清理yum缓存

yum makecache

生成或更新 yum 缓存

yum repolist

显示当前能获取到的软件包的数量

路径
说明

/etc/yum.repos.d/

存放yum仓库配置文件的目录

安装源代码软件包步骤

示例安装nginx

  1. 导入源代码软件包 nginx.tar.gz 并用 tar zxvf nginx.tar.gz 命令 释放(解压)该软件包
  2. 在安装源代码软件包前 需要先部署该软件包相同的开发环境 用 ./configure 命令 来校验当前系统状态 是否缺失了安装所依赖的软件包
  3. 当使用 ./configure 命令,不提示缺少依赖,并显示 Configuration summary 后,说明所有依赖已经满足要求
  4. 使用 make命令,编译源代码
  5. 再使用 make install 命令,安装软件包

举例:./configure: error: the HTTP rewrite module requires the PCRE library.
根据这一行内容就可以看出 提示缺少PCRE库,使用 yum -y install pcre-devel 命令安装pcre库的开发软件包

为什么安装pcre库时需要加上-devel而不是像安装vim编辑器时只用输入vim

首先要知道,在Linux中,软件包通常被划分为基础软件包和开发软件包。

基础软件包

也称为运行时库 或 二进制包

这些文件是软件运行时所需要的。一旦软件包被安装,用户通常可以直接使用它而无需进一步编译。

  • 二进制文件
  • 配置文件
  • 必要的执行脚本
  • 运行时资源(如图标、翻译文件等)
  • 许可证和版权信息
开发软件包

也称为开发库 或 头文件包

这些文件主要用于软件开发和编译。当你从源代码编译一个软件时,编译器需要头文件来了解如何调用库中的函数,并且可能需要静态库来静态链接你的软件。

  • 头文件(.h 文件)
  • 静态库文件(.a 文件)
  • 开发文档(如man页面、HTML文档等)
  • 开发工具(如用于构建软件的脚本或Makefile)
  • 示例代码

  • vim通常就被视为一个基础软件包
  • PCRE(Perl Compatible Regular Expressions)是一个用C语言编写的正则表达式函数库,包含基础软件包和开发软件包。
    • 如果你只是想运行一个使用PCRE库的软件,你只需要安装 pcre。但是,如果你从源代码编译一个软件,并且这个软件依赖于PCRE库,那么你需要同时安装 pcre 和 pcre-devel。
    • 而我们安装的是源代码软件包,需要部署相同的开发环境并且编译,所以要安装PCRE库的开发软件包。而PCRE的开发软件包就是pcre-devel。

总结一下

为什么安装pcre库时需要加上-devel而不是像安装vim编辑器时只用输入vim?

因为安装的是源代码软件包,就需要部署编译代码一致的开发环境,而PCRE库的开发软件包名就是pcre-devel。

自定义.configure命令解析

# ./configure是一个脚本,它在编译软件之前检查你的系统环境,确保所有必需的库和工具都已安装,并设置构建参数
# --prefix=/usr/local/nginx 参数指定了nginx的安装位置
# --user=nginx 和 --group=nginx 参数指定了运行nginx进程的用户和组

# 使用如下命令来配置nginx安装的位置和指定运行的用户
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx

安装后的操作

# 复制nginx服务器的二进制程序到系统的环境变量中
cp /usr/local/nginx/sbin/nginx /usr/local/sbin/

nginx -t # 测试nginx是否正常安装
systemctl stop firewalld # 关闭防火墙
http://系统的IP地址 # 用浏览器访问nginx欢迎页面测试nginx服务是否正常启动
# 如果没有正常启动
sudo systemctl start nginx # 以超级用户的权限,使用systemd工具来启动Nginx服务
ps -ef | grep nginx # 检查 Nginx 进程是否正在运行
为什么要复制nginx服务器的二进制程序?

/usr/local/sbin/ 和 /usr/sbin/ 这两个目录通常已经包含在系统的 PATH 环境变量中。

这意味着,在终端中输入 nginx 命令时,系统会在这些目录(以及其他包含在 PATH 中的目录)中查找名为 nginx 的可执行文件。

通过将 Nginx 的二进制文件放在这些目录中,可以更方便地启动、停止和重新加载 Nginx 服务,而无需指定完整的路径。


卸载nginx

  1. 停止 Nginx 服务
    1. systemctl stop nginx
  2. 删除 Nginx 配置文件
    1. rm -rf /etc/nginx/
  3. 删除 Nginx 可执行文件和文件夹
    1. 找到 Nginx 的安装位置并删除它,通常是在 /usr/local/nginx、/usr/sbin/nginx或安装时指定的位置
  4. 删除 Nginx 用户和组
    1. userdel -r nginx
  • 35
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值