Linux应用程序基础
目录
3.3 DNF包管理器(openEuler默认,替代yum)
1.1 命令 vs 应用程序
| 对比维度 | Linux系统命令 | 应用程序(软件) |
| 来源 | 系统自带基础组件 | 独立业务软件(Nginx、MySQL) |
| 存放 | /bin、/sbin | /usr/bin、/usr/sbin、/usr/local/* |
| 界面 | 仅字符CLI | CLI、GUI都支持 |
3.1.2 FHS标准:应用程序文件分布
- /usr/bin:存放普通可执行程序,供普通用户运行
- /usr/sbin:存放管理员服务程序,需以 root 身份运行
- /etc:存放配置文件,修改后需重启程序方可生效
- /var/log:存放日志文件,用于排查故障
- /usr/share/doc:存放软件文档
- /usr/share/man:存放 man 帮助手册
3.1.3 软件包4种封装
- RPM:openEuler/RHEL使用,二进制包,工具rpm/dnf
- DEB:Ubuntu/Debian使用
- 源代码包(.tar.gz):原始源码,需要gcc编译,可以定制功能
- 自包含安装包:自带依赖,小众软件使用
3.2 RPM软件包管理
RPM包命名格式
lynx‑2.8.9‑20.oe2403.x86_64.rpm
- noarch:跨架构,脚本类包
rpm核心命令
| 命令 | 作用 |
| rpm -q 包名 | 查询是否已安装 |
| rpm -qa | 列出全部已安装包 |
| rpm -qi 包名 | 查询 已安装软件包的详细信息(软件名、版本、描述等),参数写 软件名 |
| rpm -qpi xxx.rpm | 查询未安装的RPM包文件 的详细信息,参数写 rpm完整文件路径 |
| rpm -ql 包名 | 查看安装生成哪些文件 |
| rpm -qf 文件路径 | 反向查询:这个文件属于哪个rpm包 |
| rpm -qlp xxx.rpm | 查看未安装rpm包里包含哪些文件 |
| rpm -ivh xxx.rpm | 安装本地rpm包 |
| rpm -Uvh xxx.rpm | 升级,没装就安装 |
| rpm -Fvh xxx.rpm | 仅升级已存在软件 |
| rpm -e 软件名 | 卸载软件 |
- rpm -qi 软件名:操作对象是系统里已经安装好的包,输入软件名字;读取本地RPM数据库。
- rpm -qpi 完整包路径.rpm:操作对象是磁盘上还没有安装的rpm文件,要写完整文件路径,不访问系统rpm数据库。
3.3 DNF包管理器(openEuler默认,替代yum)
dnf常用命令
| 命令 | 功能 |
| dnf list 软件名 | 查看安装状态和仓库版本 |
| dnf info 软件名 | 软件详情 |
| dnf search 关键词 | 搜索软件 |
| dnf install -y 软件 | 安装软件,-y自动确认 |
| dnf update [软件名] | 升级指定软件;不带名字升级全部系统软件 |
| dnf remove -y 软件名 | 卸载软件,自动检查依赖风险 |
| dnf groupinstall "Development Tools" | 安装开发工具组(gcc、make等) |
3.4 源代码编译安装(四步)
dnf install -y gcc make pcre-devel zlib-devel openssl-devel
标准四步流程
- 解包:
进入源码目录tar -zxvf xxx.tar.gz - 配置 ./configure
- 不编译;检测系统依赖;生成Makefile
- --prefix=/xxx 指定安装目录,方便卸载
- --with‑xxx_module开启模块,--without‑xxx关闭模块
- 报错:error:xxx not found → dnf安装缺失devel库
- 编译 make [-j N]
- 调用gcc,把.c源码编译成二进制;‑j 4开启4核并行编译加速
- 安装 make install
- 不编译! 复制编译好的二进制、配置文件到prefix目录
tar -zxvf nginx‑1.26.2.tar.gz
cd nginx‑1.26.2
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module
make -j4
make install
#卸载:rm -rf /usr/local/nginx
3.5 三种安装方式选型对比
| 方式 | 优点 | 缺点 | 适用场景 |
| rpm本地安装 | 无需网络 | 手动处理依赖,麻烦 | 离线无外网服务器 |
| dnf install | 自动解决依赖,简单稳定 | 版本跟随官方仓库,不能自定义模块 | 日常生产首选,标准化部署 |
| 源码编译 | 自定义模块、新版本、适配特殊硬件 | 步骤多,要装编译环境,无包数据库 | 定制Nginx/Redis、鲲鹏架构、需要修改源码 |
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐



所有评论(0)