Install ePages on Linux with YUM or Zypper 6.15.1
Created: 6.14.1; Updated: 6.15.1

ePages supports both Redhat Enterprise Linux (aka. RHEL) and SuSE Linux Enterprise Server (aka. SLES). Redhat uses YUM as RPM package manager, SuSE uses Zypper. Following document shows instructions for both RPM package managers.

Table of Contents

1 Installing ePages

If you set the environment variable VERBOSE=1 then you get a verbose yum/zypper installation.

1.1 Install the Latest ePages Release

The initial installation process consists of two steps:

  1. Install the ePages repositories into /etc/yum.repos.d/ (resp. /etc/zypp/repos.d/) with rpmify-epages.sh.
  2. Install ePages itself with yum or zypper.
Run on Redhat:

  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  yum install @epages

Run on SuSE:

  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  zypper install epages

1.2 Install a Specific ePages Release

Beside the latest release, the ePages repository also provides any other releases starting from version 6.10.0. Installing old releases is similar to installing the latest release:

  1. Install the ePages repositories into /etc/yum.repos.d/ (resp. /etc/zypp/repos.d/) with rpmify-epages.sh.
  2. Enable the repository for the desired version (and disable the repository for the latest version).
  3. Install ePages itself with yum or zypper.
Run on Redhat: (VERSION=6.12.0 may differ)

  VERSION=6.12.0
  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  yum -y install @epages --enablerepo epages-$VERSION --disablerepo epages-setup

Run on SuSE: (VERSION=6.12.0 may differ)

  VERSION=6.12.0
  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  zypper mr -e epages-$VERSION
  zypper mr -d epages-setup
  zypper install epages
  zypper mr -d epages-$VERSION

1.3 Installing ePages With Language Packs

You may install ePages with language packs automatically starting from version 6.13.1.

For versions 6.13.x and 6.14.0 run following command to install all languages (example for Redhat):

  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  EPAGES_LANGUAGES=any EPAGES_LANG_KEY='k4_h1Hx+RH' yum install @epages

If you want to install specific languages, use the 2-character language codes, e.g. for Spanish and Italian:

  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  EPAGES_LANGUAGES='es it' EPAGES_LANG_KEY='k4_h1Hx+RH' yum install @epages

Starting from 6.14.1 EPAGES_LANG_KEY is not necessary anymore.

1.4 Installing ePages Without Starting the Database Installation

To avoid starting the database installation after the file installation, instead of installing the complete @epages group, just install its parts (example for Redhat):

  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  yum groupinstall epages-appsrv epages-reqsrv epages-mysqld epages-webconf epages-j

epages-j was introduced with 6.14.0, omit this if you want to install an older version.

1.5 Customizing the ePages Installation

After executing rpmify-epages.sh and before running yum/zypper you may change the file /etc/sysconfig/epages6 to customize your ePages installation:

  vi /etc/sysconfig/epages6
  . /etc/sysconfig/epages6

All customizable parameters are explained in /etc/sysconfig/epages6.

2 Patching ePages

2.1 Patch ePages to the Latest Version

YUM/Zypper can be used for patching only if the installed ePages has at least version 6.10.0.

Patching ePages consists of three steps:

  1. Update the ePages repositories with rpmify-epages.sh.
  2. Check for new RPM versions.
  3. Update new RPMs with yum or zypper.
Run on Redhat:

  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  yum check-update 'epages-*' --disablerepo epages-setup --enablerepo epages-update
  yum update 'epages-*' --disablerepo epages-setup --enablerepo epages-update

Run on SuSE:

  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  zypper mr -e epages-update
  zypper clean -a
  zypper list-updates
  zypper update
  zypper mr -d epages-update

Depending on the source version, it is possible that the target version can't be reached directly. Then, run the commands above again until the desired target version is reached.

2.2 Patch ePages to a Specific Version

ePages also can be patched to any desired version (starting from the installed version, at least 6.10.0). Patching to old versions is similar to patching to the latest version:

  1. Update the ePages repositories with rpmify-epages.sh.
  2. Enable the update repository for the desired version(and disable the update repository for the latest version).
  3. Update new RPMs with yum or zypper.
Run on Redhat: (VERSION=6.12.0 may differ)

  VERSION=6.12.0
  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  yum update 'epages-*' --disablerepo epages-setup --enablerepo epages-update-$VERSION

Run on SuSE: (VERSION=6.12.0 may differ)

  VERSION=6.12.0
  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  zypper mr -e epages-update-$VERSION
  zypper clean -a
  zypper mr -d epages-update
  zypper update
  zypper mr -d epages-update-$VERSION

Depending on the source version, it is possible that the target version can't be reached directly. Then, run the commands above again until the desired target version is reached.

2.3 Log Files for Patches

If a patch is installed with YUM/Zypper following log files are written (version 6.12.0 may vary):

/tmp/epages-6.12.0.new-versions
contains versions of all installed ePages patches
/tmp/epages-6.12.0.install-patch
contains the executed commands of the patch installation
~/epages-6.12.0-install.log
contains the output of the executed commands

2.4 Installing ePages Patch Files Without Starting the Patch

If you want to install the patch files into $EPAGES_SHARED/Patches/patch_X_Y_Z/ but don't want to start the patch executing './patch.sh install', run (example for Redhat):

  EPAGES_DO_PATCH=0 yum update 'epages-*' --disablerepo epages-setup --enablerepo epages-update

Then after installing the patch files, run following commands to install the patch itself:

  cd $EPAGES_SHARED/Patches/patch_*
  ./patch.sh install

2.5 Customizing the ePages Patch Installation

  EPAGES_BACKUP_DIR= EPAGES_BACKUP_DB= yum update 'epages-*' --disablerepo epages-setup --enablerepo epages-update

  EPAGES_PREREQ_INI=/tmp/prerequisits.ini yum update 'epages-*' --disablerepo epages-setup --enablerepo epages-update

  EPAGES_PATCH_CONF=/path/to/Conf yum update 'epages-*' --disablerepo epages-setup --enablerepo epages-update

Read the prerequisits.ini file resp. the Conf/ directory provided by the patch to find customizable parameters.

3 Using a Local Repository

ePages RPM packages are provided by following ePages repositories:

The repositories are mirrored. YUM chooses the one repository with the faster access.

If (parts of) your ePages installation has no (firewall) or slow internet connection, you may want to mirror the ePages repository to a local machine and install ePages from the local repository. The following 3 steps show you how.

1. Create a copy of the epages repository on your local machine. Choose your preferred mirroring/synchronization tool. The following example uses lftp to synchonize ftp://epages-software.de/pub/products/RPMS with the local directory /opt/epages-repository (directory may vary):

  cd /opt
  lftp -u ftp,ftp -e "mirror --delete --only-newer --verbose pub/products/RPMS epages-repository; quit" epages-software.de

2. Use the local repository for installing ePages:

  /opt/epages-repository/rpmify/rpmify-epages.sh -repo /opt/epages-repository

3. Now you can do everything with zypper/yum as described in the document, e.g. install ePages from the local repository (Redhat version):

  yum install @epages

The only difference to the official ePages repository is that the local repository isn't updated automatically. If you want to have your local repository up-to-date, run lftp (or your preferred mirror tool) once a month or so.

The -repo argument also allows any other http or ftp URL, so you can put your local repository on your http server for example.

4 Distributed Installation

For detailed instructions and examples for distributed installations see Linux Installation Guide: Distributed Installation

4.1 Installing Distributed Installations

An ePages 6 system consists of 5 main components:

If you want to install the components distributed over more than 1 server, execute the steps described below. All steps are explained for Redhat servers, installation on SuSE servers works accordingly.

1. Choose 1 server as file server and run on it:

  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  /var/tmp/epages-fs.sh -share

2. On all other servers run (where FILESERVER is the name of the file server):

  curl http://epages.com/RPMS/rpmify/rpmify-epages.sh | sh
  /var/tmp/epages-fs.sh -mount FILESERVER

3. (Optionally) Edit and start /etc/sysconfig/epages6:

  vi /etc/sysconfig/epages6
  . /etc/sysconfig/epages6

4. Install on each servers its components. Choose one/more of following command:

  yum groupinstall epages-appsrv
  yum groupinstall epages-reqsrv
  yum groupinstall epages-mysqld
  yum groupinstall epages-webconf
  yum groupinstall epages-j

epages-j is only introduces with 6.14.0, don't use it if you want to install an older version.

5. Start ePages on each server (order: first on java server, then on web server/request router, then on database server, last on application server):

  yum install epages-setup

4.2 Patching Distributed Installations

You can patch distributed installation with yum/zypper only under very special circumstances, normally distributed installations are patched manually with the patch.tar.gz file.

You may patch a distributed installation with yum/zypper if the installation consists of only 2 servers: a) the database server and b) the host with all other services. Then, first run on the database server:

  yum -y update 'epages-*' --disablerepo epages-setup --enablerepo epages-empty

Then run on the other server:

  yum -y update 'epages-*' --disablerepo epages-setup --enablerepo epages-update

4.3 Removing Distributed Installations

1. Run on each server but the file server:

  /var/tmp/epages-fs.sh -unmount
  yum groupremove ...

... means all packages you installed with yum groupinstall ... before.

2. Run on the file server:

  /var/tmp/epages-fs.sh -unshare
  yum groupremove ...

... means all packages you installed with yum groupinstall ... before.

5 Removing ePages

You may remove ePages by executing (only for Redhat):

  yum remove @epages

This does not remove ePages completely, changed files remain on the server. To remove ePages completely, run:

  /var/epages/delete-epages.sh

This works also for SuSE and removes all ePages RPMs, files, users, and databases.

6 Troubleshooting

6.1 Metadata File Does Not Match Checksum

Problem:

  http://epages.com/RPMS/6.12.0/i386/repodata/filelists.xml.gz: [Errno -1] Metadata file does not match checksum

Solution:

  yum clean all

6.2 Protected Multilib Versions

Problem:

  yum install krb5-libs.i686 openssl.i686 openssl098e.i686
  ...
  Error: Protected multilib versions: openssl-1.0.0-20.el6.i686 != openssl-1.0.0-10.el6_1.4.x86_64
  Error: Protected multilib versions: krb5-libs-1.9-22.el6_2.1.i686 != krb5-libs-1.9-9.el6_1.1.x86_64
   You could try using --skip-broken to work around the problem
   You could try running: rpm -Va --nofiles --nodigest

Solution:

  yum install --setopt=protected_multilib=false krb5-libs.i686 openssl.i686 openssl098e.i686

6.3 File Conflicts

Problem:

  yum install openssl.i686
  ...
  Transaction Check Error:
    file /usr/share/doc/openssl-1.0.0/README.FIPS from install of openssl-1.0.0-20.el6.i686 conflicts with file from package openssl-1.0.0-10.el6_1.4.x86_64
    file /usr/share/man/man1/ca.1ssl.gz from install of openssl-1.0.0-20.el6.i686 conflicts with file from package openssl-1.0.0-10.el6_1.4.x86_64
    file /usr/share/man/man1/openssl.1ssl.gz from install of openssl-1.0.0-20.el6.i686 conflicts with file from package openssl-1.0.0-10.el6_1.4.x86_64
    file /usr/share/man/man1/req.1ssl.gz from install of openssl-1.0.0-20.el6.i686 conflicts with file from package openssl-1.0.0-10.el6_1.4.x86_64
    file /usr/share/man/man1/x509.1ssl.gz from install of openssl-1.0.0-20.el6.i686 conflicts with file from package openssl-1.0.0-10.el6_1.4.x86_64

Solution 1 (preferred):

  yum -y install yum-utils
  mkdir -p download && cd download
  yumdownloader --resolve openssl.i686
  mv openssl-*.i686.rpm ..
  rpm -hUv *.rpm
  cd ..
  rpm -hiv --nodocs openssl-*.i686.rpm

Solution 2:

  rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}\n' 2>&1 | grep openssl
  # openssl-1.0.0-10.el6_1.4.x86_64
  rpm -e --justdb --nodeps openssl-1.0.0-10.el6_1.4.x86_64
  yum install krb5-libs.i686 openssl.i686 openssl098e.i686

6.4 TypeError: Unsupported Operand Type

Problem:

  yum install @epages
  ...
  Total download size: 220 M
  Is this ok [y/N]: y
  Downloading Packages:
  Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in ?
  yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 229, in user_main
  errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 181, in main
  return_code = base.doTransaction()
  File "/usr/share/yum-cli/cli.py", line 386, in doTransaction
    problems = self.downloadPkgs(downloadpkgs, callback_total=self.download_callback_total_cb)
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 1108, in downloadPkgs
  remote_size += po.size
  TypeError: unsupported operand type(s) for +=: 'int' and 'str'

Solution:

  yum -y install yum-utils
  mkdir -p download && cd download
  yumdownloader --resolve yum-metadata-parser
  rpm -hiv --force yum-metadata-parser-*.el5.i386

6.5 Uninstallable Providers

Problem:

  # zypper install graphviz
  Loading repository data...
  Reading installed packages...
  Resolving package dependencies...

  Problem: graphviz-2.20.2-6.19.x86_64 requires libXpm.so.4()(64bit), but this requirement cannot be provided
    uninstallable providers: xorg-x11-libXpm-7.4-1.17.x86_64[SMT-http_sles-reg_aul_t-online_de:SLES11-SP1-Pool]
   Solution 1: Following actions will be done:
    do not forbid installation of xorg-x11-libXpm-7.4-1.17.x86_64[SMT-http_sles-reg_aul_t-online_de:SLES11-SP1-Pool]
    do not forbid installation of xorg-x11-libXfixes-7.4-1.14.x86_64[SMT-http_sles-reg_aul_t-online_de:SLES11-SP1-Pool]
    do not forbid installation of xorg-x11-libXp-7.4-1.14.x86_64[SMT-http_sles-reg_aul_t-online_de:SLES11-SP1-Pool]
    do not forbid installation of xorg-x11-libXprintUtil-7.4-1.17.x86_64[SMT-http_sles-reg_aul_t-online_de:SLES11-SP1-Pool]
    do not forbid installation of xorg-x11-libXrender-7.4-1.14.x86_64[SMT-http_sles-reg_aul_t-online_de:SLES11-SP1-Pool]
    do not forbid installation of xorg-x11-libXv-7.4-1.14.x86_64[SMT-http_sles-reg_aul_t-online_de:SLES11-SP1-Pool]
    do not forbid installation of xorg-x11-libfontenc-7.4-1.15.x86_64[SMT-http_sles-reg_aul_t-online_de:SLES11-SP1-Pool]
    do not forbid installation of xorg-x11-libxkbfile-7.4-1.14.x86_64[SMT-http_sles-reg_aul_t-online_de:SLES11-SP1-Pool]
   Solution 2: do not install graphviz-2.20.2-6.19.x86_64
   Solution 3: break graphviz-2.20.2-6.19.x86_64 by ignoring some of its dependencies

Solution:

Problem is that packages are locked, see 'Package Locks Management' in 'man zypper'.

Show all locks:

  # zypper ll
  
  #  | Name                   | Type    | Repository
  ---+------------------------+---------+-----------
  1  | libmysqlclient_r15     | package | (any)     
  2  | xorg-x11-libXfixes     | package | (any)     
  3  | Mesa                   | package | (any)     
  4  | libqt4-sql-mysql       | package | (any)     
  5  | xorg-x11-libXp         | package | (any)     
  6  | xorg-x11-libXpm        | package | (any)     
  ...

Locks are defined in /etc/zypp/locks. Remove a lock (say number 6) by executing:

  # zypper rl 6

Or remove all locks by deleting /etc/zypp/locks.


Copyright ePages Software GmbH 2013