安装linux下安装软件需要安装一系列的rpm包,用rpm -ivh xx和yum install xx

如果用rpm安装软件包的时候,需要自己下载rpm安装包,如果rpm包不全总是提示依赖检查失败或者提示未知的错误,过程比较复杂。通过yum的命令安装会很方便,但是,很多公司的服务器是在内网中运行,就无法通过yum命令访问互联网中的仓库下载安装软件包。如果在本地配置yum源这样就可以在无法访问外网的情况下使用yum安装软件包。

准备

  • Httpd服务

搭建本地yum源需要httpd服务将安装包代理,能够通过http的方式访问

系统默认按照

有些服务器中会自带httpd服务,可以使用命令检查是否安装 httpd :

rpm -qa|grep httpd

如果默认按照的有就可以直接启动使用

systemctl start httpd 如果系统自带,默认启动

systemctl status httpd 检查 httpd 是否正常安装

systemctl enable httpd 设置 httpd 开机自启动

在线安装:

如果系统没有默认安装httpd服务,则需要自己安装,若允许服务器临时访问互联网,可以直接使用下面命令在线按照httpd

yum -y install httpd

安装完成之后启动,设置开机自启动

systemctl start httpd

systemctl enable httpd

离线安装:

若系统没有安装且服务器在任何情况下也无法访问互联网,就需要离线安装

安装步骤如下:

将httpd目录下的httpd按照包上传到服务器(共三个)

在服务器上进入到httpd按照包存放目录并执行插件安装命令

cd httpd

rpm -Uvh *.rpm --nodeps –force

启动:

systemctl start httpd启动

systemctl status httpd 检查 httpd 是否正常安装

systemctl enable httpd 设置 httpd 开机自启动

测试:

在服务器中的/var/www/html/目录下创建文件夹或文件,使用浏览器访问:httpd://服务器ip/创建的文件夹或目录

小技巧补充:

在linux中想离线安装软件又没有现成rpm安装包时且不清楚具体需要哪些安装包,如本文档中的httpd安装过程,服务器无法联网,而搭建本地yum源又必须要httpd软件,此时就不得不离线安装httpd,此时如果想快速找到需要的rpm安装包可以用如下方法就以本文的httpd安装过程为例:

  1. 在一台能够联网的linux服务器(vmware虚拟机即可),使用yum –y install httpd在线安装httpd服务,安装过程中会有日志打印,找到下载安装包的日志,这里会记录安装过程下载了哪些安装包,如下图所示这里一共下载了3个安装包:

    httpd-2.4.6-88.el7.centos.x86_64.rpm

    httpd-tools-2.4.6-88.el7.centos.x86_64.rpm

    mailcap-2.1.41-2.el7.noarch.rpm

  1. 找到linux服务器对应版本的Everything版ios镜像,在镜像压缩文件的Packages文件夹下搜索日志中出现的rpm安装包,Everything IOS中集成了所有的软件,所以一般都能够找到

  2. 找到所有需要的rpm安装包之后并上传到服务中,在服务器上就可以使用安装插件命令进行离线安装

    安装所有rpm包:rpm -Uvh *.rpm --nodeps –force

  • CentOS系统镜像文件

既然搭建本地的yum源,就需要所有的rpm安装包,centOS Everything ISO版镜像文件中包含了完整安装版的内容,并对其进行补充,集成了所有软件,因此只要下载Everything ISO版的CentOS镜像即可

CentOS下载地址:https://www.centos.org/download/

具体的下载方式可参考教程"从CentOS官网下载系统镜像详细教程",本文将采用CentOS 7.6来进行搭建,所以下载CentOS-7-x86_64-Everything-1810.iso镜像,因为包含了所有的软件包,可使用迅雷等下载工具

直接访问USA站点,这里面包含了所有的版本:http://archive.kernel.org/centos-vault/

下载好的centOS镜像文件:

安装createrepo&plugin

createrepo是linux下的创建仓库的软件包。

将createrepo和plugin的安装包上传到服务器

进入到上传文件夹安装全部插件

cd createpro\&plugin/

rpm -Uvh *.rpm --nodeps –force

创建索引

将上面下载的iso镜像文件CentOS-7-x86_64-Everything-1810.iso解压

将解压文件中的Packages目录单独打包

单独打包Packages是为了方便上传到linux服务器

压缩成tar.gz格式的是为了方便在linux上挤压

如果直接上传Packages文件夹也是可以的,但会花费很长时间,里面有上万个文件

将Packages.tar.gz解压到/var/www/html/centos7/1810-x86_64/Local目录下

mkdir -p /var/www/html/centos7/1810-x86_64/Local

tar -zxvf Packages.tar.gz -C /var/www/html/centos7/1810-x86_64/Local/

上传key和repldate配置信息文件

将iso镜像文件CentOS-7-x86_64-Everything-1810.iso中的RPM-GPG-KEY-CentOS-7文件和repodata文件夹上传到服务器的/var/www/html/centos7/文件夹下

所有文件上传完成之后可以在浏览器中通过http方式访问到刚才上传的文件

http://bigdata136.hdp.com/centos7/1810-x86_64/Local/Packages/

创建索引

cd /var/www/html/

createrepo centos7/

修改 centos 源文件

cd /etc/yum.repos.d/

cp CentOS-Base.repo centos7-local.repo

复制repo文件之后将系统自带的其他*.repo文件全部删除或者移动到其他地方,否则后期运行 yum makecache 会出错

修改centos7-local.repo

vi centos7-local.repo

将原来内容全部删除,添加下面内容

[centos7-base]

name=CentOS7-Base

baseurl=http://bigdata136.hdp.com/centos7/

gpgcheck=0

enabled=1

priority=1

#baserul是创建索引的路径,即执行命令createrepo centos7/的路径,

# gpgcheck=0

值为0 表示跳过下载的rpm包的校验,

如果值为1,则要再添加gpgkey变量来指向校验文件如:

gpgkey= http://bigdata136.hdp.com/centos7/RPM-GPG-KEY-CentOS-7

要保证上文件路径能够在浏览器中访问到

重新加载yum缓存

#清除全部缓存

yum clean all

#重新加载yum缓存

yum makecache

#查看yum缓存列表

yum repolist

修改其他服务器的yum源配置

Yum源搭建完成之后,相当于服务端,若让其他服务器在安装软件时使用该服务端则需要如下操作

在其他服务器中分别删除/etc/yum.repos.d/下的所有文件

rm -rf /etc/yum.repos.d/

拷贝yum源配置文件到其他服务器

scp -r /etc/yum.repos.d/ bigdata137.hdp.com:/etc/

在其他服务器上重新加载yum缓存

yum clean all

yum makecache

yum repolist

测试

安装一个软件试下是否能够正常安装

安装ftp客户端:

安装ntp时钟同步服务器

错误处理:

yum源搭建的成功与否可以在执行yum makecache看到,若执行这个命令时没有报错,一般情况下是搭建成功,若有错误,则说明 yum 源的配置有错误,需要根据错误信息修改,常见错误列举如下:

错误一:

http://bigdata136.hdp.com/centos7/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: bigdata136.hdp.com; Unknown error"

错误原因:

访问http://bigdata136.hdp.com/centos7/repodata/repomd.xml文件有错误,可能是忘记上传镜像文件中的repodata文件夹或在上传服务器是位置存放错误,必须要放到/var/www/html/centos7文件夹下

解决方法:

重新上传repodata文件夹,然后执行命令:

cd /var/www/html/

createrepo centos7/

执行重新加载yum缓存命令:

yum clean all

yum makecache

yum repolist

错误二:执行createrepo centos7/命令要在/var/www/html/执行

错误三:创建仓库文件夹路径错误

mkdir -p /var/www/html/centos7/1810-x86_64/Local

本文使用的是centOS7.6版本,安装软件包时会自动查找创建的仓库下的1810-x86_64/Local/Packages目录,如果使用其他版本有可能改路径会改变,所以要根据错误提示修改

linux配置本地yum源实现在局域网中在线安装软件包的更多相关文章

  1. linux 配置本地yum源,配置国内yum源,配置epel源

    目录 一.配置本地yum源 二.配置国内yum源和epel源 一.配置本地yum源 1.挂载ISO镜像 mount -o loop /mnt/yum-iso/CentOS-7-x86_64-DVD-1 ...

  2. Linux配置本地yum源

    最近在配置zabbix时,遇到CentOS 无法连接网络问题,搜索到一种配置本地yum源的方法,特此记录 一.联网安装预处理 配置缓存,修改/etc/yum.conf [main] cachedir= ...

  3. Linux 配置本地yum源

    Linux 配置无网络状态利用yum安装软件 在有网络的情况下安装软件只需一条yum install xxx命令,例如安装gcc只需一条指令:yum install gcc  那么在没有网络的情况下该 ...

  4. RedHat Linux RHEL6配置本地YUM源

    YUM是Yellow dog Updater Modified的简称,起初是由yellow dog这一发行版的开发者Terra Soft研发,用python写成,那时还叫做yup(yellow dog ...

  5. Linux虚拟机配置本地yum源

    刚开始使用Linux,自己构建了一个Linux虚拟机之后,在使用yum install的时候,经常是出错,提示连接不上. 一直以为是自己构建的虚拟机的问题,后来在网上查找了一些资料,才发现:需要配置本 ...

  6. Linux服务器redhat配置本地yum源

    前面给大家介绍了很多在Linux安装软件的知识,这些软件往往依赖了很多第三方的工具或者软件,如果在Linux服务器有外网的情况,咱们可以通过yum install这样的命令直接去安装这些相关的工具或者 ...

  7. CentOS7系统局域网内配置本地yum源解决cannot find a valid baseurl for repo

    一.     问题详情 因为服务器无法连接外网,所有直接用yum安装某些功能将受到影响,报错如下: Error: Cannot find a valid baseurl for repo: base ...

  8. 【linux配置】在VMware中为Redhat HAT配置本地yum源

    在VMware中为Redhat HAT配置本地yum源 今天准备使用CM安装大数据环境,到需要几台机器都使用同一套yum源才可以,所以想到将Redhat镜像文件拷贝到虚拟机中,在挂起使用,最后通过ht ...

  9. Linux挂载iso镜像、配置本地yum源

    Linux挂载iso镜像.配置本地yum源 1.备份原yum源配置文件 [root@localhost ~]# ll /etc/yum.repos.d/ [root@localhost ~]# mkd ...

  10. 红帽系列linux自行配置本地yum源

    yum是红帽系列的一种包管理工具,能方便的自动解决安装包的依赖关系.以前用rpm包管理安装gcc时,rpm -ivh gcc.rpm ,一般会提示要安装gcc需要安装某某lib库,等你找到那个库的rp ...

随机推荐

  1. CompareTest

    一.说明:Java中的对象,正常情况下,只能进行比较:== 或 != .不能使用 > 或 < 的 但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小. 如何实现? ...

  2. 齐博x1前台后台地址跳转的处理

    系统有三个入口,分别是 admin.php index.php member.php 所以就不能简单的使用TP默认的 url() 函数 而插件跟频道模块又有所不同,下面先讲解最基本的频道模块当中如何使 ...

  3. 6.pygame-搭建主程序

    职责明确 新建plane_main.py 封装主游戏类 创建游戏对象 启动游戏   新建plane_sprites.py 封装游戏中所有需要使用的精灵子类 提供游戏的相关工具 #plane_sprit ...

  4. 5.@pytest.mark.parametrize()数据驱动

    简介: pytest.mark.parametrize 是 pytest 的内置装饰器,它允许你在 function 或者 class 上定义多组参数和 fixture 来实现数据驱动. @pytes ...

  5. flutter 系列之:flutter 中的幽灵offstage

    目录 简介 Offstage详解 Offstage的使用 总结 简介 我们在使用flutter的过程中,有时候需要控制某些组件是否展示,一种方法是将这个组件从render tree中删除,这样这个组件 ...

  6. Day2:基本的Dos命令

    打开CMD的方式 开始+系统+命令提示符(右键以管理员身份运行可拿到最高权限) Win键+R 输入 cmd打开控制台(推荐使用) 桌面上按住shift+鼠标右键,打开powershell窗口 文件搜索 ...

  7. onps栈使用说明(1)——API接口手册

    1. 底层API 由协议栈底层提供的api,用于涉及底层操作的一些功能实现,这些api接口函数的原型定义分布于不同的文件,它们被统一include进了onps.h中: open_npstack_loa ...

  8. 我的Vue之旅 10 Gin重写后端、实现页面详情页 Mysql + Golang + Gin

    第三期 · 使用 Vue 3.1 + Axios + Golang + Mysql + Gin 实现页面详情页 使用 Gin 框架重写后端 Gin Web Framework (gin-gonic.c ...

  9. EventBridge助力阿里云视觉智能开放平台AI智能存储实践

    本文作者:李建,阿里巴巴达摩院技术专家. 01 视觉智能开放平台(VIAPI)业务场景介绍 阿里云视觉智能开放平台(简称 VIAPI),是基于之前很多技术实践经验积累的 AI 能力的沉淀平台.目前整个 ...

  10. 【Java集合框架002】原理层面:HashMap全解析

    一.前言 二.HashMap 2.1 HashMap数据结构 + HashMap线程不安全 + 哈希冲突 2.1.1 HashMap数据结构 学习的时候,先整体后细节,HashMap整体结构是 底层数 ...