私はメタパッケージを使用して、いくつかのラボシステム間でソフトウェアと共通の依存関係を管理していますが、今日まで、これはうまく機能していました。ただし、最近ビルドした後、ファイルをコピーするすべてのRPM仕様ファイルディレクティブにより、ビルドされたRPMをインストールしようとすると、yumがトランザクションチェックエラーをスローします。
CentOS7へのビルド/インストール。
RPMスペックファイル:
Name: lab-meta
Url: http://pkgs.local/EL/7
License: GPL
Group: User Interface/Desktops
Version: 1.8.1
Release: 2%{?dist}
Summary: lab meta package
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source2: R-update.sh
Source3: R_labSelectInstall-03.R
Source5: lab-init.el
Source6: texlive.sh
Source7: jabref
Source8: JabRef-4.3.1.jar
Source9: JabRef.desktop
Source10: JabRef_Icon.png
Source11: yum-update-nightly
Requires: R, emacs, emacs-ess, texlive-datetime, texlive-ifthenx
Requires: texlive-relsize, texlive-graphbox
Requires: jags4, jags4-devel, jags4-debuginfo
Requires: xfce4-places-plugin
Obsoletes: jags3, jags3-devel, jags3-debuginfo
Requires: python34, python-matplotlib, python-matplotlib-doc
Requires: python-matplotlib-qt4, python-matplotlib-tk, scipy, python34-tools
Requires: python-pandas, python34-numpy,python34-numpy-f2py
Requires: numpy, numpy-f2py, pandoc-citeproc
Requires: pspp, git-lfs
Requires: xorg-x11-server-Xvfb, qca-ossl,
Requires: postgresql-devel,
Requires: cdo, cdo-debuginfo, chromium
Requires: chromium, chromium-libs, chromium-libs-media
Requires: libreoffice-TexMaths, libreoffice-math, libreoffice-nlpsolver
Requires: libreoffice-librelogo, libreoffice-filters
Requires: gdal-devel, gdal, proj-devel, proj-epsg, proj-static, proj-nad
# Required for JabRef 4.3.1:
Requires: jdk1.8
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
%define __jar_repack %{nil}
%description
A meta package for the lab systems
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}
mkdir -p %{buildroot}/usr/local/bin
mkdir -p %{buildroot}/etc/cron.daily
install -m 755 %{SOURCE2} %{buildroot}/etc/cron.daily/R-update.sh
install -m 755 %{SOURCE3} %{buildroot}/usr/local/bin/R_labSelectInstall-03.R
# add the yum nightly updater script to cron daily
install -m 755 %{SOURCE11} %{buildroot}/etc/cron.daily/yum-update-nightly
mkdir -p %{buildroot}/usr/share/emacs/site-LISP/site-start.d
install -m 755 %{SOURCE5} %{buildroot}/usr/share/emacs/site-LISP/site-start.d/lab-init.el
mkdir -p %{buildroot}/etc/profile.d
install -m 755 %{SOURCE6} %{buildroot}/etc/profile.d/texlive.sh
# Create the directories and copy files for JabRef 4.3.1
mkdir -p %{buildroot}/usr/share/applications
mkdir -p %{buildroot}/usr/share/icons
install -m 755 %{SOURCE7} %{buildroot}/usr/local/bin/jabref
install -m 755 %{SOURCE8} %{buildroot}/usr/local/bin/JabRef-4.3.1.jar
install -m 755 %{SOURCE9} %{buildroot}/usr/share/applications/JabRef.desktop
install -m 755 %{SOURCE10} %{buildroot}/usr/share/icons/JabRef_Icon.png
%clean
rm -rf %{buildroot}
%post
/sbin/ldconfig
/usr/bin/git lfs install --system
# set Oracle JDK as default
/usr/sbin/alternatives --set Java /usr/Java/jdk1.8.0_181-AMD64/jre/bin/Java
R CMD javareconf
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
/usr
/etc
これは問題なくビルドされますが、Sudo yum install ./lab-meta-1.8.1-2EL7.x86_64.rpm
を使用して結果のRPMをインストールしようとすると、次のエラーが発生します。
Running transaction check
Running transaction test
Transaction check error:
file /usr/share/emacs from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package emacs-filesystem-1:25.1-2.el7.centos.noarch
file /usr/share/emacs/site-LISP from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package emacs-filesystem-1:25.1-2.el7.centos.noarch
file /usr/share/emacs/site-LISP/site-start.d from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package emacs-filesystem-1:25.1-2.el7.centos.noarch
file /usr/share/emacs/site-LISP from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package emacs-common-1:25.1-2.el7.centos.x86_64
file /usr/share/emacs/site-LISP/site-start.d from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package emacs-common-1:25.1-2.el7.centos.x86_64
file /etc from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package createrepo-0.9.9-28.el7.noarch
file /etc/cron.daily from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package crontabs-1.11-6.20121102git.el7.noarch
file /usr from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package jdk1.8-2000:1.8.0_181-fcs.x86_64
file /usr/share/emacs from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package autoconf-2.69-11.el7.noarch
file /usr/share/emacs/site-LISP from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package autoconf-2.69-11.el7.noarch
file /etc/profile.d from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package setup-2.8.71-9.el7.noarch
file /etc from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package filesystem-3.2-25.el7.x86_64
file /usr from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package filesystem-3.2-25.el7.x86_64
file /usr/local from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package filesystem-3.2-25.el7.x86_64
file /usr/local/bin from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package filesystem-3.2-25.el7.x86_64
file /usr/share from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package filesystem-3.2-25.el7.x86_64
file /usr/share/applications from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package filesystem-3.2-25.el7.x86_64
file /usr/share/icons from install of lab-meta-1.8.1-2EL7.x86_64 conflicts with file from package filesystem-3.2-25.el7.x86_64
Error Summary
-------------
明らかに、競合するパッケージはコアシステムパッケージであるため、削除できません。オンラインまたはSEで同様の情報を見つけることができませんでした。どこかにタイプミスがあると思いますが、見つからないようです。どんな助けでも大歓迎です!
指定するとき
%files
/usr
/usr
ディレクトリとそのすべてのサブディレクトリをパッケージ化しています。パッケージに本当に属するファイルとディレクトリのみをパッケージ化するには、より具体的にする必要があります。
%files
/usr/share/emacs/site-LISP
/etc/cron.daily/*
エトセトラ...