Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >本地yum仓库搭建及rpm软件包定制

本地yum仓库搭建及rpm软件包定制

作者头像
863987322
发布于 2018-01-24 05:44:46
发布于 2018-01-24 05:44:46
1.8K00
举报
运行总次数:0

环境内核信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@zabbix-01 ~]# uname -a
Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

搭建YUM仓库

创建yum仓库目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir -p /application/yum/centos6.9/x86_64/
cd /application/yum/centos6.9/x86_64/
rz    # 可以将已经定制好的rpm包上传到此目录,此目录下面还可以包括文件夹

安装createrepo软件

createrepo是linux下的创建仓库的软件包。create是创建的意思,repo是repository的缩写,是仓库的意思。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum -y install createrepo

初始化repodata索引文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
createrepo -pdo /application/yum/centos6.9/x86_64/ /application/yum/centos6.9/x86_64/

提供yum服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 可以用Apache或nginx提供web服务,但用Python的http模块更简单,适用于内网环境
cd /application/yum/centos6.9/x86_64/
python -m SimpleHTTPServer 80 &>/dev/null &
通过浏览器输入本机IP,能够出现yum仓库中的rpm信息就好。

我这里使用的nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nginx配置文件
server {
        listen       80;
        server_name  10.0.0.61;
        location / {
            root   /application/yum/centos6.9/x86_64;
            index  index.html index.htm;
              autoindex on;
              autoindex_exact_size on;
              autoindex_localtime on;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

如果觉得自己的yum仓库中的软件太少,可以下载添加

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 只下载软件不安装
yumdownloader pcre-devel openssl-devel 
# 每加入一个rpm包就要更新一下。
createrepo --update /application/yum/centos6.9/x86_64/
# cat /etc/yum.conf 
keepcache=1  ---- 保存下载的包
# 安装包存储目录
cachedir=/var/cache/yum/$basearch/$releasever
# /var/cache/yum/x86_64/6/base/packages

客户端配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cd /etc/yum.repos.d
[root@zxpo yum.repos.d]# vi shizhi.repo
[shizhi]
name=Server
baseurl=http://10.0.0.66
enable=1
gpgcheck=0
[root@zxpo ~]# yum --enablerepo=shizhi --disablerepo=base,extras,updates,epel list 
# 指定使用shizhi库
上面是临时使用内网yum源,想永久并简单使用yum -y install lrzsz命令,就需要修改配置文件将默认的repo文件关闭。
[root@zxpo ~]# cd /etc/yum.repos.d/
[root@zxpo yum.repos.d]# vim CentOS-Base.repo
# 在每一个启动的源加上
# enabled=0 #改为1就启用,没有此参数也是启用。
[base]
…………
enabled=0
[updates]
…………
enabled=0
[extras]
…………
enabled=0
# 还有其他开启的仓库就使用这个办法关闭。

RPM软件包定制

支持的源类型包

dir           将目录打包成所需要的类型,可以用于源码编译安装的软件包 rpm         对rpm进行转换 gem        对rubygem包进行转换 python    将python模块打包成相应的类型

支持的目标类型包

rpm         转换为rpm包 deb         转换为deb包 solaris     转换为solaris包 puppet    转换为puppet模块

FPM安装

第一步、安转依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum -y install ruby rubygems ruby-devel

第二步、更改仓库

更改ruby仓

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gem source --add http://mirrors.aliyun.com/rubygems/  --remove http://rubygems.org/

查看当前仓库源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gem sources list

第三步、安装fpm 和json

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gem install json -v 1.8.3
gem install fpm -v 1.3.3

FRM参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
详细使用见fpm –help
-s    指定源类型
-t    指定目标类型,即想要制作为什么包
-n     指定包的名字
-v    指定包的版本号
-C     指定打包的相对路径 Change directory to here before searching forfiles
-d    指定依赖于哪些包
-f    第二次打包时目录下如果有同名安装包存在,则覆盖它
-p     输出的安装包的目录,不想放在当前目录下就需要指定
--post-install     软件包安装完成之后所要运行的脚本;同--after-install
--pre-install      软件包安装完成之前所要运行的脚本;同--before-install
--post-uninstall    软件包卸载完成之后所要运行的脚本;同--after-remove
--pre-uninstall    软件包卸载完成之前所要运行的脚本;同--before-remove

Nginx打包语句参考

第一步:创建脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@yum scripts]# vim nginx_rpm.sh # 这是安装完rpm包要执行的脚本
#!/bin/bash
useradd www -M -s /sbin/nologin -u 2222
ln -s /application/nginx-1.10.2/ /application/nginx

第二步:制作fpm包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fpm -s dir -t rpm -n nginx -v 1.10.2 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.10.2/

第三步:当前路径查看fpm包(ls)

PHP打包语句参考

第一步:创建脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /server/scripts/php_rpm.sh
#!/bin/bash
ln -s /application/php-5.5.32/ /application/php

第二步:制作fpm包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fpm -s dir -t rpm -n php -v 5.5 -d 'zlib-devel,libxml2-devel,libjpeg-devel,libmcrypt-devel,libjpeg-turbo-devel,freetype-devel,libpng-devel,gd-devel,libcurl-devel,libxslt-devel,mhash,mcrypt' --post-install /server/scripts/php_rpm.sh -f /usr/local/libiconv/ /application/php-5.5.32/ 

第三步:当前路径查看fpm包(ls)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-11-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
FPM定制RPM包实践
惨绿少年
2017/12/27
1.6K0
在Centos7.3搭建Yum私有仓库
使用本地iso镜像创建本地yum仓库,该方法不推荐,只针对yum服务器无法上公网的环境下操作,毕竟iso镜像里的包非常有限。
菲宇
2019/06/12
2.2K0
在Centos7.3搭建Yum私有仓库
第十四章·Linux软件管理-YUM工具及源码包
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
8530
第十四章·Linux软件管理-YUM工具及源码包
CentOS6.7上使用FPM打包制作自己的rpm包
gem sources --addhttps://gems.ruby-china.org/ --remove https://rubygems.org/
保持热爱奔赴山海
2019/09/18
1.6K0
rpm 快速入门与基础
RPM全称是 Red Hat Package Manager(Red Hat包管理器-红帽创建的一个开放的软件包管理系统)。几乎所有的 Linux 发行版本都使用这种形式的软件包管理安装、更新和卸载软件,现在已成为一种标准,常用在opensuse/turbo/redhat版本,
全栈工程师修炼指南
2022/09/28
1.9K0
rpm 快速入门与基础
fpm制作rpm包
在Linux系统中,RPM包的制作是很困难的,其实使用工具就能快速制作RPM包,简单易学,下面小编就给大家介绍下Linux使用FPM制作RPM包的方法,感兴趣的朋友可以来了解一下。
菲宇
2019/06/11
1.7K0
定制rpm包-Yum环境搭建
惨绿少年
2017/12/27
1.1K0
定制rpm包-Yum环境搭建
基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
 由于公司业务服务器大部分都在内网环境下运行,内网环境无法直接使用yum安装升级更新软件,所以需要自建Yum源来满足目前日常工作需要。
非著名运维
2022/12/12
4.1K0
yum 快速入门与基础
0x00 Linux中软件安装的几种方式 Q:Linux中的如何进行安装、卸载、升级软件和管理? 答:回答这个问题前需要了解Linux的多个发行版本,不同版本之间安装软件方式和命令不一样,且同一个版本
全栈工程师修炼指南
2022/09/28
1.5K0
yum 快速入门与基础
Linux yum 软件仓库
本机yum仓库 (mount方式) 移除系统自带repo文件 cd /etc/yum.repos.d/ mkdir tmp mv *.repo tmp #删除yum配置文件 /etc/yum.repos.d/yum.repo #新建一个repo文件 [mount-cdrom] baseurl=file:///mnt gpgcheck=0 #不校验gpgkey文件 enabled=1 #开启仓库 挂载光盘或者解包ISO镜像 mount /dev/cdrom /mnt #将cdrom光盘文件挂载到mn
以谁为师
2019/05/31
5K0
Openstack Pike本地yum源搭建
在部署Openstack的时候,可能环境受限,不能连接外网,这时候需要通过本地yum源完成安装。
后端云
2018/10/24
2.2K0
Linux软件包安装--三魔鬼
yum是基于rpm的软件包管理器,他可以使系统管理人员交互和自动化地更细与管理rpm包,他能自动从服务器下载RPM包并安装,他可以自动处理依赖关系,自动安装所有需要的软件包
张琳兮
2018/09/10
2.4K0
Linux软件包安装--三魔鬼
RPM与YUM管理包程序
ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。
小柒吃地瓜
2020/04/23
3K0
使用vsftp作为集群的yum仓库
Linux nfs01 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
张琳兮
2018/09/10
1.2K0
centos7自建yum源 安装rpm
如果生产环境需要大规模的安装部署rpm包,每次安装,更新,都需要上传,安装,比较麻烦,可以在生产环境中自建一个yum源。
菲宇
2022/12/21
1.1K0
rpm、yum及yum局域网软件源 原
rpm(Redhat Package Manager)RPM软件包管理器,是以一种数据库记录的方式来将我们所需要的套件安装到Linux主机的一套管理程序。rpm包是预先在Linux机器上编译好并打包好的文件,安装起来非常快捷。但是有一个缺点:安装环境必须与编译时的一致或相当;包与包之间存在着相互依赖的情况,安装或卸载包时需要先把依赖的包安装/卸载,如果依赖的包时系统所必须的,那就不能卸载这个包。
阿dai学长
2019/04/03
1.4K0
linux软件包管理
在linux系统中我们经常涉及到软件包的删除和添加,那一起来看下在linux系统中软件包的管理方式都有哪些
星哥玩云
2022/09/15
2.2K0
linux软件包管理
本地yum源部署记录
由于IDC的一些服务器没有外网,不能对外访问。所以打算部署一套内网的yum源环境,以供内网服务器使用。以下简单记录下操作过程: 1)下载centos6.9和centos7.3的镜像,并挂载 [root@dev ~]# wget http://mirrors.163.com/centos/6.9/isos/x86_64/CentOS-6.9-x86_64-bin-DVD1.iso [root@dev ~]# wget http://mirrors.163.com/centos/7.3.1611/isos/x8
洗尽了浮华
2018/01/23
1.6K0
本地yum源部署记录
7.7 yum下载rpm包
安装扩展源epe目录概要 yum install -y epel-release //安装扩展源 yum list |grep epel //过滤出epel包 yum下载rpm包目录概要 yum install -y 包名 --downloadonly //仅仅下载,而不安装 ls /var/cache/yum/x86_64/7/ //rpm包下载的位置 yum install -y 包名 --dow
运维小白
2018/02/06
4K0
CentOS-创建yum本地源
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。 基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。 yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
小小工匠
2021/08/16
1.6K0
相关推荐
FPM定制RPM包实践
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档