【问题标题】:How to install a symlink within an rpm spec file如何在 rpm 规范文件中安装符号链接
【发布时间】:2020-12-23 00:28:38
【问题描述】:

我已经阅读了与此问题相关的其他几个问题,但我找不到我的问题的直接答案。我必须安装几个指向 /etc 的符号链接,这些符号链接指向我在 /opt/myapp 中安装的文件,所以我需要我的文件看起来像这样:

/etc/sysconfig/myapp -> /opt/myapp/etc/sysconfig/myapp

现在我的规范文件如下所示:

%install
ln -sf %{buildroot}/etc/sysconfig/myapp /opt/myapp/etc/sysconfig/myapp

%files
%attr(0644, root, root) "/etc/sysconfig/myapp"
%dir %attr(0755, root, root) "/opt/myapp/etc/sysconfig"
%config(noreplace) %attr(0644, root, root) "/opt/myapp/etc/sysconfig/myapp"

当我运行 rpmbuild 时,我得到了这个:

ln: failed to create symbolic link '/opt/myapp/etc/sysconfig/myapp': No such file or directory

我知道这个目录不存在。它是由%files 部分安装的,那么我该如何避免这个错误呢?

【问题讨论】:

    标签: rpm rpmbuild rpm-spec


    【解决方案1】:

    ln takes the target first,所以应该是ln -sf /opt/myapp/etc/sysconfig/myapp %{buildroot}/etc/sysconfig/myapp

    • -s 使其成为符号链接
    • -f 因为/opt/myapp/etc/sysconfig/myapp 不需要存在于构建系统中

    【讨论】:

      猜你喜欢
      • 2011-06-16
      • 1970-01-01
      • 2019-06-14
      • 1970-01-01
      • 2014-10-10
      • 2015-05-20
      • 2019-07-01
      • 1970-01-01
      • 2019-09-22
      相关资源
      最近更新 更多