xcat2 / xcat-core

Code repo for xCAT core packages
Eclipse Public License 1.0
360 stars 171 forks source link

Running genimage using RHEL 7.4 and EPEL7 air-gapped repos, erroneous package added #5154

Open jbaksta opened 6 years ago

jbaksta commented 6 years ago

When I run genimage on a RHEL 7.4 management server (xCAT 2.13.10), using air-gapped RHEL 7.4 and EPEL 7 repos, yum continuously installs the php-horde-passwd package and I cannot figure out why this may be and I've made sure that no php* dependent packages or php itself is in my pkglist file, but still every time it want's to install php-horde-passwd and then request to install all dependent packages.

Contents of my pkglist file (with newlines stripped):

kernel kernel-devel dracut-network dracut-config-rescue kexec-tools microcode_ctl kbd glibc glibc-utils glibc-static glibc-common glibc-headers dkms man man-pages bash bash-completion ksh tcsh zsh xterm dhclient bind-libs bind-utils openssh-server ethtool iputils procmail e2fsprogs xfsprogs autofs nfs-utils gdisk openssl openssl-devel sudo password finger ca-certificates ipa-client sssd samba4-libs gcc gcc-c++ gcc-gfortran libgcc compat-libstdc++-33 valgrind gdb cpp autoconf automake binutils strace git subversion bzr cmake babel wget curl flex elfutils elfutils-libs m4 libtool libarchive mercurial patch patchutils flex imake cvs cvsps chrpath rpmdevtools rpmlint readline readline-devel gawk vim vim-filesystem emacs nano file file-libs libconfig dejavu* freetype fontconfig fontpackages-filesystem perl pcre perl-Carp perl-constant perl-Encode perl-Exporter perl-File-Path perl-File-Temp perl-Filter perl-Getopt-Long perl-HTTP-Tiny perl-libs perl-macros perl-parent perl-PathTools perl-Pod-Escapes perl-podlators perl-Pod-Perldoc perl-Pod-Simple perl-Pod-Usage perl-Scalar-List-Utils perl-Socket perl-Storable perl-Text-ParseWords perl-threads perl-threads-shared perl-Time-HiRes perl-Time-Local python python-devel python-libs python-argparse libxml2-python rpm-python python-iniparse python-urlgrabber tcl tk tk-devel lua lua-term lua-posix lua-filesystem lua-lpeg lua-json procps-ng htop iftop powertop cpupowerutils sysstat tar bzip2 gzip pigz zip unzip lzo lzo-devel xz xz-libs xz-lzma-compat zlib zlib-devel lz4-devel screen tmux numactl libcgroup libevent libssh2 lsscsi lsof wget curl rsync rsyslog usbutils which bc irqbalance procps-ng ntp net-tools ethtool yum yum-utils pciutils gtk2 atk cairo clustershell net-snmp dstat perf hwloc-gui tuned parted gpfs.base-4.2.3-6.x86_64 gpfs.ext-4.2.3-6.x86_64 gpfs.gskit-8.0.50-75.x86_64 gpfs.gpl-4.2.3-6.noarch gpfs.license.std-4.2.3-6.x86_64 cuda-drivers biosdevname dmidecode ctags cpupowerutils hwloc json-c chrpath firefox gettext ipmitool iotop OpenIPMI OpenIPMI-libs openjpeg-libs tmpwatch traceroute time pytz perl-IO-Compress libsysfs libtar lbnl-nhc lm_sensors postfix mailx

It's bizarre as I look at the yum transaction file, I see the following:

mbr: php-horde-passwd,noarch,0,5.0.7,1.el7 70
  repo: rhels7.4-x86_64-5
  ts_state: u
  output_state: 20
  isDep: False
  reason: user
  reinstall: False

This suggest that yum is requesting php-horde-passwd on the command or in a file somewhere, but I can't find out where that even might happen. Any ideas?

Again, only happens in genimage process. Not after a node is booted, nor in the chroot of the rootdir when updating packages or installing new ones.

immarvin commented 6 years ago

hi @jbaksta , would you please provide : 1) the osimage definition 2) the screen log of genimage when you see the installation ofphp-horde-passwd? you can capture if by genimage <osimage> > /tmp/genimage.log 2>&1

thx

jbaksta commented 6 years ago
Object name: t2018.03
    addkcmdline=transparent_hugepage=madvise
    exlist=/install/custom/netboot/configs/compute.exlist
    imagetype=linux
    osarch=x86_64
    osdistroname=rhels7.4-x86_64
    osname=Linux
    osvers=rhels7.4
    otherpkgdir=/install/post/otherpkgs/rhels7.4/x86_64
    otherpkglist=/install/custom/netboot/t2018.03/compute.opkglist
    permission=755
    pkgdir=/install/repos/rhels7.4/rhel-7-server-rpms,/install/repos/rhels7.4/rhel-7-server-rh-common-rpms,/install/repos/rhels7.4/rhel-7-server-optional-rpms,/install/repos/rhels7.4/rhel-7-server-supplementary-rpms,/install/repos/rhels7.4/rhel-7-server-extras-rpms,/install/repos/epel7,/install/repos/arcc-el7
    pkglist=/install/custom/netboot/t2018.03/compute.pkglist
    postinstall=/install/custom/netboot/t2018.03/compute.postinstall
    postscripts=arcc_partdisk.teton,arcc_infiniband,teton_gpfs,arcc_verify
    profile=compute
    provmethod=netboot
    rootimgdir=/install/custom/netboot/t2018.03
    synclists=/install/custom/netboot/configs/compute.synclist
jbaksta commented 6 years ago

genimage-t2018.03.log

robin2008 commented 6 years ago

@jbaksta
From the log, it seems php-horde-passwd required by some packages, so it will be installed, but in the postinstall, your script will remove it.

+ yum -y install munge
Package munge-0.5.11-3.el7.x86_64 already installed and latest version
Nothing to do
+ yum -y remove 'php-*' httpd

Then it will be installed again every-time when genimage.

jbaksta commented 6 years ago

Yes, that remove php-* is in there for the sole purpose of removeing the php-horde-passwd and the associated dependencies. The issue is within the first comment when looking at the yum transaction log, the reason the package is being requested is due to user which I don't see it anywhere in my package list or such. If it were a dependency of a package it should be labeled as dependency, not user.