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

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

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

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

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

【fpm介绍】

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

【fpm安装】

1.安装ruby及gcc

yum install ruby-devel gcc

2.安装fpm

gem install fpm

3.fpm打包

语法格式

fpm -s -t [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包

$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

【升级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.重新生成包

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任务已更新。

下面关于RPM包制作相关的内容你可能也喜欢:

linux yum仓库制作,yum仓库搭建之RPM包制作相关推荐

  1. linux怎么制作运行包,简单 RPM 包制作

    今天为了测试搭建自己的yum仓库并安装升级软件包,因此需要一个rpm包来做测试,所以就想到了自己来做一个最简单rpm,因为仅仅就是做一个测试所以没有添加需要编译的文件,而是只使用了一个shell文件来 ...

  2. RPM包制作及yum仓库搭建

    RPM包制作 rpm包的制作是通过fpm软件来生成的,所以首先要安装fpm软件.又因为fpm的软件是ruby开发的,所以安装fpm的话首先要安装ruby等包 FPM功能简单说就是将一种类型的包转换成另 ...

  3. 使用rpm包制作本地镜像仓库和使用httpd发布镜像服务实现内网使用yum命令

    记录:313 场景:在CentOS 7.9操作系统,使用reposync命令下载rpm包:使用createrepo把rpm包制作成本地镜像仓库:使用httpd发布本地镜像服务:实现内网环境使用yum命 ...

  4. 内网环境下使用rpm包制作yum数据源及使用

    内网环境下使用rpm包制作yum数据源及使用 在实际生产环境中,绝大多数服务器处于内网环境.基于最小化安装.光盘镜像挂载不方便(缺少)等原因,无法使用yum服务,本实验基于生产环境中出现的上述现象进行 ...

  5. linux rpm 包制作详解

    一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...

  6. linux安装spec编译器,RPM包制作之Spec文件参数详解

    看这篇文章的人基本都有一个想法,就是:"劳资不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包 ...

  7. linux spec 脚本,RPM包制作之Spec文件详解

    看这篇文章的人基本都有一个想法,就是:"劳资不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包 ...

  8. centos7全盘备份到本地_CentOS7下制作openssl1.1.1i RPM包并升级

    点击上方"walkingcloud"关注,并选择"星标"公众号 CentOS7下制作openssl1.1.1i RPM包并升级 OpenSSL最新漏洞 Open ...

  9. rpm包制作之openssh8.7升级

    rpm包制作之openssh8.7升级 一.RPM包制作 以openssh为例,将源码包转换为二进制包,从openssh6.4升级至8.7. 源码下载地址: https://www.linuxfrom ...

最新文章

  1. (0107)iOS开发之UI实时调试InjectionIII的使用
  2. linux下oracle自启动
  3. Matlab:图像数据保存
  4. 学会了Python之后,我的职业生涯突飞猛进
  5. 设置header_Nginx的这些安全设置,你都知道吗?
  6. 关于卷积神经网络可视化的一点心得
  7. python语言是非跨平台语言_python特点
  8. VirtualBox安装MACOSX 10.13虚拟机的增强功能
  9. 元素滚动scroll系列(附实例、图解)
  10. 安装.NET Framework 4失败解决办法
  11. Activiti 7+Maven+Idea
  12. h2o api java_H2O框架简介
  13. 学习日志day52(2021-09-22)(1、SpringMVC文件上传 2、Spring发送邮件 3、拦截器 4、日志 )
  14. SDUT—Python程序设计实验78(函数)
  15. 数据可视化Matplotlib库
  16. 专访许雪松:深入理解嵌入式开发
  17. 韩国官员提议加强对加密货币监管的全球合作
  18. 数据类型转换--Mat与Vector<Point2f>
  19. Android10有哪些功能,如何尝试Android 10的五大最佳功能
  20. IT世界里爱恨交加的OpenStack

热门文章

  1. 使用公司邮箱名登录之PHP代码实现
  2. ant编译mysql驱动
  3. JQuery中each方法实现
  4. 微软发布Silverlight 4新版并更新Silverlight Tools和SDK
  5. 水晶报表技术(3)——.NET 2005 中动态水晶报表的实现
  6. java连接mysql数据库 R,java连接MySql数据库!
  7. python2多线程_python_并发编程——多线程2
  8. Linux服务器查看日志方法小结
  9. 自动化测试指南-自动化测试工程师必备的技能
  10. 软件测试,何去何从?想安逸不可能!软饭得硬吃...我整理的超全学习指南【值得每个测试一看】