yum仓库搭建之RPM包制作

简介:

常见的软件安装方式有以下几种

  1. yum安装,可自动解决依赖,但不能自定义软件安装位置

  2. 编译安装,可指定安装路径,指定装模块,但编译参数冗长,且耗时较长,不能解决依赖问题。

  3. rpm安装,安装速度较速,但不能自动解决依赖,尤其是遇到需要的依赖包较多时,特别费时。

本文主要介绍利用fpm工具制作个性化的rpm包,后期可放到yum仓库中,直接用yum安装。

【fpm介绍】

项目地址:https://github.com/jordansissel/fpm

作者把这个fpm称作Effing Package Management,翻译过来就是该死的包管理器,粗暴一点就是去他妈的包管理器。ubuntu及centos的包管理及安装方式完全不同,要想同时掌握这两种平台下的软件包安装方法是很困难的,为了不再遭受这痛苦,fpm便应运而生了。fpm是由jordansissel于2011年开发的一套打包工具,可快速度地将你安装好的程序目录或包打包为rpm及deb等结尾软件包。与传统的打包工具(rpmbuild、dh_make)相比,制作起来更加简单、方便、快捷。

【fpm安装】

1.安装ruby及gcc

1
yum  install  ruby-devel gcc

2.安装fpm

1
gem  install  fpm

3.fpm打包

语法格式

1
fpm -s < source  type > -t <target  type > [options]

其中源类型主要有:dir、gem、rpm、python等,目标类型主要有rpm,deb,puppet,solaris等。

-s指定输入的包类型

-t指定输出包的类型

-n, --name指定输出的包名

-v, --version指定版本号,默认为1.0

-d, --depends指定依赖包,可重复多次出现,通常以"-d 'name' or -d 'name > version'"的形式展现。

-f, --force强制输出,会覆盖掉旧包

-p, --package OUTPUT 指定输出目录

【打包实例】

定制cron初始化rpm包

1
2
3
4
5
6
$fpm -s  dir  -t rpm -a noarch -p  /root/  -n  cron -init-script - v  1.0  /var/spool/cron/
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=> "/root/cron-init-script-1.0-1.noarch.rpm" }
$ll  /root/cron-init-script-1 .0-1.noarch.rpm 
-rw-r--r-- 1 root root 1693 Nov  2 22:24  /root/cron-init-script-1 .0-1.noarch.rpm

在客户端yum安装cron-init-script

wKiom1Y3dnfx97VcAAIJqYhmhwU164.jpg

【升级RPM包】

  1. 编辑cron任务

    $crontab -l
    */5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1
    */10 * * * * /usr/sbin/ntpdate 1.pool.ntp.org >/dev/null 2>&1

  2. 重新生成包

    wKiom1Y3e0azHrQbAAIknCVviaU858.jpg

  3. 传到yum仓库

    $cp cron-init-script-1.1-1.noarch.rpm /application/yum/centos6.6/x86_64/

  4. 更新yum仓库索引

    $createrepo --update /application/yum/centos6.6/x86_64/
    Spawning worker 0 with 1 pkgs
    Workers Finished
    Gathering worker results

    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    Generating sqlite DBs
    Sqlite DBs complete

  5. 客户端清空yum缓存

    # yum clean all
    Loaded plugins: fastestmirror, security
    Cleaning repos: oldboy
    Cleaning up Everything
    Cleaning up list of fastest mirrors

  6. 查找cron包

    # yum list |grep cron-init
    cron-init-script.noarch 1.0-1           @oldboy         #前面的@表示已经安装过,保留下来的信息 
    cron-init-script.noarch 1.1-1           oldboy  

  7. 更新cron包

    # crontab -l
    */5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1

    # yum update cron-init-script

    Is this ok [y/N]: y

    Running Transaction
      Updating   : cron-init-script-1.1-1.noarch                                             1/2 
      Cleanup    : cron-init-script-1.0-1.noarch                                             2/2 
      Verifying  : cron-init-script-1.1-1.noarch                                             1/2 
      Verifying  : cron-init-script-1.0-1.noarch                                             2/2 

    Updated:
      cron-init-script.noarch 0:1.1-1                                                            

    Complete!

    # crontab -l
    */5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1
    */10 * * * * /usr/sbin/ntpdate 1.pool.ntp.org >/dev/null 2>&1

    cron任务已更新。


本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1708647,如需转载请自行联系原作者
相关文章
|
14天前
|
缓存
yum 如何设置可以将安装的rpm包都缓存下来
【4月更文挑战第17天】yum 如何设置可以将安装的rpm包都缓存下来
40 0
|
5月前
|
Web App开发 前端开发 Java
Linux 实操篇-RPM 与YUM
Linux 实操篇-RPM 与YUM
44 0
|
3月前
|
缓存
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
131 0
|
6月前
|
Linux 应用服务中间件 nginx
CentOS7搭建yum源仓库(阿里源)
CentOS7搭建yum源仓库(阿里源)
1067 0
|
23天前
|
C语言
软件管理rpm与yum
软件管理rpm与yum
|
23天前
|
缓存 前端开发 关系型数据库
RPM与YUM
RPM与YUM
34 0
|
25天前
|
缓存 Linux 测试技术
搭建本地YUM仓库
在Redhat 9系统中,通过挂载系统安装盘到/mnt,然后创建本地YUM仓库以实现软件包管理。首先查看磁盘挂载情况,将ISO镜像挂载到/mnt。接着,备份`/etc/yum.repos.d/`目录内容,删除原有仓库,创建`loaclhost.repo`文件并配置指向/mnt中的Package目录。运行`yum clean all`清除缓存,`yum makecache`建立元数据。最后,成功通过新配置的本地仓库安装了bind软件及其依赖。
43 3
|
5月前
|
缓存
简易yum仓库搭建
简易yum仓库搭建,实验准备,获取yum仓库、安装httpd,客户机配置yum源,测试、验证
71 0
|
5月前
|
测试技术 Linux
收集yum install安装的软件的全量依赖 rpm 包
收集yum install安装的软件的全量依赖 rpm 包
76 0
|
1月前
|
Linux C语言
linux yum安装ffmpeg 图文详解
linux yum安装ffmpeg 图文详解
47 0