RedHat8 服务安装(编译、rpm、dnf)

2023-05-16

安装软件的三种方式

  • 下载源码编译安装
    • 可以实现自定义安装目录和参数调整
    • 可以指定版本安装
    • 在其他2个方法无法安装的情况下可以编译安装(解决兼容性)
    • 需要自己解决依赖关系
  • 下载rpm包安装
    • 需要下载对应系统的rpm包,也就是已经编译好的软件包
    • 需要自己解决依赖关系
  • yum联网安装(RedHat8改名为dnf)
    • 需要配置对应系统的yum源(阿里云、163、清华)
    • 自动解决依赖安装
    • 可以配置多资源的库(资源更多)

源码编译安装服务

需要把源码文件翻译成计算机能识别的二进制文件,再进行安装

  1. 下载源码文件并解压(软件官网下载,INSTALL与README文件介绍了软件安装和注意事项)
  2. 执行./configure 生成Makefile文件
    在编译之前需要知道当前系统环境,比如标准库在哪里、软件的安装位置在哪里、需要安装哪些组件等等, 也可以通过制定参数,使编译器变得灵活,而configure就是一个脚本文件。
  3. 执行make clean;make
    make clean是为了清除上次的目标文件防止编译错误(可以忽略),make会读取Makefile文件,将源码编译成二进制文件,并存放在当前目录下
  4. 执行make install 执行二进制安装软件

编译安装wget

  • 官网下载源码包上传系统https://ftp.gnu.org/gnu/wget/
tar -zxvf wget2-1.99.2.tar.gz
  • 安装基本编译环境和依赖库
yum -y install gcc gcc-c++ \
automake zlib zlib-devel openssl openssl--devel pcre pcre-devel
#gcc gcc-c++ 为语言编译环境
#其他都是依赖库
  • ./configure
mkdir -p /usr/local/wget
./configure --prefix=/usr/local/wget/
#指定安装路径
#相关参数可以查看 cat INSTALL
#注意最后检查结果是否出现错误提示,并解决,再次运行make clean && make
  • make && make install
make && make install
#make运行错误就不会执行后面语句

编译安装遗留问题

  • 运行wget
/usr/local/wget/bin/wget2 http://ftp.gnu.org/gnu/wget/wget2-1.99.2.tar.gz
#需要使用绝对路径,解决办法就是用户加环境变量或者软连接
ln /usr/local/wget/bin/wget2 /usr/bin/wget2
wget2的软连接到用户有环境变量的路径下
  • 无法通过systemctl命令管理

由于wget2 只是命令而已,不是一个后台运行服务,如果安装nginx服务就需要添加管理

cd /usr/lib/systemd/system/
#目录下编写systemctl管理文件

rpm包安装服务

RPM 是 Red Hat Package Manager 的缩写,Red Hat 软件包管理,包里有二进制文件程序,也就是帮我们完成了前面编译步骤,我们只要安装即可。

  • rpm包下载(https://pkgs.org/,或者官网下载)
    rpm包需要下载匹配系统版本的包,比如centos7或者6(原因就是rpm包的编译环境就是基于这个系统环境)
  • 解决包依赖问题,可以根据提示下载,但是效果会被整死,一个套一个依赖,常见就是下载好全部包和依赖一次性上传后安装

RPM常用命令

  • 命令格式:rpm 【参数】 软件包
rpm -ivh xxx #安装软件包
rpm -qa | grep xxx  #查看已经安装的软件
rpm -e xxx  #卸载软件
-u #升级软件包
--force #强制安装和升级(强制版本安装)
--nodeps #忽略检查依赖

联网yum方式安装服务

编译和rpm方式都是基于离线安装,针对的场景都是一些特殊环境没有外网的环境下,而一般外网都是有的,这样就可以通过yum管理方式安装

  • yum是基于rpm包管理方式,8的版本改成dnf命令,使用还是一样
  • 不要考虑去哪里找安装包
  • 不要考虑依赖关系
  • 支持多源配置
  • 支持部署离线yum源库

所有的前提是有外网和配置好dns解析

RedHat8的yum软件仓库

8的版本引入了一种新的结构来管理软件内容,所有的软件内容被划分成了两个repository

  • BaseOS:OS系统的基础组建,提供的是RPM形式的包(库文件、开发环境包等)
  • AppStream:给定用户空间中运行的所有应用程序(mysql、nginx等),并提供2种形式的内容
    • RPM形式的独立的软件包
    • Modules形式的包集合,一个典型的modules包含应用,依赖库,文档库,帮助组件等
  • repodata:目录里面包含了一个以 .xml结尾的文件,这个文件是yum索引文件,包含了rpm包的一些信息,比如依赖关系这些的(2个目录下各自生成repodata)
    在这里插入图片描述

yum配置文件

文件必须以.repo后缀

  • 【】:容器名称(随意),但不能出现相同
  • name:容器的一个备注说明
  • baseurl:也就是软件包下载地址,地址可以是https://、ftp://、file://
  • gpgcheck:GPG是加密和数字签名的免bai费工具,大多用于加密信息的传递
  • gpgkey:GPG的加密KEY
  • enable:是否启用
    在这里插入图片描述

配置本地镜像源

mount /dev/cdrom /mnt
#挂载本地iso镜像

vi /etc/yum.repos.d/local.repo
[localbase]
name=local file base
baseurl=file:///mnt/BaseOS
enable=1
gpgcheck=0

[localapp]
name=local file app
baseurl=file:///mnt/AppStream
enable=1
gpgcheck=0
#没有开启gpg所以key就不要写了

yum clean all
yum list

在这里插入图片描述

同样也可以配置阿里云的源、清华源等等
阿里:https://developer.aliyun.com/mirror/

配置本地自建源

有时候针对场景不同,使用软件的版本也不同,这个时候就需要固定软件版本等一些需求存在,只能自己找rpm包搭建自己的源

  • 找到软件包和依赖包,放到固定目录下
  • createrepo创建repodata目录文件
  • 创建配置文件
mkdir /mysql
yum install --downloadonly --downloaddir=/mysql mysql
#可以借助yum下载服务包和依赖包

yum install -y createrepo
createrepo /mysql
#通过createrepo创建repodata

vi /etc/yum.repos.d/local.repo
[localbase]
name=local file base
baseurl=file:///mysql
enable=1
gpgcheck=0

yum clean all

在这里插入图片描述

安装mysql服务,依赖包已经自动关联下载安装

yum源优先级设置

由于yum源配置可以配置多个,我自己配置本地和自带的源,如何才能让本地源优先,默认官方源的顺序要高于第三方源

vi /etc/yum.repos.d/local.repo
priority=1
#添加优先级参数,1-99越小越大

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RedHat8 服务安装(编译、rpm、dnf) 的相关文章

  • Centos7离线rpm安装MySQL-5.7.29【推荐】

    Centos7离线rpm安装MySQL 5 7 29 一 彻底卸载系统原装的MySQL 1 查找mysql进程 如果查到的结果不为空 xff0c 则进入第2步卸载mysql rpm qa grep i mysql 2 卸载mysql 停止m
  • Linux软件包的安装(rpm+yum)

    概述 xff1a 1 rpm软件包管理命令 软件包的获取 a 光盘镜像中有很多软件包可以使用 xff1a 先挂载光盘 xff0c 再查看软件包 b 从软件的官网获取 rpm 安装rpm包 ipm ivh 软件包名称 删除rpm包 ipm e
  • rabbitmq安装(rpm方式)

    rabbitmq 1 准备资料2 安装3 常用操作命令 1 准备资料 1 erlang 23 0 2 1 el7 x86 64 2 rabbitmq server 3 8 4 1 el7 noarch 3 centos7 RabbitMQ的
  • 在Ubuntu上安装RPM包

    Ubuntu 存储库包含数千个 deb 软件包 可以从 Ubuntu 软件中心或使用apt命令行实用程序 Deb 是所有基于 Debian 的发行版 包括 Ubuntu 都使用的安装包格式 有些软件包在标准 Ubuntu 存储库中不可用 但
  • 2021年5月19日 Centos8 安装yapi 全过程 亲自实践有效

    环境要求 centos8 nodejs 7 6 mongodb 2 6 安装nodejs 有一个前期 确保你的yum是可以用的 yum module list nodejs sudo yum module install nodejs no
  • centos8 安装notepadqq

    yum install epel release yum install snapd systemctl enable now snapd socket snap install notepad plus plus yum install
  • rpm -ivh 解释

    rpm ivh解释 i install 安装软件包 v view 可视化 h hour 方便自己记忆 显示安装进度 简单来讲就是 可视化并显示进度地 安装软件 nodeps 不验证软件包的依赖 RPM 是 LINUX 下的一种软件的可执行程
  • DNF搭建服务器服务端搭建教程

    DNF搭建服务器服务端搭建教程 我是艾西 今天给大家分享下怎么样自己搭建一个DNF 前阵子体验了下其他GM搭建的服 那么对于自己搭建的好处在于出道即巅峰 想要什么武器就是一串代码命令的事情 下面我跟大家说一下需要准备那些东西 DNF服务端
  • 如何比较 python 中的 Rpm 版本

    我试图找出如何比较 RPMS 当前安装 和 在本地存储库中可用 的 2 个列表 并查看哪些 RPMS 已过期 我一直在修改正则表达式 但是 RPMS 有很多不同的命名标准 我无法找到一个好的列表来使用 我的驱动器上没有实际的 RPMS 所以
  • 使用 Yum 指定可重定位 RPM 的安装位置

    我使用此网站中的说明创建了一个可重定位的 RPM http www cyberciti biz faq rpm relocatable packages 这意味着我可以使用以下命令将包安装到其默认位置 opt app rpm ivh myp
  • 使用 rpm 或 yum 删除多个软件包

    我被允许访问安装了 50 多个 php rpm 的服务器 我正在尝试将它们全部删除 基本上 我试图结合这两个命令 rpm qa grep php and rpm erase 我对管道和重定向有所了解 但我不知道如何将它们用于此目的 请帮忙
  • 配置文件的 Rpm 升级处理

    我正在使用 rpm upgrade 命令 并注意到 rpm 有不同的方式来处理修改的配置文件 因此它不会在升级过程中丢失 据我了解 如果修改了配置文件并使用 rpm U 升级了软件包 rpm 会将原始属性文件重命名为 file rpmsav
  • RPM 的名称-版本-发布的规则是什么?

    想象一个名为abc 123 1 x86 rpm 我发现其中有一个错误 但我不知道如何命名new包裹 Maybe abc 123 2 x86 rpm 但是如果有一个怎么办xyz rpm依赖于取决于abc 123 1 Maybe abc 123
  • 如何使 cpack 不向 RPM 添加所需的库?

    我正在尝试将工作中的构建系统转换为 cmake 但它生成的 RPM 通过 cpack 遇到了一个有趣的问题 它会自动将它认为您的 RPM 具有的所有依赖项添加到其所需的列表中图书馆 总的来说 这很好 但对我来说 这是灾难性的 不幸的是 我们
  • 从已安装的 rpm 重新打包 rpm

    在 Linux 上我们可以重新打包已安装的 rpm 如果可以的话如何 我记得可以从已安装的二进制文件生成 rpm rpm gt my rpm 另外 即较新的 rpm 应该在不同的机器上工作 还有rpmrebuildhttp rpmrebui
  • 如何从开源 Hadoop 或公开可用的 HDP 源代码构建由 ambari 安装的 deb/rpm 存储库

    我正在尝试安装开源 hadoop 或从源代码构建 HDP 以由 ambari 安装 我可以看到 可以使用 apache repos 中提供的文档为每个组件构建 java 包 但是我如何使用这些包来构建由 hortonworks 提供的 rp
  • 构建 RPM 以仅安装文件

    我需要构建一个 RPM 其唯一目的是安装一些字体 我已经阅读了一些关于此的教程 但是每个人似乎都提出了不同的建议 并且我无法找到类似非常基本的设置之类的东西来做到这一点 是否可以只引用其中的文件 files规范部分 但是我尝试过 RMP总是
  • LSB 中是否有 RPM 文件命名约定?

    RPM 是 LSB 中的包格式 但 LSB 是否强制 RPM 的任何命名标准 类似于 http www rpm org max rpm ch rpm file format html http www rpm org max rpm ch
  • 如果specfile中的某些条件不满足,如何中止rpm包的安装?

    还有一些事情Requires标签不满足 所以我写了一个脚本来验证这些东西 但是我把它们放在哪里呢 如果没有找到 那么我想退出安装 提示用户在尝试再次安装此 rpm 之前执行这些步骤 writing exit 1 in installtag
  • 当安装的 RPM 取代了另一个 RPM 时如何检测升级

    RPM scriptlet 被传入 1 https fedoraproject org wiki Packaging Scriptlets rd Packaging ScriptletSnippets Syntax 操作完成后 系统中将保留

随机推荐

  • JWT生成私钥和公钥

    JWT令牌生成采用非对称加密算法 1 生成密钥证书 下边命令生成密钥证书 xff0c 采用RSA 算法每个证书包含公钥和私钥 keytool genkeypair alias xckey keyalg RSA keypass xuechen
  • 浏览器中Local Storage和Session Storage的区别

    Local Storage xff1a 数量空间没有限制 xff0c 只要硬盘空间较大 xff0c 可以一直存 Session Storage xff1a 是一个会话存储对象 xff0c 在Session Storage中保存的数据只能在同
  • win10 MongoDB启动失败 Error: couldn't connect to server 127.0.0.1:27017, connection attempt faile

    1 我的MongoDB安装路径 2 创建配置文件mongo conf xff0c 文件内容如下 xff1a 数据库路径 dbpath 61 d MongoDB Server 3 4 data 日志输出文件路径 logpath 61 d Mo
  • "docker build"requires exactly 1 argument

    例如运行 xff1a docker build t xc govern center 1 0 SNAPSHOT 后面的这个 前面是有个空格的
  • PyCharm 快捷键

    ctrl 43 alt 43 s xff1a 打开软件设置 ctrl 43 d xff1a 复制当前行代码 shift 43 alt 43 上 下 xff1a 将当前行代码上移或下移 ctrl 43 shift 43 f10 xff1a 运
  • Python进阶

    1 Ubuntu操作系统 Linux主要目录 xff1a xff1a 根目录 bin xff1a 可执行二进制文件的目录 ect xff1a 系统配置文件存放的目录 home xff1a 用户家目录 2 linux命令 查看目录命令 命令说
  • Python+tkinter应用程序设置背景图片

    功能描述 xff1a 设计tkinter应用程序 xff0c 为窗口和组件设置背景图片 参考代码 xff1a 运行效果 xff1a 董付国老师Python系列图书 友情提示 xff1a 不建议购买太多 xff0c 最好先通过京东 当当 天猫
  • git学习

    1 git和svn的区别 svn是集中式版本控制系统 xff0c 版本库是集中放在中央服务器的 xff0c 而工作的时候 xff0c 用的都是自己的电脑 xff0c 所以首先要从中央服务器得到最新的版本 xff0c 然后工作 xff0c 完
  • git常用命令

    1 git下载完后 xff0c 必须要设置签名 xff0c 否则无法提交代码 2 C Users 12131 gitconfig 文件里可以查看到设置的信息 3 签名的作用 xff1a 区分不同操作者身份 xff0c 用户的签名信息在每一个
  • GitHub上 README 增加图片标签

    hey Guys 你可能遇到的GitHub上好的项目都有一个非常棒的README xff0c 其中不乏用到一些非常好看的标签 比如下面这样 xff1a walle fastjson 那我们怎样自己添加一个高大上图片标签呢 xff1f 比如我
  • 树莓派上使用 Gstreamer做视频推流

    树莓派使用Gstreamer进行视频推流 最近在研究如何使用树莓派进行视频推流推送到云端 进行了各种比较尝试后 xff0c 认为使用Gstreamer比较好 xff0c 主要的一点就是想利用Gstreamer的硬件加速 在使用ffmpeg的
  • geoserver jms集群部署

    1 集群节点运行架构图 官网集群介绍 xff1a https docs geoserver org latest en user community jms cluster index html 节点之间通过jms消息通信 xff0c A节
  • linux smb配置 不修改git权限

    root 64 localhost cat etc samba smb conf map archive 61 no map hidden 61 no map read only 61 no map system 61 no store d
  • luogu P1185 绘制二叉树

    题目大意 绘制一棵给定的二叉树 解题思路 模拟即可 代码比较乱 include lt cstdio gt include lt cstdlib gt include lt cstring gt const int MAXN 61 12 第i
  • shell 自动化运维

    1 shell 基础知识 1 shell是一个程序 xff0c 文件路径 xff1a bin bash xff0c 是一个命令解释器 xff0c 所有的linux命令都由它来执行 打开终端 xff0c 就进入了shell交互式命令 2 sh
  • 递归求鸭子数

    一个人赶着鸭子去每个村庄卖 xff0c 每经过一个村子卖去所赶鸭子的一半又一只 这样他经过了七个村子后还剩两只鸭子 xff0c 问他出发时共赶多少只鸭子 xff1f 经过每个村子卖出多少只鸭子 xff1f span style color
  • 【STM32】基于STM32F407寄存器方式点亮LED流水灯

    目录 一 STM32F4寄存器介绍二 通过寄存器方式点亮流水灯1 硬件设计2 软件设计3 烧录验证 三 原理阐述1 使能IO口时钟2 初始化IO口模式3 操作IO口 xff0c 输出高低电平 四 总结五 参考 本文使用 原子STM32F40
  • Python+tkinter+pillow实现屏幕任意区域截图

    基本思路 xff1a 首先获取并显示全屏幕截图 xff0c 然后在全屏幕截图上响应鼠标左键按下和抬起事件 xff0c 最后进行二次截图 import tkinter import tkinter filedialog import os f
  • iOS瀑布流

    WaterFallFlow 瀑布流Demo 使用UICollectionView实现瀑布流 自定义UICollectionViewLayout中的主要代码 xff1a YJWaterFlowLayout h中代码 span class hl
  • RedHat8 服务安装(编译、rpm、dnf)

    安装软件的三种方式 下载源码编译安装 可以实现自定义安装目录和参数调整可以指定版本安装在其他2个方法无法安装的情况下可以编译安装 xff08 解决兼容性 xff09 需要自己解决依赖关系 下载rpm包安装 需要下载对应系统的rpm包 xff