Linux : 应用程序的安装和管理
一、Linux应用程序组成
1. Linux命令 与应用程序的对比
特性 | Linux命令 | 应用程序 |
---|---|---|
存放路径 | /bin , /sbin |
/usr/bin , /usr/sbin , /usr/local/bin , /usr/local/sbin |
安装方式 | 随操作系统安装 | 额外独立安装 |
执行格式 | `命令 + 选项 + 参数 | 格式由开发者定义 |
界面 | 仅字符界面 | 可能支持图形界面 |
2. 应用程序
组件类型 | 存放路径 | 权限/说明 |
---|---|---|
普通可执行程序 | /usr/bin/ |
普通用户可执行 |
服务器/管理程序 | /usr/sbin/ |
仅管理员可执行 |
配置文件 | /etc/ 或 /etc/应用名/ |
多配置时创建同名子目录 |
日志文件 | /var/log/ |
记录运行信息 |
参考文档 | /usr/share/doc/ |
说明文档、示例等 |
Man手册 | /usr/share/man/ |
执行文件及配置的帮助手册 |
3. 软件包封装类型
类型 | 扩展名 | 适用系统 | 特点 |
---|---|---|---|
RPM包 | .rpm |
RHEL, Fedora, SUSE等 | 依赖性强 |
DEB包 | .deb |
Debian, Ubuntu等 | Debian系专用 |
源代码包 | .tar.gz , .tar.bz2 |
全平台支持 | 需编译安装 |
二、RPM包管理
1. RPM包命名格式
coreutils-8.30-4.el7.x86_64.rpm
- coreutils: 软件名
- 8.30-4: 版本号
- el7: 发行版号(RHEL7)
- x86_64 : 处理器架构(
noarch
表示通用)
2. 查询命令
# 查询已安装包
rpm -qa # 列出所有已安装RPM包
rpm -q vsftpd # 检查特定包是否安装
rpm -qi vsftpd # 查看包详细信息
rpm -ql vsftpd # 列出包安装的所有文件
rpm -qf /path/to/file # 查看文件所属的包
# 查询未安装包
rpm -qpi /path/to/package.rpm # 查看未安装包的详细信息
rpm -qpl /path/to/package.rpm # 查看未安装包将释放的文件列表
3. 安装与卸载
# 安装
rpm -ivh package.rpm # 基础安装(显示进度)
rpm -ivh --nodeps package.rpm # 忽略依赖强制安装
# 卸载
rpm -e vsftpd # 卸载指定包
# 更新
rpm -Uvh new_package.rpm # 升级或安装
rpm -Fvh new_package.rpm # 仅升级已安装的包
三、YUM/DNF仓库管理
1. 配置YUM仓库
创建配置文件 /etc/yum.repos.d/server.repo
:
[base] # 仓库ID
name=Base Repository # 仓库描述
baseurl=file:///mnt/ # 本地路径(支持http/ftp)
enabled=1 # 启用仓库(1启用,0禁用)
gpgcheck=0 # 关闭GPG验证
2. YUM常用命令
yum install -y httpd # 安装软件包(-y自动确认)
yum remove -y httpd # 卸载软件包
yum update -y httpd # 更新指定包
yum list # 列出所有可用/已安装包
yum groupinstall "Development Tools" # 安装软件包组
yum groupremove "Development Tools" # 卸载软件包组
3. DNF命令
dnf install -y httpd # 安装
dnf remove -y httpd # 卸载
dnf update -y httpd # 更新
四、实践运用
1. rpm的使用
列出所有已安装RPM包

查看包是否安装

查看包的详细信息

列出包的所有文件

查看文件所属的包

查看未安装的包的的信息时,指定包的路径要明确

查看未安装的包的文件列表

安装

卸载

2. yum使用
首先要建立一个yum库
[root@xieyuhui yum.repos.d]# vim server.repo

安装


卸载
[root@xieyuhui /]# yum remove httpd -y

列出所有已安装包

安装软件包组

卸载软件包组

3. dnf的使用
dnf使用方法与yum相同,需要在网上寻找网络源(curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo)
[root@xieyuhui yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo