应用程序与系统命令的关系
角色 | 系统命令 | 应用程序 |
文件位置 | 一般在/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格式的居多,在压缩包内提供已编译好的执行程序文件,解开压缩包后的文件即可直接使用 |
绿挂载
- 虚拟机设置界面连接ISO映像文件
- mount/ dev/cdrom 要挂载的目录 (/dev/cdrom 是设备文件)
- 挂载完成,cd到要挂载的目录查看映射文件
路径 | 说明 |
/etc/fstab | 用于走义文件系统的挂载点、挂载选项以及其他与挂载相关的参数。 |
自定义系统挂载点
在最后一行加入 /dev/cdrom /media/cdrom iso9660 defaults 0 0
- /dev/cdrom
a. CD/DVD 驱动器的设备文件路径 - /media/cdrom
a. 希望挂载到的目录路径 - iso9660
a. 文件系统类型,用于存储数据光盘 - defaults
a. 挂载选项,表示使用默认的挂载选项 - 第一个0
a. dump 备份选项,表示不需要进行dump 备份 - 第二个0
a. fsck 检查顺序,在系统启动时 fsck 工具也不会检查这个文件系统
RPM包管理工具
-
Red-Hat Package Manager
- 由Red Hat公司提出,被众多Linux发行版所采用
- 建立统一的数据库文件
- 详细记录软件包安装、卸载等变化信息
- 自动分析软件包依赖关系
-
RPM软件包
- 软件素材参考 : http:/www.rpm.org
一般命名格式 : bash-4.1.2-15.e16 4.x86 64.rpm -- 名称-版本-发行编号,系统版本,硬件架构
rpm软件包相关命令
查询、安装和卸载rpm软件包命令
命令 | 说明 |
rpm --import RPM-GPG-KEY-CentOS-7 | 导入校验密钥文件(GPG公钥文件) 该文件用于对软件包进行校验判断软件包是否经过篡改,利用SHA算法针对每一个软件包进行校验 GPG (GNU Privacy Guard)是一种基于公钥加密和数字签名的工具,它使用RSA、EIGamal等公钥密码算法,以及SHA-1、SHA-256等哈希算法。在RPM软件包管理中,GPG公钥用于验证RPM软件包是否被正确地签名和未被篡改。 |
rpm -ivh 软件包名 | -i : instal -v : verbose-详细信息 |
rpm -ivh 软件包全名 --nodeps | 忽略依赖关系安装软件包 |
rpm -e 已安装的软件包名 | 卸载指定软件包 |
rpm -F 软件包全名 | -F:freshen 只更新已安装的软件包 |
rpm -U 软件包全名 | -U : upgrade 更新指定软件包,如果软件包未安装,则直接安装 |
rpm --rebuilddb | 重新构建RPM数据库,确保其中的信息是最新的和准确的。这个命令会扫描 /ar/lib/rpm 目录下的所有 RPM 软件包,并重新生成数据库文件。 |
rpm --initdb (Initialize : 初始化) | 初始化 RPM 数据库,这个命令会创建一个空的RPM数据库,并准备好接受新的 RPM 软件包信息。 |
针对已安装软件包的命令
命令 | 说明 |
rpm -9 | 单独查询某个软件包安装了没有 |
rpm -ga | -q : 查询:query -a : all 当前系统里已经安装rpm软件包的个数 |
rpm -qi已安装的软件包名 | i : information -信息 查询已经安装的软件包的相关信息 对于已经安装的软件包,可以以只输入软件包名进行查询 比如 rpm -gi 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。
注意
- 当你修改 .rep0 仓库配置文件后,yum不会自动重新加载配置。如果你想要立即生效你的更改
- 可以运行 yum clean all和 yum makecache 命令来清除YUM的缓存并重新生成它。这样,YUM就会读取你新添加的仓库配置
命令 | 说明 |
yum clean all | 清理yum缓存 |
yum makecache | 生成或更新 yum 缓存 |
yum repolist | 显示当前能获取到的软件包的数量 |
路径 | 说明 |
/etc/yum.repos.d/ | 存放yum仓库配置文件的目录 |
安装源代码软件包步骤
示例安装nginx
- 导入源代码软件包 nginx.tar.gz 并用 tar zxvfnginx.tar.gz 命令释放(解压)该软件包
- 在安装源代码软件包前 需要先部署该软件包相同的开发环境用 /configure 命令 来校验当前系统状态是否缺失了安装所依赖的软件包
举例: ./configure. error. the HTTP rewrite module requires the PCRE librany. 根据第一行内容就可以看出 提示缺少PCRE库,
使用 yum -yinstall pcre-devel命令安装pcre库的开发软件包
- 当使用./confiqure 命令,不提示缺少依赖,并显示 Confquration summary后,说明所有依赖已经满足要求
- 使用 make命令,编译源代码
- 再使用 make install 命令,安装软件包
为什么安装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
安装后的操作
- cp /usr/local/nginx/sbin/nginx /usr/local/sbin/ # 复制nginx服务器的二进制程序到系统的环境变量中
- 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 的可执行文件。
通过将 Nainx 的二进制文件放在这些目录中,可以更方便地启动、停止和重新加载 Nainx 服务,而无需指定完整的路径
卸载nginx
1. 停止 Nginx 服务
a.systemctl stop nginX
2. 删除 Nginx 配置文件
a. mm -rf /etc/nginx/
3. 删除 Nginx 可执行文件和文件夹
a.找到 Nginx 的安装位置并删除它,通常是在/usr/local/nginx、/usr/sbin/nginx或安装时指定的位置
4. 删除 Nginx 用户和组
a.userdel -rnginx