Skip to main content
Solved

I'm installing FME Server on CentOS that has no internet access (offline) and the installer is aborting.


fmelizard
Contributor
Forum|alt.badge.img+17

When running the FME Server Installer on a CentOS system that is offline, the installer aborts with errors similar to the following:

No matching distribution found for numpy

No matching distribution found for matplotlib

scriptlet failed, exit status 1

Best answer by steveatsafe

Installing FME Offline

FME on Linux requires many third party packages. These dependencies must be satisfied when FME is installed. The easiest way to satisfy these dependencies is to install FME on a computer that is connected to the internet, allowing packages to be downloaded as needed.

It is possible however, with significant effort, to manually prepare an offline computer for FME installation.

UbuntuRedHat/CentOS

View original
Did this help you find an answer to your question?

4 replies

steveatsafe
Safer
Forum|alt.badge.img+12
  • Safer
  • Best Answer
  • July 11, 2017

Installing FME Offline

FME on Linux requires many third party packages. These dependencies must be satisfied when FME is installed. The easiest way to satisfy these dependencies is to install FME on a computer that is connected to the internet, allowing packages to be downloaded as needed.

It is possible however, with significant effort, to manually prepare an offline computer for FME installation.

UbuntuRedHat/CentOS


  • August 24, 2018

I am also installing FME Server to Linux (RedHat 7) w/o Internet access.  I can install the required Red Hat and EPEL packages, and I can install the PIP packages by downloading them to the server [1], but the installer still fails, because the RPM includes a preinstall script that calls the 'pip install' commands.  I can extract the RPM from the installer [2] and install it [3], but then I'm bypassing the setup that happens when running the installer, such as setting installation directory and admin password.

@SteveAtSafe is it possible to pass an rpm option to the installer that will get passed to the rpm command?  Since I already have the PIP packages installed I want to use the '--nopre' option to tell it to skip the RPM's preinstall script.  Barring that, can I prepare a response file for the RPM installation to get the configuration options that you get with the installer?

[1]

other-servermkdir /tmp/pip_fme
other-serverpip download -d /tmp/pip_fme/ lxml numpy matplotlib Pillow bs4
fme-serverscp -r other-server:/tmp/pip_fme /tmp/
fme-serverpip install --no-index --find-links=file:/tmp/pip_fme lxml numpy matplotlib Pillow bs4

[2]

./fme-server-2018.1.0.1-b18528-linux-x64~el7.centos.run --tar xf ./fme-engine-2018-2018.1.0.1-18528.el7.centos.x86_64.rpm

[3]

rpm -ivh --nopre fme-engine-2018-2018.1.0.1-18528.el7.centos.x86_64.rpm

ravenkopelman
Safer
Forum|alt.badge.img+1
ianwbc wrote:

I am also installing FME Server to Linux (RedHat 7) w/o Internet access.  I can install the required Red Hat and EPEL packages, and I can install the PIP packages by downloading them to the server [1], but the installer still fails, because the RPM includes a preinstall script that calls the 'pip install' commands.  I can extract the RPM from the installer [2] and install it [3], but then I'm bypassing the setup that happens when running the installer, such as setting installation directory and admin password.

@SteveAtSafe is it possible to pass an rpm option to the installer that will get passed to the rpm command?  Since I already have the PIP packages installed I want to use the '--nopre' option to tell it to skip the RPM's preinstall script.  Barring that, can I prepare a response file for the RPM installation to get the configuration options that you get with the installer?

[1]

other-servermkdir /tmp/pip_fme
other-serverpip download -d /tmp/pip_fme/ lxml numpy matplotlib Pillow bs4
fme-serverscp -r other-server:/tmp/pip_fme /tmp/
fme-serverpip install --no-index --find-links=file:/tmp/pip_fme lxml numpy matplotlib Pillow bs4

[2]

./fme-server-2018.1.0.1-b18528-linux-x64~el7.centos.run --tar xf ./fme-engine-2018-2018.1.0.1-18528.el7.centos.x86_64.rpm

[3]

rpm -ivh --nopre fme-engine-2018-2018.1.0.1-18528.el7.centos.x86_64.rpm
Hi @ianwbc, thanks for the description of your scenario.  I hope that we can improve on this in future releases.  (I am disappointed that pip goes the internet even when the desired packages are already installed.)

 

 

For the moment, I have two workarounds you could try.

 

 

1. Create "pip" and "pip3" files, mark them as executable, and make sure they show up earlier in your path than the real pips.  They might need a first line that says what command interpreter to invoke - ie bash, but otherwise should do nothing.  Then when you install we'll issue the pip commands and they won't do anything but will pass.

 

 

2. The pip commands are plaintext in the .rpm installer.  Using a hex editor you could try to delete those lines, or change them into something that does nothing, like an "echo" command.  I haven't tried this - it might be trickier than I hope.

 

 

Please let us know how it goes!

 


  • August 24, 2018
ravenkopelman wrote:
Hi @ianwbc, thanks for the description of your scenario. I hope that we can improve on this in future releases. (I am disappointed that pip goes the internet even when the desired packages are already installed.)

 

 

For the moment, I have two workarounds you could try.

 

 

1. Create "pip" and "pip3" files, mark them as executable, and make sure they show up earlier in your path than the real pips. They might need a first line that says what command interpreter to invoke - ie bash, but otherwise should do nothing. Then when you install we'll issue the pip commands and they won't do anything but will pass.

 

 

2. The pip commands are plaintext in the .rpm installer. Using a hex editor you could try to delete those lines, or change them into something that does nothing, like an "echo" command. I haven't tried this - it might be trickier than I hope.

 

 

Please let us know how it goes!

 

@ravenkopelman thanks for the quick reply. Turns out the problem was on my end. I noticed that the RPM's preinstall script called both 'pip install' and 'pip3 install' for each package, but I had only downloaded the pip packages with 'pip download'. After repeating with 'pip3 download' and then 'pip3 install' the RPM was installed without error.

Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings