yum-Transaktionsfehler beim Versuch, RPM zu installieren, das aus der RPM-Spezifikationsdatei erstellt wurde

432
glmdev

Ich verwende ein Metapaket, um Software und allgemeine Abhängigkeiten in mehreren Laborsystemen zu verwalten. Bis heute hat sich dies hervorragend bewährt. Nach einem kürzlich erstellten Build verursacht jede RPM-Spec-Dateidirektive zum Kopieren von Dateien, dass yum einen Transaktionsprüffehler ausgibt, wenn ich versuche, das erstellte RPM zu installieren.

Bauen / Installieren auf CentOS 7.

RPM-Spezifikationsdatei:

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: %/%-%-%-root-%(% -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 %  %description A meta package for the lab systems   %install rm -rf % mkdir -p %  mkdir -p %/usr/local/bin mkdir -p %/etc/cron.daily install -m 755 % %/etc/cron.daily/R-update.sh install -m 755 % %/usr/local/bin/R_labSelectInstall-03.R  # add the yum nightly updater script to cron daily install -m 755 % %/etc/cron.daily/yum-update-nightly  mkdir -p %/usr/share/emacs/site-lisp/site-start.d install -m 755 % %/usr/share/emacs/site-lisp/site-start.d/lab-init.el mkdir -p %/etc/profile.d install -m 755 % %/etc/profile.d/texlive.sh  # Create the directories and copy files for JabRef 4.3.1 mkdir -p %/usr/share/applications mkdir -p %/usr/share/icons install -m 755 % %/usr/local/bin/jabref install -m 755 % %/usr/local/bin/JabRef-4.3.1.jar install -m 755 % %/usr/share/applications/JabRef.desktop install -m 755 % %/usr/share/icons/JabRef_Icon.png  %clean rm -rf %  %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 

Dies funktioniert gut, aber wenn ich versuche, das resultierende RPM mithilfe von zu installieren, sudo yum install ./lab-meta-1.8.1-2EL7.x86_64.rpmerhalte ich die folgende Fehlermeldung:

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 ------------- 

Natürlich kann ich die in Konflikt stehenden Pakete nicht entfernen, da sie Kernsystempakete sind. Ich konnte keine ähnlichen Informationen online oder über SE finden. Ich bin sicher, ich habe irgendwo einen Tippfehler, aber ich finde es nicht. Jede Hilfe wäre sehr dankbar!

1
Vielleicht verwenden Sie Pfade, die zu anderen Paketen in Ihrem% -Installationsabschnitt gehören, die möglicherweise besser in den% post-Abschnitt eingefügt werden. strobelight vor 5 Jahren 0

1 Antwort auf die Frage

1
Chris Maes

wenn Sie angeben

%files /usr 

Sie packen das /usrVerzeichnis und alle seine Unterverzeichnisse. Sie müssen spezifischer sein, um nur die Dateien und Verzeichnisse zu packen, die wirklich zu Ihrem Paket gehören:

%files /usr/share/emacs/site-lisp /etc/cron.daily/* 

und so weiter...