定制rpm包及搭建yum仓库
admin
2023-03-19 10:01:31
0

定制rpm包及搭建yum仓库

 

第1章 定制rpm包

 

1.FPM打包工具

FPM的作者是jordansissel
FPM的github:
https://github.com/jordansissel/fpm
FPM
功能简单说就是将一种类型的包转换成另一种类型。


支持的源类型包:

dir         将目录打包成所需要的类型,可以用于源码编译安装的软件包

rpm         对rpm进行转换

gem         对rubygem包进行转换

python      将python模块打包成相应的类型

2.fpm安装

[root@student ~]# yum -y install ruby rubygemsruby-devel        

安装ruby模块

[root@web01 ~]# gem sources -ahttp://mirrors.aliyun.com/rubygems/

http://mirrors.aliyun.com/rubygems/ added tosources

添加阿里云的Rubygems仓库,国外资源会影响下载速度

[root@student ~]# gem sources --removehttp://rubygems.org/  

http://rubygems.org/ removed from sources

移除原生的ruby仓库

[root@student ~]# gem installfpm        

安装fpm

 

3.fpm常用参数

-s  #指定源类型

-t  #指定目标类型,即想要制作为什么包

-n  #指定包的名字

-v  #指定包的版本号

-C  #指定打包的相对路径  Change directory tohere before searching forfiles

-d  #指定依赖于哪些包

-f  #第二次打包时目录下如果有同名安装包存在,则覆盖它

-p  #输出的安装包的目录,不想放在当前目录下就需要指定

--post-install #软件包安装完成之后所要运行的脚本;同--after-install

--pre-install #软件包安装完成之前所要运行的脚本;同--before-install

--post-uninstall #软件包卸载完成之后所要运行的脚本;同--after-remove

--pre-uninstall #软件包卸载完成之前所要运行的脚本;同--before-remove

 

 

4. 安装nginx

yum -y install pcre-devel openssl-devel

useradd nginx -M -s /sbin/nologin

tar xf nginx-1.6.2.tar.gz

cd nginx-1.6.2

 

./configure --prefix=/application/nginx-1.6.2--user=nginx --group=nginx --with-http_ssl_module--with-http_stub_status_module

 

make && make install

ln -s /application/nginx-1.6.2/ /application/nginx

 

5.编写脚本

[root@oldboy ~]# cd/server/scripts/

[root@oldboy scripts]# vimnginx_rpm.sh 

#!/bin/bash

useradd nginx -M -s /sbin/nologin

ln -s /application/nginx-1.6.2//application/nginx

 

6.打包

[root@web01 application]# yum -yinstall rpm-build

 

[root@oldboy ~]# fpm -s dir -t rpm-n nginx -v 1.6.2 -d 'pcre-devel,openssl-devel' --post-install/server/scripts/nginx_rpm.sh -f /application/nginx-1.6.2/ 

no value for epoch is set,defaulting to nil {:level=>:warn}

no value for epoch is set,defaulting to nil {:level=>:warn}

Created package{:path=>"nginx-1.6.2-1.x86_64.rpm"}

[root@oldboy ~]# ll -hnginx-1.6.2-1.x86_64.rpm

-rw-r--r-- 1 root root 6.7MNov  1 10:02 nginx-1.6.2-1.x86_64.rpm

 

4. 安装rpm包

 

rpm -ivh nginx-1.6.2-1.x86_64.rpm

 

yum -y localinstallnginx-1.6.2-1.x86_64.rpm

 

 

 

 

第2章 搭建yum仓库

服务端配置:

1.创建yum仓库目录

mkdir –p /application/yum/centos6/x86_64/   

2.安装createrepo软件

yum -y install createrepo    

3.初始化repodata索引文件

createrepo -pdo/application/yum/centos6.6/x86_64/ /application/yum/centos6.6/x86_64/     

4.进入需要提供仓库的目录

cd /application/yum/centos6/x86_64/      

5.配置web查看yum

python -m SimpleHTTPServer80 &>/dev/null &

//可以用Apachenginx提供web服务,但用Pythonhttp模块更简单,适用于内网环境, 可以通过浏览器输入本机IP查看。  

6.每加入一个rpm包就要更新一下

createrepo--update /application/yum/centos6/x86_64/    

7.保存下载过的软件

sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf  

                       //修改yum配置文件keepacache=0改为1

8.安装包存储目录

ls /var/cache/yum/x86_64/6/base/packages

 

客户端配置:

1.配置本地yum源文件

[root@B yum.repos.d]#cd /etc/yum.repos.d

[root@B yum.repos.d]#vi oldboy.repo         连接本地yum

[oldboy]

name=oldboy

baseurl=http://10.0.0.61

enable=1

gpgcheck=0

2.指定新增的yum源生效

[root@YUM ~]# yum --enablerepo=oldboy --disablerepo=base,extras,updates,epellist

 指定使用oldboy(临时生效)

3.使yum源永久生效

[root@oldboy yum.repos.d]# vim /etc/yum.repos.d/CentOS-Base.repo

# 在每一个启动的源加上

#enabled=0#改为1就启用,没有此参数也是启用。

[base]

enabled=0

 …………

[updates]

…………

enabled=0

 …………

[extras]

…………

enabled=0

# 还有其他开启的仓库就使用这个办法关闭

 

4.查看现有yum源

[root@web01 ~]# yum repolist

 

5.同步公网yum源

上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。

CentOS官方标准源:rsync://mirrors.ustc.edu.cn/centos/

epel源:rsync://mirrors.ustc.edu.cn/epel/

163源:http://mirrors.163.com/

阿里云源:http://mirrors.aliyun.com/

 

 

# 同步base源

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64//data/yum_data/centos/6/os/x86_64/

 

# epel源

/usr/bin/rsync -av --exclude=debugrsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/

 

 

 


相关内容

热门资讯

AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...
原创 王... 菲尔兹奖名单一出,邓煜和王虹两位华人数学家共同获奖,本应是一件令人振奋的喜讯。然而,王虹那段仅3分1...
《万物》杂志首个阅读空间亮相正... 26日,由国内知名的青少年家庭科普期刊《万物》杂志与广州正佳自然科学探索中心联合打造的阅读互动空间—...
从康复机器人到脑机接口 智能康... 天津北方网讯:对脑卒中患者来说,重新抬起手臂、迈出一步,往往需要持续的康复训练,逐步恢复运动功能;对...
原创 苹... 当苹果、谷歌、斯坦福、麻省理工都无法留住一位年轻的中国AI天才时,究竟是什么力量吸引他毅然回国?为何...
为什么新能源车供应链要本地化? 当前汽车产业变革加速,电动化成为核心发展方向。车企为了在激烈市场中站稳脚跟,必须优化生产结构。其中,...
携程罚单的真正影响,不是酒店变... 文 | 听风译码 7月25日,市场监管总局对携程开出51.79亿元天价罚单。 全网叫好。 但如果你...
自己管理自己,我国成功发射两颗... 7月24日消息,力箭一号遥十五运载火箭今日在东风商业航天创新试验区成功发射,以“一箭5星”方式将5颗...