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

九-2、Rocky Linux软件包管理与安装 学习笔记

1. DNF的rocky linux管理

DNF: Dandified YUM,基于RPM的Linux软件包管理器,是YUM的下一代版本。
Dnf命令和yum命令兼容,依然使用yum仓库。

dnf module在软件安装上更方便,可以通过dnf module install 在安装软件时指定安装的版本,默认dnf install安装时,优先安装软件仓库中最新版本,有了dnf module install 之后可以在不同软件版本之间切换。

2. 源码安装的步骤

详解源码安装3把斧 配置(configure)、编译(make)、安装(make install)

./configure

a. 指定安装路径,例如 --prefix=/usr/local/nginx
b. 启用或禁用某项功能, 例如 --enable-ssl,–disable-filter
c. 和其它软件关联,例如–with-pcre --with-http_ssl_module
d. 检查安装环境,例如是否有编译器gcc,是否满足软件的依赖需求
最终生成:Makefile

make -j 4 #把源代码文件编译成可执行的二进制文件,按Makefile文件编译,可以使用-j 4指定4核心CPU编译,提升速度

make install #按Makefile定义的文件路径安装

make clean //清除上次的make命令所产生的object和Makefile文件。

3. Sample:下载安装Nginx源码

当然,以下是每个命令的详细说明以及它们在 Rocky Linux 系统中执行的功能:

1. 下载 Nginx 源码包

wget https://nginx.org/download/nginx-1.26.1.tar.gz
  • wget 是一个网络下载工具,用于从指定的 URL 下载文件。
  • https://nginx.org/download/nginx-1.26.1.tar.gz 是 Nginx 版本 1.26.1 的源码压缩包的下载链接。
  • 此命令将 Nginx 1.26.1 源码包下载到当前目录。

2. 解压缩下载的源码包

tar zvxf nginx-1.26.1.tar.gz
- `tar` 是一个用于处理 tar 文件的工具。`tar` 文件通常是打包的归档文件,可以包含多个文件和目录。
- 选项 `z` 表示使用 gzip 压缩进行解压。
- 选项 `v` 表示详细模式,显示解压过程中的文件名。
- 选项 `x` 表示解压文件。
- 选项 `f` 表示指定文件名(这里是 `nginx-1.26.1.tar.gz`)。
- 此命令将 `nginx-1.26.1.tar.gz` 文件解压缩到一个名为 `nginx-1.26.1` 的目录中。

3. 进入解压后的源码目录

cd nginx-1.26.1
- `cd` 是 change directory 的缩写,用于切换当前工作目录。
- 此命令将当前工作目录切换到 `nginx-1.26.1` 目录中。

4. 配置 Nginx 源码

./configure
- `./configure` 是一个脚本,用于检查系统环境并生成适合当前系统的 Makefile 文件。
- `configure` 脚本会检测系统的库、编译器和其他依赖项,并设置编译选项。
- 该命令会生成一个用于编译 Nginx 的 Makefile。

5. 编译 Nginx 源码

make
- `make` 是一个自动化构建工具,用于根据 Makefile 中定义的规则进行编译。
- 该命令会读取 `configure` 生成的 Makefile,并编译 Nginx 源码,生成二进制文件。

6. 安装 Nginx

make install
- `make install` 是 `make` 的一个目标,用于将编译好的文件复制到系统的安装目录。
- 该命令会根据 Makefile 中的安装规则,将 Nginx 安装到默认位置(通常是 `/usr/local/nginx`)。

总结,这些命令的执行步骤如下:

  1. 从 Nginx 官方网站下载源码包。

  2. 解压缩下载的源码包。

  3. 进入解压后的源码目录。

  4. 配置源码以适应当前系统环境。

  5. 编译源码以生成可执行文件。

  6. 安装生成的可执行文件到系统目录。

  7. 删除源码包

安装时,在configure步骤添加一个: --prefix 参数
这样删除或备份时,直接对删除–prefix指定的安装目录操作就可以了

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • CTF-pwn-虚拟化-vmmware 前置
  • Study--Oracle-07-ASM相关参数(三)
  • 钉钉 ai卡片 stream模式联调
  • 三星Unpacked发布会即将举行:有新款折叠屏手机,还有智能戒指
  • 3W单声道关断模式音频功率放大器AD4150B
  • 如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
  • springboot+vue+mybatis高校宿舍管理系统+PPT+论文+讲解+售后
  • 学习笔记 韩顺平 零基础30天学会Java(2024.7.24)
  • docker 运维查看指定应用log文件位置和名称
  • 设计模式-抽象工厂
  • Ansible的脚本-----playbook剧本【上】
  • org.springframework.context.annotation.ImportSelector的作用是什么?
  • 【数据结构】单链表面试题(Java + 力扣 + 详解)
  • Harmony Next -- 图片选择库:宫格展示、全屏预览
  • 生成对抗网络(Generative Adversarial Network,简称GAN
  • canvas绘制圆角头像
  • css的样式优先级
  • Fundebug计费标准解释:事件数是如何定义的?
  • input的行数自动增减
  • JavaScript 基本功--面试宝典
  • nodejs:开发并发布一个nodejs包
  • node入门
  • October CMS - 快速入门 9 Images And Galleries
  • PAT A1120
  • PHP CLI应用的调试原理
  • scrapy学习之路4(itemloder的使用)
  • 安卓应用性能调试和优化经验分享
  • 构建二叉树进行数值数组的去重及优化
  • 关于 Cirru Editor 存储格式
  • 后端_ThinkPHP5
  • 简单基于spring的redis配置(单机和集群模式)
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 码农张的Bug人生 - 初来乍到
  • 前端js -- this指向总结。
  • 前端路由实现-history
  • 山寨一个 Promise
  • 听说你叫Java(二)–Servlet请求
  • 正则与JS中的正则
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • ​linux启动进程的方式
  • # dbt source dbt source freshness命令详解
  • # 数仓建模:如何构建主题宽表模型?
  • #vue3 实现前端下载excel文件模板功能
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (分布式缓存)Redis哨兵
  • (三)模仿学习-Action数据的模仿
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)ObjectiveC 深浅拷贝学习
  • ***通过什么方式***网吧
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET MVC第三章、三种传值方式
  • .NET 项目中发送电子邮件异步处理和错误机制的解决方案