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,如需转载请自行联系原作者
相关文章
|
7天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
61 25
|
9月前
yum 可以安装rpm包
【6月更文挑战第18天】yum 可以安装rpm包
787 0
|
4月前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
383 0
|
7月前
|
Web App开发 缓存 Ubuntu
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
320 11
|
7月前
|
缓存 Linux 网络安全
解决 CentOS 7 官方 yum 仓库无法使用的最佳实践
【8月更文挑战第18天】若 CentOS 7 的官方 YUM 仓库无法使用,可按以下步骤解决: 1. **检查网络连接**: - 确认服务器能正常上网,可通过访问外部网站或网络诊断测试。 - 检查防火墙设置,避免其阻挡 YUM 的网络访问。 2. **检查 YUM 配置**: - 核实 `/etc/yum.repos.d/` 下的 `CentOS-Base.repo` 文件中仓库地址正确无误。 - 确认配置文件内的 `enabled` 选项设为 `1` 以启用仓库。
2689 0
|
9月前
|
Ubuntu Python
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
967 1
|
8月前
|
Ubuntu Linux
Linux软件安装-Linux系统靠yum命令安装软件,yum命令是一个RPM包软件管理器,用于自动化安装配置Linux软件,.rpm是Linux包下的软件,yum install下载 wget re
Linux软件安装-Linux系统靠yum命令安装软件,yum命令是一个RPM包软件管理器,用于自动化安装配置Linux软件,.rpm是Linux包下的软件,yum install下载 wget re
|
10月前
|
数据库 容器
RPM属性依赖的解决方法: YUM线上升级
【5月更文挑战第14天】RPM属性依赖的解决方法: YUM线上升级。
78 1
|
10月前
|
存储 缓存 Unix
|
19天前
|
监控 Linux
yum install -y net-snmp-devel 安装不成功 zabbix项目安装,Errors during downloading metadata for repository ‘extras-common’:问题解决方案-优雅草卓伊凡
yum install -y net-snmp-devel 安装不成功 zabbix项目安装,Errors during downloading metadata for repository ‘extras-common’:问题解决方案-优雅草卓伊凡
53 13
yum install -y net-snmp-devel 安装不成功 zabbix项目安装,Errors during downloading metadata for repository ‘extras-common’:问题解决方案-优雅草卓伊凡

热门文章

最新文章