- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
假设我为 myprog1 和 myprog2 构建的包要安装在/usr/lib/mysystem/myprog1/和/usr/lib/mysystem/myprog2/中
根据一些发行版的文档,例如 OpenSUSE,两个包都必须拥有共享目录。但是在 .spec 文件中是如何完成的呢?以下是正确的吗?
%files
/usr/lib/mysystem
或者我需要做什么
%files
%dir /usr/lib/mysystem
/usr/lib/mysystem/myprog<1|2>
最佳答案
通常只有一个包拥有一个给定的目录。在一个典型的系统上,会有一个包,如“文件系统”,它可能拥有诸如 /bin
之类的东西。对于 Red Hat 和 OpenSUSE 上的 filesystem
包,该包拥有 /usr/bin
但没有该目录中的任何文件。
你可以做到这一点,方法是制作一个包装器包,它拥有在你的应用程序之间共享的东西,并使其成为安装到这些目录中的应用程序的依赖项 (Requires
)。
要查看什么实际上拥有 rpm 的东西,您可以使用 -qf
选项,例如,
rpm -qf /usr/lib/mysystem/myprog
该命令适用于目录和文件。
%dir
和%files
的文档是决定如何让一个包拥有一个目录的起点。在 Maximum RPM: Taking the Red Hat Package Manager to the Limit , 第 13 章 Directives For the %files list ,它说:
As we mentioned in the section called The %files List, if a directory is specified in the %files list, the contents of that directory, and the contents of every directory under it, will automatically be included in the package
The way to get around this, is to use the %dir directive. By adding this directive to the line containing the directory, RPM will package only the directory itself, regardless of what files are in the directory at the time the package is created. Here's an example of %dir in action.
%dir /usr/blather
因此建议的后者遵循文档。但是,为了检查语法是否正确(即使 rpm 恰好构建),最好检查路径名列表。
调查 Fedora 21 以查找 rpm -qf
显示相同目录的软件包,找到了多个。例如,initscripts和 chkconfig使用 %dir
指令来执行此操作:
%dir /etc/rc.d
%dir /etc/rc.d/rc[0-9].d
%dir /etc/rc.d/init.d
在 initscripts
规范文件中,和
/etc/rc.d
/etc/rc.d/init.d
/etc/rc[0-6].d
/etc/rc.d/rc[0-6].d
在 chkconfig
规范文件中。但是,initscripts
包需要/sbin/chkconfig
,这是由chkconfig
包提供的。由于这种依赖性,chkconfig
是该目录的实际所有者。
关于linux - rpmbuild:目录的共同所有权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30067649/
我正在使用 tcod-rs。用于绘制到 RootConsole 的每个方法都采用一个可变引用。中央循环是一个 while 循环,它等待窗口关闭、清除屏幕、绘制,然后刷新。 “检查窗口关闭”方法也采用可
我写了一个具有这种形式的函数: 结果 f(const IParameter& p); 我的意图是这个签名将明确表明函数没有取得参数 p 的所有权。 问题是 Result 将保留对 IParameter
这个问题在这里已经有了答案: 关闭 9 年前。 Possible Duplicate: What is a smart pointer and when should I use one? 我正在阅
假设我有一个类: class Scheduler { Scheduler(JobService *service); AddJob(JobID id, ISchedule *sched
我试图弄清楚所有权如何与函数 CVMetalTextureGetTexture 一起工作: CVMetalTextureRef textureRef; // ... textureRef is cre
这个问题在这里已经有了答案: Should we pass a shared_ptr by reference or by value? (10 个答案) 关闭 4 年前。 例如 class A {
我正在做一个附带项目,我需要根据他的 gmail 帐户或任何其他参数来验证 channel 是否属于某个用户……这基本上是为了避免假帐户。是否可以? 最佳答案 是的, 跟随 youtube 记录的链接
我在使用Core Foundation Array时发现了一个奇怪的问题!这是代码片段 fname = CFStringCreateWithFormat(kCFAllocatorDefault, NU
有没有一种方法可以设置在 apache 下运行的 php 来创建文件夹,该文件夹的文件夹属于创建它的程序的所有者,而不是由 apache 拥有? 使用 word press 它会创建要上传到的新文件夹
我编写了以下函数来使用 boost.date_time 获取日期/时间字符串. namespace bpt = boost::posix_time; string get_date_time_stri
我在使用 Docker 容器时遇到了一个有点烦人的问题(我在 Ubuntu 上,所以没有像 VMWare 或 b2d 这样的虚拟化)。我已经构建了我的镜像,并且有一个正在运行的容器,它有一个来 sel
根据大多数示例,逻辑上最少有 3 个组织 ( org1, org2, orderer )。 实际上只有 2 个物理组织 ( org1, org2 )。任一组织或约定的第 3 方必须移交订购者组织的职责
我开始学习 Rust,在进行实验时,我发现所有权如何应用于我不理解的元组和数组的方式有所不同。基本上,以下代码显示了差异: #![allow(unused_variables)] struct Inn
我们有一个应用程序,其表单上有许多组件(面板、选项卡、编辑、组合框等)。但根据用户配置文件,其中大多数可以自动填充和/或不可见。因此,用户可以更快地完成工作。 问题:是否有更简单的方法可以在运行时创建
我有以下代码片段: fn f u32>(c: T) { println!("Hello {}", c()); } fn main() { let mut x = 32; let
我想执行示例中的代码: require_once 'google-api-php-client/vendor/autoload.php'; $client = new Google_C
这个问题在这里已经有了答案: What is move semantics? (11 个答案) 关闭 3 年前。 我有一个看起来像这样的构造函数: Thing::Thing(std::vector
我们正在使用服务帐户从服务器上传文件,但它已达到其存储配额限制。所有文件都已添加到另一个用户(具有 100 Gb 存储配额的 @gmail.com 帐户)创建的文件夹下,但上传的所有文件均归该服务帐户
我正处于 this question 中描述的 sme 情况。 .那个提问者找到的解决方案是 Full access !== Owner. I need to read the documentati
我正处于 this question 中描述的 sme 情况。 .那个提问者找到的解决方案是 Full access !== Owner. I need to read the documentati
我是一名优秀的程序员,十分优秀!