本文主要是介绍RedHat8 服务安装(编译、rpm、dnf),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
安装软件的三种方式
- 下载源码编译安装
- 可以实现自定义安装目录和参数调整
- 可以指定版本安装
- 在其他2个方法无法安装的情况下可以编译安装(解决兼容性)
- 需要自己解决依赖关系
- 下载rpm包安装
- 需要下载对应系统的rpm包,也就是已经编译好的软件包
- 需要自己解决依赖关系
- yum联网安装(RedHat8改名为dnf)
- 需要配置对应系统的yum源(阿里云、163、清华)
- 自动解决依赖安装
- 可以配置多资源的库(资源更多)
源码编译安装服务
需要把源码文件翻译成计算机能识别的二进制文件,再进行安装
- 下载源码文件并解压(软件官网下载,INSTALL与README文件介绍了软件安装和注意事项)
- 执行./configure 生成Makefile文件
在编译之前需要知道当前系统环境,比如标准库在哪里、软件的安装位置在哪里、需要安装哪些组件等等, 也可以通过制定参数,使编译器变得灵活,而configure就是一个脚本文件。 - 执行make clean;make
make clean是为了清除上次的目标文件防止编译错误(可以忽略),make会读取Makefile文件,将源码编译成二进制文件,并存放在当前目录下 - 执行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创建repodatavi /etc/yum.repos.d/local.repo
[localbase]
name=local file base
baseurl=file:///mysql
enable=1
gpgcheck=0yum clean all
安装mysql服务,依赖包已经自动关联下载安装
yum源优先级设置
由于yum源配置可以配置多个,我自己配置本地和自带的源,如何才能让本地源优先,默认官方源的顺序要高于第三方源
vi /etc/yum.repos.d/local.repo
priority=1
#添加优先级参数,1-99越小越大
这篇关于RedHat8 服务安装(编译、rpm、dnf)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!