当前位置: 首页 > news >正文

Linux应用程序架构与软件包管理

Linux应用程序架构与软件包管理

以下是对Linux应用程序组成及软件包管理(RPM/YUM/DNF)的清晰整理:


一、Linux应用程序组成

1. Linux命令 vs 应用程序
特性Linux命令应用程序
存放路径/bin, /sbin/usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
安装方式随操作系统安装需额外安装(等同于软件)
执行格式命令 + 选项 + 参数(标准化)格式由开发者定义(无固定格式)
界面字符界面可能包含图形界面
示例cd, echo, history(内部命令)Firefox, MySQL(提供独立功能)

  • 内部命令通过 help 查看列表(如 exit, source)。
  • 部分应用程序提供命令行工具(称为“程序命令”)。

2. 应用程序的组成
组件类型存放路径说明
可执行程序文件/usr/bin/普通用户可执行
管理程序/服务器程序/usr/sbin/仅管理员可执行
配置文件/etc//etc/应用名/多配置时创建同名子目录
日志文件/var/log/记录运行日志
参考文档/usr/share/doc/说明文档、示例等
Man手册/usr/share/man/执行文件及配置的帮助文档

3. 软件包封装类型
类型扩展名适用系统特点
RPM包.rpmRHEL, Fedora, SUSE等依赖性强
DEB包.debDebian, Ubuntu等Debian系专用
源代码包.tar.gz/.bz2所有Linux需编译安装

RPM包命名格式
coreutils-8.30-4.el7.x86_64.rpm

  • 软件名coreutils
  • 版本号8.30-4
  • 发行版.el7(RHEL 7)
  • 架构x86_64(64位)/ noarch(通用)

二、RPM包管理

1. 查询已安装的软件包
命令作用示例
rpm -qa列出所有已安装的RPM包rpm -qa | grep python3
rpm -qi <包名>查看软件包详细信息rpm -qi vsftpd
rpm -ql <包名>列出软件包安装的所有文件rpm -ql httpd
rpm -qf <文件路径>查看文件所属的软件包rpm -qf /etc/httpd/conf
rpm -q <包名>检查指定包是否安装rpm -q vsftpd
2. 查询未安装的RPM包
命令作用示例
rpm -qpi <包路径>查看未安装包的详细信息rpm -qpi /mnt/Packages/vsftpd.rpm
rpm -qpl <包路径>查看未安装包将释放的文件列表rpm -qpl /mnt/Packages/vsftpd.rpm
3. 安装/卸载/升级
操作命令说明
安装rpm -ivh <包路径>-i安装, -v详情, -h进度条
卸载rpm -e <包名>精确指定包名
升级rpm -Uvh <新包路径>已安装则升级,否则安装
强制操作rpm --force覆盖文件/版本
忽略依赖rpm --nodeps(谨慎使用)

示例

rpm -ivh /mnt/Packages/vsftpd-3.0.3.rpm  # 安装
rpm -e vsftpd                            # 卸载
rpm -Uvh /mnt/Packages/vsftpd-4.0.rpm    # 升级

三、YUM/DNF 仓库管理

1. 配置YUM仓库
  1. 创建仓库配置文件:
    vim /etc/yum.repos.d/server.repo
    
  2. 配置文件内容示例:
    [myrepo]                # 仓库ID
    name=My Repository      # 仓库描述
    baseurl=file:///mnt/    # 软件包路径(本地/USB/HTTP)
    enabled=1               # 启用仓库
    gpgcheck=0              # 不校验GPG签名
    
2. YUM 常用命令
操作命令说明
安装软件包yum -y install <包名>-y自动确认
卸载软件包yum -y remove <包名>
安装软件包组yum -y groupinstall "组名""Development Tools"
卸载软件包组yum -y groupremove "组名"
列出所有包yum list已安装 + 可用
列出软件包组yum group list
更新指定包yum update <包名>不指定包名则更新所有
3. DNF 命令(兼容YUM)
dnf -y install <包名>    # 安装
dnf -y remove <包名>     # 卸载
dnf -y update <包名>     # 更新

说明:DNF 是 YUM 的下一代替代工具,语法基本一致。

http://www.dtcms.com/a/302487.html

相关文章:

  • 【Linux】基本指令(2)
  • 未提交读的问题
  • 3. Socket 编程 TCP
  • 广播,数据库01 day43
  • JVM垃圾收集算法和垃圾收集器
  • 阿里云通义灵码深度解析:AI编程时代的技术革命与实践探索
  • 基于Hadoop3.3.4+Flink1.17.0+FlinkCDC3.0.0+Iceberg1.5.0整合,实现数仓实时同步mysql数据
  • 如何在 Ubuntu 24.04 或 22.04 Linux 上安装和使用 NoMachine
  • python导包机制-更优方式
  • 新华三H3CNE网络工程师认证—Telnet
  • 《 服务注册发现原理:从 Eureka 到 Nacos 的演进》
  • 7、Docker 常用命令大全
  • Python + Requests库爬取动态Ajax分页数据
  • Qt:盒子模型的理解
  • WebSocket双向通信——引入进行功能优化
  • opencv学习(轮廓检测)
  • ACL 访问控制列表全解析:从规则语法到实战配置
  • 旧物回收小程序:科技赋能,让旧物回收焕发生机
  • Avalonia的自定义边框窗口
  • React中为甚么强调props的不可变性
  • TMS320F2812PGFA TI:150MHz工业级DSP控制芯片,电机控制专用
  • 腾讯AI IDE
  • 天学网面试 —— 中级前端开发岗位
  • 动/静态库的原理及制作
  • 测试用例设计常用方法
  • MR-link-2:多效性顺式孟德尔随机化分析!
  • Windows 系统分辨率切换** 与 **Qt4 无边框窗口管理机制** 的交互
  • 2025年7月21–28日AI开发周报:新模型、新战略与开源亮点
  • 全新AI工具小程序源码 全开源
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十二天-模拟未通过,继续准备自我介绍项目介绍面试题中