centos7离线安装软件和软件包组
需求:
- 在一个只有内网的服务器中安装某些需要进行源码编译的软件,并且该软件具有大量的依赖,最坑的是服务器只安装了基本的软件,现在需要手动将Development Tools软件包组安装到该服务器,然后完成所需软件的编译安装。
常用的离线安装软件的方法:
- 使用源码编译安装
缺点:太麻烦,各种失败 - RPM包安装方式,在http://rpmfind.net/找到需要的包,然后rpm -ivh rpm包名 安装
缺点:如果软件依赖的包太多,太繁琐 - 使用具有相同环境的主机导出安装包,然后在离线服务器进行安装
缺点:需要有相同版本的联网主机,可以用Docker搞
对于需求来说,第三种方式比较适合
以下是在相同版本联网主机导出单个软件(比如:vsftpd)及其依赖包的方法:
在联网上执行如下命令:
# 安装yum-plugin-downloadonly插件
yum install -y yum-plugin-downloadonly
# 把vsftpd换成你想要的包名,该命令将软件所有包下载到指定的文件夹中,即使这些包已经安装过
yum install --downloadonly --downloaddir /tmp/vsftpd/ vsftpd
将所有RPM包拷贝到内网服务器上安装既可。如果安装过程中提示xxx已安装是否需要覆盖,全部选否。
该工具并不适用于 yum groupinstall 。默认情况下,这个插件将会下载仓库中最新可用的软件包,可以通过指定版本号来下载某个特定的软件版本。
以下是在相同版本联网主机导出软件包组(比如:Development Tools)的方法:
# 安装yum-utils
yum install yum-utils
#下载软件但不下载依赖包
yumdownloader httpd
#下载软件同时也下载依赖包
yumdownloader --resolve --destdir=/root/mypackages/ httpd
不像 Downloadonly 插件,Yumdownload 可以下载软件包组。
yumdownloader "@Development Tools" --resolve --destdir /data/yum-pkgs/dev-tools/
yumdownloader --resolve --destdir=/data/yum-pkgs/createrepo/ createrepo
yumdownloader --resolve --destdir=/data/yum-pkgs/yum-utils/ yum-utils
虽然我们拿到了所有的包,但是还存在一个问题,大量的包(几十个或更多)如何快速的安装?
解决方法:在内网主机配置自己的软件源,并建立自定义的软件包组
先将从所有包上传到内网主机/data/yum-pkgs目录,然后将createrepo和yum-utils使用rpm命令安装到内网主机
#创建源
createrepo -v /data/yum-pkgs/dev-tools/
#添加源配置文件
vi /etc/yum.repos.d/Dev-Tool.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///data/yum-pkgs/dev-tools/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
以下是使用工具自定义包组的方法(假设Diy Development tools包组只有gcc):
#使用工具生成自定义包组的配置文件, --mandatory指定必要的软件包,--optional可选软件包, yum-groups-manager是yum-utils工具集中工具
#此方法需要自己配置大量的软件包,只是自定义软件包组的例子,可以跳过
yum-groups-manager -n "Diy Development tools" --id=diy-dev-tools --save=diy-dev-tools.xml --mandatory gcc shell
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps>
<group>
<id>diy-dev-tools</id>
<default>false</default>
<uservisible>true</uservisible>
<display_order>1024</display_order>
<name>Diy Development tools</name>
<description></description>
<packagelist>
<packagereq type="mandatory">gcc</packagereq>
</packagelist>
</group>
</comps>
加入到仓库
createrepo -g /data/yum-pkgs/diy-dev-tools.xml /data/yum-pkgs/dev-tools
#清理一下yum源缓存
yum clean all
#重新list一下
yum repolist
# 查看现在的软件包组
yum gourplist
#安装自定义软件包组
yum groupinstall "diy-dev-tools"
可以获取系统字段的gourp配置:
搜索/var/cache/yum/x86_64/7/*/*comps.xml.gz,以下命令都需要替换成自己搜索到的文件
在xxx-comps.xml.gz中搜索Development tools即可。
#根据行号获取,所需数据在1629-1819
less -N bc140c8149fc43a5248fccff0daeef38182e49f6fe75d9b46db1206dc25a6c1c-c7-x86_64-comps.xml.gz
#获取配置,并自定义
zcat bc140c8149fc43a5248fccff0daeef38182e49f6fe75d9b46db1206dc25a6c1c-c7-x86_64-comps.xml.gz| head -n 1819| tail -n $((1819-1629+1)) >/data/yum-pkgs/diy-dev-tools.xml
createrepo -g /data/yum-pkgs/diy-dev-tools.xml /data/yum-pkgs/dev-tools
#清理一下yum源缓存
yum clean all
#重新list一下
yum repolist
yum grouplist
yum groupinfo "Diy Development Tools"
其它命令:
createrepo --update local-yum/ # 更新本地源
createrepo local-yum/ # 重新生成metadata
centos7离线安装软件和软件包组的更多相关文章
- CentOS7离线安装MySQL8.0
CentOS7离线安装MySQL8.0 卸载软件 rpm -e --nodeps 要卸载的软件包 root@jacky zookeeper]# rpm -e --nodeps java-1.6.0-o ...
- CentOS7 离线安装mysql-5.7.16
CentOS7 离线安装mysql-5.7.16 1 . 安装新版mysql前,需将系统自带的mariadb-lib卸载 [root@slave mytmp]# rpm -qa|grep mariad ...
- CentOS7离线安装mysql5.7
下载mysql5.7,系统选择redhat,版本选择RHEL7,下载RPM Bundle后得到一个tar文件.这里得到文件mysql-5.7.25-1.el7.x86_64.rpm-bundle.ta ...
- CentOS7离线安装Nginx(详细安装过程)
CentOS7离线安装Nginx(详细安装过程) 1.安装gcc.g++ 下载好所需的文件后上传至服务器(下载地址:https://download.csdn.net/download/a729360 ...
- Binlog2sql+CentOS7 离线安装
Binlog2sql+CentOS7 离线安装 目录 Binlog2sql+CentOS7 离线安装 1. 环境 2. 下载 3.1 Pip 安装 3.2 PyMySQL/mysql-replicat ...
- centos7离线安装rpm包自动解决依赖
离线安装rpm包自动解决依赖参照https://blog.csdn.net/u011396718/article/details/80153515当生产环境由于安全原因处于断网状态的时候.通过本地源的 ...
- CentOS7离线安装Ambari与HDP
安装步骤总体说明 1.安装以前需要先规划服务器,一台主机多台从机.主从需要设置时间同步和免密. 2.建立离线源,因在线安装速度很慢,所以需要建立离线源. 3.在主机上安装Ambari,进入系统后,挂接 ...
- 用DVD镜像离线安装Debian的软件包
先介绍一下环境: 虚拟机:debian7.2.0 主机: Win7 方法一: 由于有时候无法联网就需要离线安装软件包,可以把debian官网上列出的几个DVD镜像都下下来,其实主要是DVD1,这样就不 ...
- Ambari2.7.4+HDP3.1.4安装 Centos7离线安装
一. Ambari等简单介绍 1.1Ambari Ambari是一种基于Web的工具,支持Apache Hadoop集群的创建 .管理和监控. Ambari已支持大多数Hadoop组件,包括HDFS. ...
- Centos7 离线安装 php7
问题:因内部管控,机器无法连接公有yum源安装php. 正常安装php7可以参考CentOS7.2 安装 PHP7.2 下面的代码也是一种方法 yum -y install libmcrypt lib ...
随机推荐
- 金蝶K3无法查看关联信息
场景: 某个用户点击采购订单界面--关联信息,界面显示正在加载,但是无法显示所有关联单据. 步骤: 1. 在其他电脑登录存在同样问题. 2. 其他模块可以正常显示 3. 删除该用户t_UserProf ...
- springboot集成es7(基于high level client)
环境: ES: 7.12.0 1.springboot工程引入es相关jar <dependency> <groupId>org.elasticsearch</group ...
- Xcode基础文件概念
Xcode基础概念 Schema.Target.Project 和 Workspace 是组成一个 Xcode 工程最核心的单元,也是我们首先需要理解的部分. Target Target 是我们工程中 ...
- go语言web框架-如何使用gin教程+react实现web项目
go-web+ react实践项目 前端使用react 搭建,从webpack搭建开始写,后端是学习go语言过程中的实践,由于之前没有实际的后端web经验,所以是自己一点一点摸索出来的.有错漏还望指正 ...
- vue 鼠标拖拽
<template> <div class="home"> <div id="box" v-drag></div> ...
- fabric学习笔记3
fabric学习笔记3 20201303张奕博 2023.1.11 Hyperledger Fabric架构设计 分布式帐本 区块链核心概念是分布式帐本,就像下面的图1所示,同样的帐本(全量的交易数据 ...
- React脚手架的使用
初始化项目 npx create-react-app my-app // 或 npm init react-app my-app // 或 yarn create react-app my-app 启 ...
- 循环4-for循环
一.语法 for循环和while类似,常用于执行有限次数的循环,有两种语法结构, 1.变量列表循环 语法: for 变量名 in 变量取值列表 do 指令...... done 变量取值列表中的值,要 ...
- Kubernetes--Ingress资源
Ingress资源 Kubernetes提供了两种内建的云端负载均衡机制(cloud load balancing)用于发布公共应用,一种是工作于传输层的Service资源,它实现的是"TC ...
- MVC内置对象
MVC内置函数 ----HTML页 <!DOCTYPE html> <html> <head> <meta charset="utf-8&q ...