热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linuxyum仓库制作,yum仓库搭建yum搭建之RPM包制作rpm制作

原文:https:blog.csdn.netweixin_39845406articledetails116921015常见的软件安装方式有以下几种1.yum安装&

原文:https://blog.csdn.net/weixin_39845406/article/details/116921015
常见的软件安装方式有以下几种

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

4d9d6810dab1740de24c240711612a5a.png

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

3f298e2cfe1d3818f35cd77d0908cdb7.png

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包制作相关的内容你可能也喜欢:
相关资源:centos7 本地yum源配置
1.查看系统本身存在的版本
rpm -qa | grep yum
2.卸载centos7上存在的yum安装源包
rpm -e 源包 --nodeps
3.下载yum源包(http://mirrors.163.com/centos/7/os/x86_64/Packages/)
yum-metadata-parser-1.1.4-10.el7.x86_64
PackageKit-yum-1.0.7-6.el7.centos.x86_64
yum-utils-1.1.31-40.el7.noarch
下方两个一起装
yum-plugin-fastestmirror-1.1.31-40.el7.noarch yum-langpacks-0.4.2-7.el7.noarch


推荐阅读
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Windows 7 部署工具DISM学习(二)添加补丁的步骤详解
    本文详细介绍了在Windows 7系统中使用部署工具DISM添加补丁的步骤。首先需要将光驱中的安装文件复制到指定文件夹,并进行挂载。然后将需要的MSU补丁解压并集成到系统中。文章给出了具体的命令和操作步骤,帮助读者完成补丁的添加过程。 ... [详细]
  • 本文介绍了包的基础知识,包是一种模块,本质上是一个文件夹,与普通文件夹的区别在于包含一个init文件。包的作用是从文件夹级别组织代码,提高代码的维护性。当代码抽取到模块中后,如果模块较多,结构仍然混乱,可以使用包来组织代码。创建包的方法是右键新建Python包,使用方式与模块一样,使用import来导入包。init文件的使用是将文件夹变成一个模块的方法,通过执行init文件来导入包。一个包中通常包含多个模块。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
author-avatar
才女我是周宇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有