Centos系统中用mock构建rpm的方法

前言

在centos下执行rpmbuild -ba package.spec的时候,通常会要求系统也安装对应的依赖包,这样就会导致系统装上许多没用的软件包,占用空间。于是搜索了一下,发现可以通过mock命令来解决这个问题。

构建方法

首先是安装mock,由于mock是在epel仓库里的,所以还需要先装epel仓库

yum -y install epel-release
yum -y install mock

通常情况下使用rpmbuild会新开一个用户,比如builder,这样就不会污染系统环境。我们需要把builder用户加入mock用户组

usermod -a -G mock builder

mock下使用rebuild需要src.rpm文件,所以如果只有.spec文件的话,需要先生成src.rpm文件

rpmbuild -bs package.spec

这样在SRPM目录下就会生成一个src.rpm文件了,然后就可以通过mock命令来rebuild rpm文件

首先需要初始化mock环境,在/etc/mock文件夹下有各个环境的配置文件,比如centos 6就是epel-6-x86_64,初始化命令就是:

mock -r epel-6-x86_64 --init

初始化完毕之后就可以开始构建了

mock -r epel-6-x86_64 rebuild package-1.1-1.src.rpm

构建完毕,rpm文件会存放在/var/lib/mock/epel-6-x86_64/result目录下。当然我们可以通过–resultdir参数来指定rpm文件的生成目录

mock -r epel-6-x86_64 rebuild package-1.1-1.src.rpm --resultdir=/home/builder/rpms

最后执行clean命令清理环境

mock -r epel-6-x86_64 --clean

总结

以上就是关于Centos下使用mock构建rpm的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • CentOS6.5下RPM方式安装mysql5.6.33的详细教程

    1.mysql下载 下载地址:https://dev.mysql.com/downloads/mysql/5.6.html<br>下载以下安装包: MySQL-client-5.6.33-1.el6.x86_64.rpm MySQL-devel-5.6.33-1.el6.x86_64.rpm MySQL-server-5.6.33-1.el6.x86_64.rpm 2.查看是否已经安装了mysql,有则移除 rpm -qa|grep -i mysql mysql-libs-5.1.66-2.e

  • CentOS下采用Crontab实现PHP脚本定时任务

    简单实现一个需求,每5分钟往特定表中插入2条数据.经过分析还是采用crontab方式靠谱,另外执行php脚本的方式,不用担心链接超时等问题. 1.准备工作,创建1个数据表"person", CREATE TABLE `person` ( `FirstName` varchar(100) NOT NULL, `LastName` varchar(100) DEFAULT NULL, `Age` varchar(100) DEFAULT NULL, PRIMARY KEY (`FirstN

  • Centos 7下利用crontab定时执行任务详解

    前言 cron服务是Linux的内置服务,但它不会开机自动启动.可以用以下命令启动和停止服务: /sbin/service crond start /sbin/service crond stop /sbin/service crond restart /sbin/service crond reload 以上1-4行分别为启动.停止.重启服务和重新加载配置. 要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond st

  • 详解使用rpm命令从CentOS系统盘安装计划任务程序crontab

    概述 利用"任务计划",可以将任何脚本.程序或文档安排在某个最方便的时间运行.通俗的讲就是定时执行某个脚本.程序. 常见用途 定时关机 定时检查更新 定时对系统配置.数据库.日志进行备份 定时清理垃圾文件 检测是否已安装 估计是最小化安装的时候默认不会安装此程序,公司的环境有的已经安装了,有的却没有. # crontab -bash: crontab: command not found 执行 crontab 命令如果报 command not found,就表明没有安装. 准备文件

  • CentOS下使用yum命令安装计划任务程序crontab的方法

     概述 利用"任务计划",可以将任何脚本.程序或文档安排在某个最方便的时间运行.通俗的讲就是定时执行某个脚本.程序. 常见用途 定时关机 定时检查更新 定时对系统配置.数据库.日志进行备份 定时清理垃圾文件 检测是否已安装 # crontab -bash: crontab: command not found 执行 crontab 命令如果报 command not found,就表明没有安装. 开始安装 # yum -y install vixie-cron Loaded plugi

  • centos7 用rpm安装mysql详解

    最近做一个项目,需要用centos做数据服务器,用mysql数据库,就需要安装mysql数据库,之前没接触过centos,因此什么也不懂,就从网上也查了很多资料,都觉得不是最好的方法.最后结合mysql官方资料和网友的资料,最后用rpm方式安装,并总结给其他人以参考. 首先打开mysql管网,找到"yum repository"打开页面或者直接打开如下链接 http://dev.mysql.com/downloads/repo/yum/ ,找到自己需要的,点击download,下载rp

  • Centos中彻底删除Mysql(rpm、yum安装的情况)

    我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cnf,/usr/lib/mysql,/usr/share/mysql,/var/lib/mysql也不会起任何作用,各种查找之后发现应该是根本没删除干净 复制代码 代码如下: [root@data lib

  • Centos系统中用mock构建rpm的方法

    前言 在centos下执行rpmbuild -ba package.spec的时候,通常会要求系统也安装对应的依赖包,这样就会导致系统装上许多没用的软件包,占用空间.于是搜索了一下,发现可以通过mock命令来解决这个问题. 构建方法 首先是安装mock,由于mock是在epel仓库里的,所以还需要先装epel仓库 yum -y install epel-release yum -y install mock 通常情况下使用rpmbuild会新开一个用户,比如builder,这样就不会污染系统环境

  • centos系统搭建本地yum服务器的方法

    前言 首先特别说明的是,YUM只是为了解决RPM的依赖关系的问题,而不是一种其它的软件安装模式.虽然在centos中可以直接使用yum源,但是也存在着与外网隔绝的现状,因此需要搭建本地yum源,下面来看看详细的方法. 系统:centos 6.5 1.将光盘挂载到/mnt下面 # mount /dev/cdrom /mnt 2.删除系统自带的repo文件 # cd /etc/yum.repos.d/ # mkdir bak # mv *.repo bak 3.安装createrepo(其实只要安装

  • Xen虚拟机在CentOS系统中的安装和使用方法

    一.原理讲解 虚拟化的概念:将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,我们不再受限于物理上的界限,而是让CPU.内存.磁盘.I/O等硬件变成可以动态管理的"资源池",从而提高资源的利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适应力--------这就是服务器的虚拟化. XEN是目前Linux上的最佳的虚拟化解决方案,特别适合于服务器应用,如用于将多个服务器合并到一台物理服务器上,以节省运营成本(机房空间.电力消耗):或者是出于安

  • CentOS系统临时禁止一个用户的方法

    前言 在使用CentOS系统的过程中,如果不想删除用户,只是临时或短期内禁止某个用户登录系统,可以通过下面两种办法实现: 1.只把用户的记录从/etc/passwd文件中去掉,仅保留其主目录和其他文件不变: 2.在/etc/passwd文件(或/etc/shadow)中,关于该用户的passwd域的第一个字符前面加上一个"*"号即可. 注意:这只是禁止某个用户.如果要删除一个用户,需要删除的项包括: 1. /etc/passwd文件中的相关用户记录: 2. /etc/group文件中的

  • 怎样给centos系统扩展磁盘分区的实现方法

    问题/故障/场景/需求 eve-ng的虚拟机ova的硬盘只有38G,需要增加空间,在vmware直接扩展硬盘后,重启系统,使用fdisk -l可以看到硬盘扩大了,但文件系统并没有扩大,还需要将这些新增的空间扩展分配到某个文件系统才行.下面记录了整个扩展过程 解决方法/步骤 在VM里扩大磁盘到250G重启系统后,查看当前的文件系统的情况 root@eve-ng:~# df -h Filesystem Size Used Avail Use% Mounted on udev 7.9G 0 7.9G

  • CentOS系统中一键安装Openstack图文教程

    前言 首先找到一个国外的网站, http://openstack.redhat.com/Main_Page,进入到quickstart页面中 简单翻译如下: 用到的工具是一个被成为RDO的东东, 能够在基于RHEL内核的linux系统,如RedHat,CentOS,Scientific Linux下,快速实现三步安装.  一:安装RDO软件 sudo yum install -y http://rdo.fedorapeople.org/rdo-release.rpm 二:安装一个叫packsta

  • CentOS系统中PHP和MySQL的升级方法

    用yum更新PHP,只需用一条命令就可以搞定: 复制代码 代码如下: #yum update php 但问题来了,使用此命令后,系统告诉我,没有发现可更新的包.而当前的PHP版本只是5.2.1,PHP官方已经更新到5.2.6了. 经过一番询问,才知道原来CentOS系统的源里PHP仍旧是5.2.1,需要额外的源才能升级PHP. 根据外国网友的介绍,冰古添加了额外的源: 登录SSH后依次运行下列命令: 复制代码 代码如下: #rpm –import http://www.jasonlitka.co

  • VMware中centos系统连接wifi的图文方法

    安装好centos之后,接着来设置它的网络,因为我在家笔记本是用的无线,所以虚拟机也只能连无线了,百度了很多教程,因为刚刚学linux,所以每一步都很艰难,所幸功夫不负有心人,经过一晚上设置,终于连上了WiFi.现将步骤以及自己遇到的问题分享出来. 设置VMware 注意 在选择你自己的无线网卡时,有可能有很多选择,你不知道选哪个. 这时候你打开自己的网络设置,就可以看到你现在用的无线网卡了 设置你的虚拟机网络适配器位桥接模式 给虚拟机设置静态IP 1.用ipconfig命令查看自己电脑ip 因

  • CentOS系统rpm安装Nginx和配置

    目录 CentOS rpm安装Nginx和配置 介绍 rpm包安装 启动服务配置 CentOS rpm安装Nginx和配置 官方下载地址: http://nginx.org/en/download.html 介绍 Nginx("engine x")是一款由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. rpm包安装 #安装nginx,rpm安装 #rpm安装nginx包 rpm -Uvh --fo

  • CentOS环境下单独安装apachebench的方法

    本文实例讲述了CentOS环境下单独安装apachebench的方法.分享给大家供大家参考,具体如下: 这两天在测试php性能优化方法. 为了做压力测试可观察效果,就选择了ApacheBench来作为压力测试工具.其实就是大家常说的ab. 但是这个工具是安装apache web server的时候自带的,现在我服务器上都是跑nginx.也不想为了用这个工具就再装个apache.所以在用下面方法单独安装ab工具,这里记录下步骤. 首先安装ab运行需要的软件包apr-util yum install

随机推荐