Linux 应用程序组成
一、Linux 应用程序组成
1. Linux 命令与应用程序的区别
特性 | 命令 | 应用程序 |
---|---|---|
执行文件大小 | 通常较小 | 通常较大 |
存放目录 | /bin、/sbin | /usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin 等 |
安装时机 | 操作系统安装时一同安装 | 需在操作系统之外另行安装 |
执行格式 | 固定格式(命令 + 选项 + 参数) | 无固定格式,由开发者定义 |
操作界面 | 仅字符界面 | 可能使用图形化界面,形式多样 |
内部命令:如 exit、history、cd、source、echo 等,可通过 help 命令查看列表。
可使用 type {命令} 查看是否为内外部命令。
2. 应用程序的组成
典型应用程序通常包含以下 6 部分:
-
普通可执行程序文件:保存在 /usr/bin/ 目录,普通用户可执行。
-
服务器程序、管理程序文件:保存在 /usr/sbin 目录,仅管理员可执行。
-
配置文件:保存在 /etc 目录,若文件较多会创建与应用程序 / 服务同名的子目录。
-
日志文件:存放在 /var/log 目录。
-
参考文档等数据:保存在 /usr/share/doc 目录。
-
man 手册:保存在 /usr/share/man 目录,用于说明执行文件及配置文件。
3. 软件包封装类型
类型 | 扩展名 | 适用系统 | 特点 |
---|---|---|---|
rpm 软件包 | .rpm | 基于 RPM 机制的系统(如 RHEL8、Fedora30、suse12 等) | 依赖性强 |
DEB 软件包 | .deb | 基于 DPKG 机制的系统(如 Debian8.0、Ubuntu 17.14 等) | - |
源代码软件包 | .tar.gz 或 .tar.bz2 | 通用 | 需编译后安装 |
二、RPM 安装
1. RPM 软件包命名格式
以 python-2.7.5-76.el7.x86_64.rpm 为例:
-
python:软件名
-
2.7.5:版本号
-
76.el7:发布版本号(包含补丁或构建版本号 76,基于的发行版号为 el7)
-
x86_64:编译的处理器架构(noarch 表示不区分硬件架构)
2. RPM 包管理命令
查询未安装的 RPM 软件包信息
-
rpm -qpi <软件包路径>:查看指定未安装软件包的详细信息(需明确路径)
示例:rpm -qpi /mnt/Packages/python-2.7.5-76.el7.x86_64
-
rpm -qpl <软件包路径>:查看未安装软件包准备安装的所有目录和文件列表
示例:rpm -qpl /mnt/Packages/python-2.7.5-76.el7.x86_64
安装、卸载与更新
-
安装:rpm -ivh <软件包路径>
选项说明:-i(安装)、-v(显示详细过程)、-h(以 # 显示进度)
-
卸载:rpm -e <软件包名称>
-
更新:rpm -U <软件包路径>(若未安装则安装)
-
更新(仅更新已安装版本):rpm -F <软件包路径>(若未安装旧版本则放弃)
-
强制操作:–force(强制安装、覆盖等)
示例:rpm -ivh --force <软件包路径>
-
忽略依赖:–nodeps(去除依赖性关系)
示例:rpm -ivh --nodeps <软件包路径>
查询已安装的 RPM 软件包信息
-
rpm -qa:显示系统中以 RPM 方式安装的所有软件列表
示例:rpm -qa
-
rpm -qi <软件包名>:查看指定软件包的详细信息
示例:rpm -qi python-2.7.5-76.el7.x86_64
-
rpm -ql <软件包名>:显示指定软件包安装的所有目录和文件
示例:rpm -ql python-2.7.5-76.el7.x86_64
-
rpm -qf <文件或目录名>:查看指定文件 / 目录由哪个软件包安装
示例(以 python-2.7.5-76.el7.x86_64 里的文件为例):
rpm -qf /usr/bin/python
-
查看软件包是否安装:
rpm -q <软件包名>(如 rpm -q python-2.7.5-76.el7.x86_64)
或 rpm -qa | grep <软件包名>(如 rpm -qa | grep python-2.7.5-76.el7.x86_64)
三、YUM 仓库
1. YUM 仓库配置(自定义)
-
仓库文件必须在 /etc/yum.repos.d/ 目录下。
-
示例配置:
原yum.repos.d目录下有一些其他文件,可以删除
cd /etc/yum.repos.d/
vim server.repo # 前缀自定义
配置内容:
[a] # 自定义
name=aa # 自定义
baseurl=file:///mnt/ # 仓库路径
enabled=1 # 启用仓库(1 启用,0 禁用)
gpgcheck=0 # 不检查 GPG 签名(1 检查,0 不检查)
2. YUM 命令
功能 | 命令 |
---|---|
安装软件包 | yum -y install <软件包名> |
卸载软件包 | yum -y remove <软件包名> |
安装软件包组(如 Development Tools) | yum -y groupinstall “软件包组名” |
卸载软件包组 | yum -y group remove “软件包组名” |
列出所有已安装和可用的软件包 | yum list |
列出所有已安装和可用的软件包组 | yum group list |
更新软件包 | yum update <软件包名> |
3. 获取 yum 配置代码的网站及方法
在配置 yum 源时,以下网站提供了相关代码示例与指导:
阿里云开发者社区:
(https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.319b1b11bX2joG)
四、DNF 命令
DNF 是 YUM 的下一代包管理工具,在 RHEL 8、CentOS 8 及以上版本中默认使用,它的使用方法与 YUM 基本一致。
1. 开启 DNF 的方法
(需使用在网站里获得的 yum 配置,自定义的 yum 可能无法下载 DNF)
在支持 DNF 的系统中,DNF 通常默认已安装并启用,若未启用或需要确认其状态,可通过以下方式操作:
-
检查 DNF 是否安装:rpm -q dnf,若输出软件包信息则表示已安装。
-
若未安装,可通过 YUM 安装:yum -y install dnf。
-
安装完成后,DNF 即可正常使用,无需额外的启用命令。
2. DNF 常用命令
-
安装:dnf -y install <软件包名>
-
卸载:dnf -y remove <软件包名>
-
更新:dnf -y update <软件包名>