在 Fedora 20/21 下构建软件集合元数据包失败

Building software collections metapackage fails under Fedora 20/21

我在 fedora 20 或 21 下构建软件集合元包时遇到一些问题。它在 RHEL7/RHEL6/Fedora19 下工作正常。如果我只是复制软件集合网站上的示例,我会得到同样的错误 (https://www.softwarecollections.org/en/docs/guide/#sect-Creating_a_Meta_Package)

我得到的错误是(假设我的 scl 被命名为 'myscl')

error: File not found: /home/user/rpmbuild/BUILDROOT/myscl-1-1.fc21.x86_64/opt/rh/myscl/myscl

看起来软件集名称由于某种原因重复了。

正如我所说,这在 RHEL7 上运行良好,其中 scl-utils* 软件包较旧。

如有任何建议,我们将不胜感激。

使用 scl-utils-2.0 是否可以只构建新类型的集合。

而不是在元数据包规范文件中使用以下结构

cat >> %{buildroot}%{_scl_scripts}/enable << EOF
export PATH=%{_bindir}${PATH:+:${PATH}}
export LD_LIBRARY_PATH=%{_libdir}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export MANPATH=%{_mandir}:$MANPATH
export PKG_CONFIG_PATH=%{_libdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
EOF

你应该使用

cat >> %{buildroot}%{_scl_scripts}/%{scl} << EOF
#Module1.0
prepend-path    X_SCLS              %{scl}
prepend-path    PATH                %{_bindir}
prepend-path    LD_LIBRARY_PATH     %{_libdir}
prepend-path    MANPATH             %{_mandir}
prepend-path    PKG_CONFIG_PATH     %{_libdir}/pkgconfig
EOF
#automaticaly create enable script for compatibility
%scl_enable_script


https://bugzilla.redhat.com/show_bug.cgi?id=1188862
https://bugzilla.redhat.com/show_bug.cgi?id=1180638