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

安装软件的三种方式

  • 下载源码编译安装
    • 可以实现自定义安装目录和参数调整
    • 可以指定版本安装
    • 在其他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越小越大

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值