首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

rpmbuild在/usr/local中构建目标目录,而不是在我指定的位置

rpmbuild是一个用于构建RPM包的工具,它可以将源代码和相关文件打包成可安装的RPM包。在默认情况下,rpmbuild会将构建目标目录设置为/usr/local。

/usr/local是一个常见的系统目录,用于存放用户自行安装的软件。在这个目录下,用户可以自由地安装和管理自己的软件,而不会与系统自带的软件产生冲突。

然而,rpmbuild也提供了一些选项,可以让用户指定构建目标目录。例如,可以使用--buildroot选项来指定构建目标目录的位置。具体的命令格式如下:

rpmbuild --buildroot=<目录路径> ...

通过指定--buildroot选项,可以将构建目标目录设置为任意位置,而不仅限于/usr/local。这样可以更灵活地控制构建过程中生成的文件的位置。

在使用rpmbuild构建RPM包时,需要注意以下几点:

  1. 构建目标目录应该是一个空目录,否则rpmbuild会将构建过程中生成的文件覆盖已有的文件。
  2. 构建目标目录应该具有足够的权限,以便rpmbuild可以在其中创建文件和目录。
  3. 构建目标目录的位置应该与RPM包的规范相符,以便在安装RPM包时能够正确地将文件复制到目标位置。

总结起来,rpmbuild在默认情况下将构建目标目录设置为/usr/local,但用户可以通过指定--buildroot选项来自定义构建目标目录的位置。这样可以更灵活地控制构建过程中生成的文件的位置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

RPM打包原理、示例、详解及备查

这些文件就是用户安装 RPM 后,最终得到文件。注意一个奇怪地方: 最终安装目录 不是 构建目录。通过执行类似 make install 命令实现。...-c name : 如果源码包解压后包含多个目录不是单个目录时,此选项可以创建名为 name 目录,并在其中解压。...测试代码应写入 %check 部分(紧接在 %install 之后,因为需要测试 %{buildroot} 文件),不是写入 %{build} 部分,这样才能在必要时忽略测试。...注意: 如果指定 %doc 条目,rpmbuild < 4.9.1 安装前会将 %doc 目录删除。...如果您想要在 %install 安装一些文档,请将它们临时安装到 build 目录不是 build root 目录,例如 _docs_staging,接着 %files 列出,如 %doc

10.1K71

rpm 快速入门与基础

- 树形依赖 - 环形依赖 - 模块依赖 模块依赖文件名是以.so.2结尾时候,代表这是一个文件,不是一个软件包此时是模块依赖,需要依赖一个库文件。...平台 -i686 适合硬件平台 -rpm 扩展名 源码包和RPM包区别: 安装之前区别:概念上区别 安装之后区别:安装位置不同,rpm也可以指定安装目录,rpm包安装服务可以使用系统服务管理命令...start RPM包默认安装位置: /etc/ 配置文件安装目录 /etc/sysconfig/ 初始化环境配置文件位置 /etc/init.d/ 启动脚本位置 /usr/bin/ 可执行命令安装目录...(由rpmbuild管理)- 解压程序源代码编译文件存储目录 SOURCE:用来存放打包是要用到源文件和补丁文件等存放位置 - 脚本存放目录 SPEC:存放spec文件作为制作rpm包领岗文件以...指定名字 -v 指定版本号 -C 指定打包相对路径(搜索文件之前,将目录更改为这里) -d 指定依赖于哪些包 -f 第二次打包时目录下如果有同名安装包存在

1.5K41

如何无网络下免编译安装程序(RPM包)

解压源码等 %setup: 解压源码(一般是位于%prep下macro, 自动解压源码) %build: 编译 %install: 安装, 即把一些可执行文件和配置复制到目标目录。...指定rpm包在安装卸载前后动作,比如在安装前用脚本做一些准备、安装后用脚本做一些初始化动作、卸载前用脚本做一些准备、卸载后用脚本做一些清理动作 rpmbuild命令选项 rpmbuild命令有不少选项...centos下无污染地打rpm包 mock编包一般是做发行版本给别人使用,当然你做软件要能在别人机器上跑,那么开发过程,我们必须模拟一个纯净用户环境(即是所谓chroot),mock在编包前先构建一个这样用户环境...总结来说,rpmbuild编出来包是特例,mock编出来包在具有共性。mock相当于给rpmbuild增加了一个外壳,包装了一下。...总结 rpmbuild打包一般步骤 根据rpmbuild标准,创建打包目录结构 将源码和辅助文件放到指定目录 编写spec文件,放到指定目录 根据需要构建rpm,或者rpm和srpm等。

2K170

RPM包制作之Spec文件参数详解

最终,Spec文件中最后有清理阶段,这个目录内容将被删除   Spec文件宏定义: rpmbuild --showrc | grep topdir #工作车间目录...为什么要定义宏,因为不同系统,命令存放位置可能不同,所以通过宏定义找到命令真正存放位置   1.2 理解Spec脚本各个变量 rpm配置文档还算是比较有调理性...这样,必须在这里定义该标识,并在编写%install脚本时候引用,才能实现rpm安装时重新指定位置功能 Prefix: %{_sysconfdir} 这个原因和上面的一样,但由于%{_prefix.../configure --user=nginx --group=nginx --prefix=/usr/local/nginx/…… %install: 安装步骤,此时需要指定安装路径,创建编译时自动生成目录...该选项%defattr (-,root,root)一定要注意。

2.6K20

RPM包制作之Spec文件参数详解

最终,Spec文件中最后有清理阶段,这个目录内容将被删除   Spec文件宏定义: rpmbuild --showrc | grep topdir #工作车间目录...为什么要定义宏,因为不同系统,命令存放位置可能不同,所以通过宏定义找到命令真正存放位置   1.2 理解Spec脚本各个变量 rpm配置文档还算是比较有调理性...这样,必须在这里定义该标识,并在编写%install脚本时候引用,才能实现rpm安装时重新指定位置功能 Prefix: %{_sysconfdir} 这个原因和上面的一样,但由于%{_prefix.../configure --user=nginx --group=nginx --prefix=/usr/local/nginx/…… %install: 安装步骤,此时需要指定安装路径,创建编译时自动生成目录...该选项%defattr (-,root,root)一定要注意。

3.9K00

RPM软件包管理机制之旅

-U和-F区别在于,-U允许系统未安装将要升级包,升级时候执行安装动作,-F则不能升级未安装包。...,用于查询某具体RPM包信息,不是已经安装到系统RPM包信息,如果想要查询已经安装到系统信息,可以去掉-p选项。...1.获取HLFS源代码    安装rpmbuild之后,通常会在家目录下产生rpmbuild目录: [kelvin@localhost ~]$ ls -r ~/rpmbuild SRPMS SPECS...一般来说,对于同一版本代码,每打包一次release号加1。Group指定了该软件类型,rpm所有可用类型可以/usr/share/doc/rpm-(rpm版本)/GROUPS文件查到。...rpmbuild常用宏是以下几个文件定义,需要时可以查看: /usr/lib/rpm/macros /usr/lib/rpm/redhat/macros /etc/rpm/macros ~/.rpmmacros

2.8K70

RPM包制作方法

RPM包制作方法 最近有同学问我制作RPM包相关问题,发现以前做过,但是忘记记录了,现在记录一下: 以打包nginx并带有nginx-rtmp工程为rpm为例: 首先,需要安装一个...rpmbuild: 点击(此处)折叠或打开 yum install rpm-build 安装完成之后,系统可以使用rpmbuild命令 然后下载nginx与nginx-rtmp...,当然,做包前提是我们手动能够编译,安装nginx+nginx-rtmp 接下来就可以开始写spec,因为打包rpm时,rpmbuild会根据spec来进行操作,将源码包解压,然后按照我们手动操作步骤进行操作...,一般是/root/rpmbuild下面 点击(此处)折叠或打开 [root@sr01 SOURCES]# pwd /root/rpmbuild/SOURCES [.../usr/local/nginx/conf/nginx.conf.default /usr/local/nginx/conf/scgi_params /usr/local/nginx

1.2K40

简单介绍RPM包制作方法

RPM是RedHat Package Manager(RedHat软件包管理工具)缩写,是一种用于互联网下载包打包及安装工具,它包含在某些Linux分发版。它生成具有.RPM扩展名文件。...以下操作centos-7进行。 制作nginxrpm例子 建立目录结构 /usr/src/redhat/SOURCES — 存放源代码,补丁,图标等文件。.../usr/src/redhat/RPMS — 存放由rpmbuild制作好二进制包。 /usr/src/redhat/SRPMS —存放由rpmbuild制作好源码包。...| grep nginx | grep -v grep`" ];then killall nginx >/dev/null exit 0 fi %files /usr/local/nginx 制作RPM...%build :开始编译软件,如make %install :开始安装软件,如make install %files :指定哪些文件需要被打包,如/usr/local/nginx %preun :定义卸载之前动作

1.3K30

实用入门分享:如何基于 OpenCloudOS 制作 RPM 软件包?

安装、卸载、文件列表:指定了RPM包安装、卸载和文件列表等信息。脚本:包含了安装、卸载、升级RPM包时需要执行脚本。...rpmbuild,即可完成 RPM 包构建。...命令如下:rpmbuild -bb ~/rpmbuild/SPECS/demo.specrpmbuild -bb 是一个用于 Linux 系统上构建 RPM 包命令,它会读取.spec 文件和 SOURCES...最后生成 RPM 包将在 ~/rpmbuild/RPMS/noarch ,这里通过 ls 查看该目录下文件:ls ~/rpmbuild/RPMS/noarch可以看到 demo-0.1-1.oc8....安装完成后,可以看到 /usr/bin 下存在一个 hello 可执行文件:ls /usr/bin | grep hello执行安装在系统 hello 命令:hello执行完成后显示:hello,

20440

rpm-build方式制作rpm包

二.具体操作 1.安装软件,这个命令将构建rpm包 yum -y install rpm-build 2.开始初始化,如下命令必定报错,他会在当前生成一个文件夹 rpmbuild -ba nginx.spec...:nginx-1.8.0.tar.gz #source制定源代码包,后面可以用%{source1}引用 %define nginx_datadir /usr/local/nginx #下面定义了nginx.../logs/error.log --http-log-path=%{nginx_datadir}/logs/access.log make %install #%install段开始把软件安装到虚拟目录...rpm %defattr(-,root,root,-) #%defattr指定包装文件属性 %{nginx_datadir} %changelog #%changelog 变更日志 4.开始打包 rpmbuild...rpmbuild/RPMS/x86_64/nginx-1.8.0-1.el7.centos.x86_64.rpm 因为打包时,没有将nginx脚本复制出来,所以要进到目录 用rpm -qi 可以看到打包信息

5.4K00

三分钟手操rpm包

准备rpm打包环境 搞了一台CentOS6.8系统来演示这个骚操作,redhat系其它发行版应该也类似。...创建了一个coding3min文件夹,里面名为run.sh脚本,作用是输出一句话。 把自己源码打成一个tar.gz包(随便什么压缩格式),然后放到rpmbuild源码包所在位置。...要想写一个自己spce文件,不如抄一个下来改改,一通操作过后,制作了一个精简spec文件 sudo vim rpmbuild/SPECS/coding3min.spec vim在编辑时候会自动生成...解压源码等 %prep %setup -q # 编译 %build # rpm安装前执行动作 %pre echo install begin... # 安装, 即把一些可执行文件和配置复制到目标目录...# 清理一些暂存文件 %clean rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_DIR # 定义哪些文件或者目录会放入rpm %files %defattr(-,

63310

docker+ovs+pipework配置容器ip互通

/local/bin/ 6.设置OVS系统开机启动 mkdir /opt/script mv autostart.sh script/ 自启动脚本 (每一台都要装)(该脚本只重启虚拟机之后使用)...vim /etc/rc.d/rc.local /opt/script/autostart.sh 将/opt/script/autostart.sh路径放入文本 chmod +x /etc/rc.d...效果:各自ping对方容器 虚拟机容器互通 验证网桥:进入每台机容器去ping同一台机虚拟机ip 注意:如果其他主机内容器不能ping同该容器,相同主机容器能ping通,请检查创建脚本是否忘记添加网关...ip ---- 八股文 docker 四种网络模型 我们使用docker run创建Docker容器时,可以用--net选项指定容器网络模式,Docker有以下4种网络模式 host模式,使用...kubernetespod就是多个容器共享一个Networknamespace. host模式 --net=host 容器和宿主机共享Network namespace 用户自定义 --net=自定义网络

21020

CentOS6下rpm打包实战

/SPECS/python.spec # 参照这个文件来写自己软件包spec文件 写自己软件包spec文件 spec文件各个选项意义参照这里 cd ~/rpmbuild cat ..../SPECS/python27-tstack.spec %debug_package %{nil} %define install_dir /usr/local/python27 Name: python27.../RPMS/x86_64/目录下找到编译好rpm包。...指定rpm包在安装卸载前后动作,比如在安装前用脚本做一些准备、安装后用脚本做一些初始化动作、卸载前用脚本做一些准备、卸载后用脚本做一些清理动作 rpmbuild命令选项 rpmbuild命令有不少选项...rpm包和源码rpm包 --target 指定生成rpm包平台,默认会生成i686和x86_64rpm包,但一般只需要x86_64rpm包 参考 http://vault.centos.org/

1.5K50

keepalived+haproxy构建高可用负载均衡集群

Layer3:Keepalived使用Layer3方式工作式时,Keepalived会定期向服务器群服务器 发送一个ICMP数据包(既我们平时用Ping程序),如果发现某台服务IP地址没有激活.../configure --prefix=/usr/local/keepalived                              指定路径编译 其中可能安装一下依赖包: openssl-devel.../local/keepalived/                                                      默认主目录,存在sbin/和etc/目录 # ln -s.../usr/local/keepalived/sbin/keepalived /sbin/                 便于管理keepalived,将文件链接 # ln -s /usr/local...#rpmbuild -tb haproxy-1.4.23.tar.gz                                            使用源码包构建rpm包 #cd /root

1.4K70

根据红帽RHEL7官方文档对centos7进行技术剖析(一)

/usr/sbin系统管理员命令脚本         /usr/local自定义软件路径     /etc:系统配置文件所存放位置     /var:系统数据存放位置     /run...]# pwd /root/rpmbuild 总结:/root下,使用(cd rpmbuild)就是相对路径切换目录;使用(cd /root/rpmbuild)就是使用绝对路径进行切换目录 [root@...使用yum管理软件: yum配置文件:/etc/yum.conf  将配置keepcache改为1则可以将安装软件下载 yum源文件目录:/etc/yum.repos.d/ yum源创建和指定:...那么自己yum源是前四条,[base]是源名字,给系统识别的;name=xxb是源描述,方便自己知道源用途;baseurl=file:///mnt/centos7是自己指定源,因为是自己本地创建...们是同一个文件,软链接原文件&链接文件拥有不同inode号,表明他们是两个不同文件;  文件属性上软链接明确写出了是链接文件,硬链接没有写 出来,因为本质上硬链接文件和原文件是完全平等关系

1.3K60
领券