基本步骤: 1.切换至仓库目录RPM_LIST_DIR1和RPM_LIST_DIR2 2.ls列出仓库的rpm包文件并分别重定向至输出文件rpm_list_file1和rpm_list_file2 3.将对比结果输出至差异文件difff_file 总结: 代码中看似技巧性的东西却没有用处的全部删掉,有时你忽悠的不是别人,而是你自己! #!/bin/bash # Version: 1.0 # Date: 2016/08/09 # Author: Kevin Chen Email: cxy_ustc…
Background: Background: 遇到一个打包可执行程序和链接库生成rpm 包的需求,查遍了很多网站的资料,现在整理下解决方案. 前期参考的是这篇帖子: https://codeantenna.com/a/jUEqRgoEsZ CSDN 很多帖子都是抄的rpm 官方提供的教程:https://www.thegeekstuff.com/2015/02/rpm-build-package-example/ 这个帖子介绍了rpmbuild 的所有操作,包括把源码放到rpmbuild 创建…
1.查看rpm包里的文件 [root@VM_166_132 ~]# rpm -qlp mysql5.6.29-1-3.x86_64.rpm |more/etc/ld.so.conf.d/mysql-5.6.23_compiled_x86_64.conf/usr/local/lib/libjemalloc.a/usr/local/lib/libjemalloc.so/usr/local/lib/libjemalloc.so.1/usr/local/lib/libjemalloc_pic.a 2.查…
如何不安装但是获取rpm包中的文件 使用工具rpm2cpio和cpio rpm2cpio xxx.rpm | cpio -idmv 参数i表示提取文件.v表示指示执行进程,d和make-directory相同,表示根据包中文件原来的路径建立目录,m表示保持文件的更新时间.…
1. RPM 包校验 $ rpm -V 已安装的包名 选项 释义 -V (verify) 校验指定 RPM 包中的文件 (1) 验证内容中的 8 个信息的具体内容如下 信息名称 释义 S 文件大小是否改变 M 文件的类型或文件的权限 (rwx) 是否被改变 5 文件 MD5 校验和是否改变(可以看成文件内容是否改变) D 设备的主从代码是否改变 L 文件路径是否改变 U 文件的属主(所有者)是否改变 G 文件的属组是否改变 T 文件的修改时间是否改变 (2) 文件类型 类型名称 释义 c (co…
目录 1.RPM包中文件的提取 2.在RPM包中提取文件的操作 (1)cpio命令介绍 (2)提取RPM包中文件 1.RPM包中文件的提取 为什么要做这个事呢? 在操作Linux系统的时候误删除一个文件,可以通过强制覆盖的方法可以把删除的文件还原.如果不是误删除,我只是修改了文件中的内容,但是我忘记源文件内容是什么,我修改不回来了.这个时候强制安装覆盖(--force选项)就解决不了问题了.因为强制安装覆盖,并不会对现已存在的文件做修改.Linux系统怕软件的强制安装覆盖把你现有的配置清空了.…
概述 从ceph的源码build出rpm包: #git clone --recursive https://github.com/ceph/ceph.git #./instal-dep.sh 以上两点其实在README里面有提及: #mkdir build: cd build; cmake ..; # make dist-bzip2 //此时生成了ceph-XXX.tar.bz2的源码压缩包: 准备rpmbuild 目录 mkdir ~/rpmbuild/ mkdir ~/rpmbuild/BU…
1. 用shell脚本生成带绝对路径的train.txt 例如我要生成如下形式的带标签的文件,如图:(如有两个标签:0 和 1) shell脚本如下: 这样标签0写入了train.txt # /usr/bin/env sh DATA=/home/ttwang/Desktop/Texture/0 DATASAVE=/home/ttwang/Desktop echo "Create train.txt..." # /usr/bin/env sh find $DATA -name Grass…
  当前目录下两个rpm包做差分. *.rpm 两个目录,解压rpm包. export LANG=c 差分判断是脚本还是Binary Files 脚本添加命令行提示符,awk. [root@sj_x861 diff_rwz]# cat diff_rpm.sh #!/bin/bash export LANG=c source ~/.bashrc ############################# #basic command label ##########################…
在讲解如何从 RPM 包中提取文件之前,先来系统学习一下 cpio 命令.cpio 命令用于从归档包中存入和读取文件,换句话说,cpio 命令可以从归档包中提取文件(或目录),也可以将文件(或目录)复制到归档包中. 归档包,也可称为文件库,其实就是 cpio 或 tar 格式的文件,该文件中包含其他文件以及一些相关信息(文件名.访问权限等).归档包既可以是磁盘中的文件,也可以是磁带或管道. cpio 命令可以看做是备份或还原命令,因为它可以将数据(文件)备份到 cpio 归档库,也可以利用 cp…
http://machael.blog.51cto.com/829462/213477 上一篇日志写到,为什么要制作rpm包,以及如何使用.src.rpm文件生成rpm包.最后部分还看到.src.rpm的内容,实际上 就是由.tar.gz源码.补丁软件和.spec脚本组成的.由此知道,使用.spec生成rpm包是比较简单的,因为.src.rpm通常都是由软件开 发者或者第三方的专业制作人根据源码调试好的,所以,只要处理好平台兼容性和相关的版本,不会遇到太大的问题.   但我觉得单纯明白用.spe…
已安装包校验 rpm -V 已安装的包名-V 校验指定rpm包中的文件 rpm -V pth没有任何提示,说明自安装后没有做过任何修改 rpm包中文件提取 比如对一个系统配置文件误操作,可以根据这个文件找到它所属的rpm包,然后再从rpm包中提取这个文件再覆盖被误操作文件 rpm2cpio 包全名 | cpio -idv .rpm包中文件绝对路径-i copy-in模式,还原-d 还原时自动新建目录-v 显示还原过程 rpm2cpio将rpm包转换为cpio格式的文件 cpio是一个标准工具,它…
RPM包的制作 前言 按照其软件包的格式来划分,常见的Linux发行版主要可以分为两类,类ReadHat系列和类Debian系列,这两类系统分别提供了自己的软件包管理系统和相应的工具. 类RedHat系统中软件包的后缀是rpm,提供了同名的rpm命令来安装.卸载.升级rpm软件包: 类Debian系统中软件包的后缀是deb,同样提供了dpkg命令来对后缀是deb rpm的全称是Redhat Package Manager,常见的使用rpm软件包的系统主要有Fedora.CentOS.openSU…
spec 文件 制作 rpm 软件包并不是一件复杂的工作,其中的关键在于编写软件包的 spec 描述文件. 要想制作一个 rpm 软件包就必须写一个软件包描述文件 spec.这个文件中包含了软件包的诸多信息,如:软件包的名字.版本.类别.说明摘要.创建时要执行什么指令.安装时要执行什么操作.以及软件包所要包含的文件列表等等. 实际过程中,最关键的地方,是要清楚虚拟路径的位置,以及宏的定义. 文件头 这个区域定义的 Name.Version 这些字段对应的值可以在后面通过 %{name},%{ve…
制作rpm包 1.制作流程 1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制作的对象,是源码包编译打包还只是一些库文件打包 3)编写SPEC文件 4)开始制作 1.2 RPM制作过程 1)读取并解析 filename.spec 文件 2)运行 %prep 部分来将源代码解包到一个临时目录,并应用所有的补丁程序. 3)运行 %build 部分来编译代码. 4)运行 %ins…
制作rpm包 1.制作流程1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制作的对象,是源码包编译打包还只是一些库文件打包 3)编写SPEC文件 4)开始制作 1.2 RPM制作过程 1)读取并解析 filename.spec 文件 2)运行 %prep 部分来将源代码解包到一个临时目录,并应用所有的补丁程序. 3)运行 %build 部分来编译代码. 4)运行 %inst…
RPM包制作过程 1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制作的对象,是源码包编译打包还只是一些库文件打包 3)编写SPEC文件 4)开始制作 1.2 RPM制作过程 1)读取并解析 filename.spec 文件 2)运行 %prep 部分来将源代码解包到一个临时目录,并应用所有的补丁程序. 3)运行 %build 部分来编译代码. 4)运行 %install…
MySQL安装一般使用RPM或者源码安装的方式.RPM安装的优点是快速,方便.缺点是不能自定义安装目录.如果需要调整数据文件和日志文件的存放位置,还需要进行一些手动调整.源码安装的优点是可以自定义安装目录,缺点是编译时间长,过程复杂 其实还有一种方式,定制RPM包.它相当于用源码安装的方式定制了一个RPM包.一次打包,可以多次使用它可以定制路径,安装时自动创建帐号,自动配置服务,环境变量等,并且安装过程快速,简单.在大规模部署的场景下,优点十分突出.缺点是制作RPM包,需要自己编写Red Hat…
我们日常在使用Windows的时候,如果要安装某个软件,最简单的方法就是在程序包的官网直接下载软件包到本地,一般是以.exe或者.msi格式的文件,然后一直下一步下一步就能安装成功了,但是在使用linux的操作系统的时候也许不是这么的友好,即使现在有的linux发行版也可以通过简单的搜索点击安装来实现软件包的安装,但这并不一种很好的安装方法,因为你必须安装桌面环境,消耗和占用一定的内存资源,除非只是你日常使用.本次博客就如何使用rpm命令来实现centos上的软件包的安装与管理,rpm也许不是最…
##################################################### ##如有转载,请务必保留本文链接及版权信息 ##欢迎广大运维同仁一起交流linux/unix网站运维技术! ##QQ:335623998 ##E-mail:335623998@qq.com ##博客: http://dreamway.blog.51cto.com/ ##weibo:http://weibo.com/zhaixiangpan #########################…
常见的Linux发行版主要可以分为两类,类ReadHat系列和类Debian系列,这里我们是以其软件包的格式来划分的,这两类系统分别提供了自己的软件包管理系统和相应的工具.类RedHat系统中软件包的后缀是rpm:类Debian系统中软件包的后缀是deb.另一方面,类RedHat系统提供了同名的rpm命令来安装.卸载.升级rpm软件包:类Debian系统同样提供了dpkg命令来对后缀是deb的软件包进行安装.卸载和升级等操作.   rpm的全称是Redhat Package Manager,常见…
在开发中经常会用到一些rpm包,但是一直没有自己手动制作过.今天在制作的时候意外地还解决了自己以前一直困惑的问题,就是怎么制作rpm debuginfo包,类似CentOS官网那样的debuginfo包.原来在制作rpm时如果没有特殊设置就会在RPMS目录下同时生成rpm包及对应的debuginfo包.   下面总结一下制作rpm包的流程以及遇到的一些问题的解决.   1.配置工作路径   在制作rpm包之前,首先要配置工作路径,也就是制作rpm包所在的目录,当前的工作路径可以通过rpmbuil…
制作RPM包的过程,简单的说,就是为制作过程提供一个“工作车间”,即一个目录,里面需要包含以下几个子目录: BUILD        ————编译相关源码包时的工作目录: RPMS         ————生成的二进制格式的RPM包存放的位置: SOURCES ————程序的源码文件及其其他辅助文件的存放位置: SPCES        ————spec文件的存放位置: SRPMS      ————生成的SRC格式的RPM包存放位置: 如果用户目录主目录下没有类似目录结构,可以通过一个工具软件…
一.应用程序和系统库从哪里来? 两种机制,源码安装和二进制安装. 二.源码安装 tarball 1.核心思想是:利用开源代码,自己编译生成应用程序或者库,要求系统上必须已安装TMG(tar, make, gcc). 2.tarball包的安装顺序是,先解压缩(tar).再配置(config).再编译(make).再安装(make install) tar -xvf xxx.tar.gz 到对应目录下 ./config xxxx 到对应目录下 make 到对应目录下 make install 3.…
打包目录 rpm 打包目录有一些严格的层次上的要求. rpm 的版本 <=4.4.x,rpmbuid 工具其默认的工作路径是 /usr/src/redhat.因为权限的问题,普通用户不能制作 rpm 包,制作 rpm 软件包时必须切换到 root 身份才可以. rpm 从 4.5.x 版本开始,将 rpmbuid 的默认工作路径移动到用户家目录下的 rpmbuild目录里,即 $HOME/rpmbuild ,并且推荐用户在制作 rpm 软件包时尽量不要以 root 身份进行操作. 本文所在环境:…
1.搭建Epel  Yum源  安装在线yum源 [root@localhost ~]# rpm -ivh epel-release-latest-.noarch.rpm //安装扩展源 [root@localhost yum.repos.d]# ls a epel-release-latest-.noarch.rpm epel-testing.repo Centos-.repo epel.repo 或 [root@localhost ~]# ls /etc/yum.repos.d/ backu…
打包编译好的命令,即可直接安装使用 #使用yum可解决依赖问题 [root@localhost ~]# yum -y localinstall *.rpm 一.使用fpm工具直接打包. Fpm安装 fpm是ruby写的,系统环境需要ruby,且ruby版本大于1.8.5 [root@localhost ~]# yum -y install ruby rubygems ruby-devel 查看当前rubygem仓库 [root@localhost ~]# gem sources list 安装f…
本文由秀依林枫提供友情赞助,首发于烂泥行天下 公司服务器比较多,需要把apache源码包制作成rpm包,然后放到公司内网yum源上进行下载安装.apache的rpm包安装方式比源码安装方式比较快,这能节约不少的时间. 有关内网yum源的搭建,可以参考<烂泥:yum的使用及配置>这篇文章. 一.安装rpm-build 查阅相关资料得知,要把源码包制作成rpm包需要使用rpm打包工具rpm-build. rpm-build通过rpmbuild命令根据本地源码包,通过spec文件中的规则就可以把源码…
作者:firefoxbug 时间:July 18, 2014 rpm包命名规范 对于rpm包的命名符合如下规范. %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm NAME: rpm包名字 VERSION: rpm包版本号(主版本号.次版本号.测试号) RELEASE: rpm包编译发布次数(第几次编译发布) ARCH: cpu架构(比如i386和x86_64,i386兼容x86_64,noarch的代表一些列脚本) 比如nginx-1.4.0-24.x86.r…
RPM包的管理 RPM包的分类 RPM包可分为源码包和二进制包两类.源码包的主要优点是开源,如果有足够的能力,可以修改源代码,源码包可以自由选择所需要安装的功能,软件是编译安装,所以更加适合自己的系统,更加稳定,效率也更高.但是缺点就是安装过程步骤比较多,编译过程时间比较长.二进制包也就是Red Hat中的RPM包的有点是包管理系统简单,只需要几个命令就可以实现包的安装.升级.查询.卸载,安装速度也比源码包快很多,缺点是经过编译,看不到源代码,功能选择不如源代码. 依赖性 树形依赖:A→B→C…