firedrakeproject / firedrake

Firedrake is an automated system for the portable solution of partial differential equations using the finite element method (FEM)
https://firedrakeproject.org
Other
509 stars 159 forks source link

Firedrake fails to install on Mac OS Sierra #1067

Closed vressegu closed 7 years ago

vressegu commented 7 years ago

Hello,

I am a new user. I ran the script firedrake-install, it installed virtualenv first and asked me to rerun the installation script. During the second run, the installation process failed when it was trying to install EIGEN. Below is the error message.

Could you help me?

Thank you in advance

                        ===============================================================================
                            Trying to download hg://https://bitbucket.org/eigen/eigen/ for EIGEN
                        ===============================================================================

*******************************************************************************
         UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log for details):
-------------------------------------------------------------------------------
Error during download/extract/detection of EIGEN:
Could not located downloaded package EIGEN in /private/var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-rxEjYg-build/arch-python-macosx-10.6-intel/externalpackages
*******************************************************************************

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/private/var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-rxEjYg-build/setup.py", line 302, in <module>
    **metadata)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/private/var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-rxEjYg-build/setup.py", line 218, in run
    config(prefix, self.dry_run)
  File "/private/var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-rxEjYg-build/setup.py", line 148, in config
    if status != 0: raise RuntimeError(status)
RuntimeError: 256

----------------------------------------

Command "/Users/valentin/Documents/Python/firedrake/bin/python -u -c "import setuptools, tokenize;file='/private/var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-rxEjYg-build/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-0MCNCw-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/valentin/Documents/Python/firedrake/bin/../include/site/python2.7/petsc" failed with error code 1 in /private/var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-rxEjYg-build/ Traceback (most recent call last): File "firedrake-install", line 1318, in install("petsc/") File "firedrake-install", line 754, in install run_pip_install(["--ignore-installed", package]) File "firedrake-install", line 624, in run_pip_install check_call(pipinstall + pipargs) File "firedrake-install", line 369, in check_call subprocess.check_call(arguments, env=env) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 186, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['/Users/valentin/Documents/Python/firedrake/bin/pip', 'install', '--no-binary', 'mpi4py', '--no-deps', '--ignore-installed', 'petsc/']' returned non-zero exit status 1

dham commented 7 years ago

Hi, there is a known issue upstream with Eigen at the moment. The good news is that most Firedrake users don't need Eigen, so you can temporarily work around the problem by disabling the download:

PETSC_CONFIGURE_OPTIONS="--download-eigen=0" python firedrake-install
wence- commented 7 years ago

We are trying to figure out how to do this better. One thing we are attempting is to download eigen ourselves and then tell PETSc. If have a change that maybe does this successfully.

If you'd like to try (it seems to work for me). You can download the install script from https://raw.githubusercontent.com/firedrakeproject/firedrake/eigen-download/scripts/firedrake-install and run firedrake-install as before (you will need to remove the firedrake directory it created).

Thanks!

vressegu commented 7 years ago

Hi,

Thank you for the quick answer.

When I tried the solution of Dham, I get the following error. Unfortunately, I did not manage to make the solution of Wence work.

=============================================================================== Trying to download git://https://bitbucket.org/petsc/pkg-metis.git for METIS

*******************************************************************************
         UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log for details):
-------------------------------------------------------------------------------
CMake > 2.5 is needed to build METIS
Suggest adding --download-cmake to ./configure arguments
*******************************************************************************

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/private/var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-QVx3AY-build/setup.py", line 302, in <module>
    **metadata)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/private/var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-QVx3AY-build/setup.py", line 218, in run
    config(prefix, self.dry_run)
  File "/private/var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-QVx3AY-build/setup.py", line 148, in config
    if status != 0: raise RuntimeError(status)
RuntimeError: 256

----------------------------------------

Command "/Users/valentin/Documents/Python/firedrake/bin/python -u -c "import setuptools, tokenize;file='/private/var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-QVx3AY-build/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-MJEsqg-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/valentin/Documents/Python/firedrake/bin/../include/site/python2.7/petsc" failed with error code 1 in /private/var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/pip-QVx3AY-build/ Traceback (most recent call last): File "firedrake-install", line 1318, in install("petsc/") File "firedrake-install", line 754, in install run_pip_install(["--ignore-installed", package]) File "firedrake-install", line 624, in run_pip_install check_call(pipinstall + pipargs) File "firedrake-install", line 369, in check_call subprocess.check_call(arguments, env=env) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 186, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['/Users/valentin/Documents/Python/firedrake/bin/pip', 'install', '--no-binary', 'mpi4py', '--no-deps', '--ignore-installed', 'petsc/']' returned non-zero exit status 1

wence- commented 7 years ago

OK, it looks like somehow your environment is providing older build tools than we need. Can you paste the output of running:

which cmake
cmake --version

As well as:

env

In your shell?

vressegu commented 7 years ago

I obtained the following:

dyn901-100:Python valentin$ which cmake dyn901-100:Python valentin$ cmake --version -bash: cmake: command not found

dyn901-100:Python valentin$ env TERM_PROGRAM=Apple_Terminal SHELL=/bin/bash TERM=xterm-256color TMPDIR=/var/folders/1w/7tb_khf90jjdfpbqnzgp4yzh0000gp/T/ Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.P3nH3coGsZ/Render TERM_PROGRAM_VERSION=388.1 OLDPWD=/Users/valentin/Documents TERM_SESSION_ID=90DE7454-8289-4595-9BA7-32811BB48F9F USER=valentin SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.eFmCVewB8O/Listeners __CF_USER_TEXT_ENCODING=0x1F6:0x0:0x1 PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin PWD=/Users/valentin/Documents/Python LANG=fr_FR.UTF-8 XPC_FLAGS=0x0 XPC_SERVICENAME=0 SHLVL=1 HOME=/Users/valentin LOGNAME=valentin DISPLAY=/private/tmp/com.apple.launchd.TmFYWlU6ED/org.macosforge.xquartz:0 =/usr/bin/env

wence- commented 7 years ago

Hmmm, the install script attempts to install cmake via homebrew, but somehow this never happened.

What does brew info cmake say?

vressegu commented 7 years ago

dyn901-100:Python valentin$ brew info cmake cmake: stable 3.1.1, HEAD http://www.cmake.org/ Not installed From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/cmake.rb ==> Dependencies Required: xz ✘ ==> Options --without-docs Don't build man pages --HEAD Install HEAD version

wence- commented 7 years ago

Hmmm, we definitely run brew install cmake as part of the install script, unless you said --no-package-manager, I'm confused as to why it did not install (or error earlier).

wence- commented 7 years ago

We are trying to make the installer more robust at the moment, which is now merged.

wence- commented 7 years ago

OK, that install change has now merged, so please try downloading the script anew from

https://raw.githubusercontent.com/firedrakeproject/firedrake/master/scripts/firedrake-install

And let us know if you have any continuing problems. Thanks again!

vressegu commented 7 years ago

It seems that I still have some errors. I copy past the output of my terminal (below) and attached the log file:

firedrake-install.log.txt

Thank you again for your kind help


dyn901-100:Python valentin$ python firedrake-install Running firedrake-install Installing command line tools... Installing required packages via homebrew. You can safely ignore warnings that packages are already installed Creating firedrake virtualenv in '/Users/valentin/Documents/Python/firedrake'. /Users/valentin/Documents/Python/firedrake/bin/pip install -U setuptools /Users/valentin/Documents/Python/firedrake/bin/pip install -U pip Cloning firedrake

Failed to clone firedrake using ssh, falling back to https. Successfully cloned repository firedrake. Checking out branch master Successfully checked out branch master Cloning the dependencies of firedrake Cloning ufl

Failed to clone ufl using ssh, falling back to https. Successfully cloned repository ufl. Checking out branch master Successfully checked out branch master Cloning fiat

Failed to clone fiat using ssh, falling back to https. Successfully cloned repository fiat. Checking out branch master Successfully checked out branch master Cloning FInAT

Failed to clone FInAT using ssh, falling back to https. Successfully cloned repository FInAT. Checking out branch master Successfully checked out branch master Cloning tsfc

Failed to clone tsfc using ssh, falling back to https. Successfully cloned repository tsfc. Checking out branch master Successfully checked out branch master Cloning PyOP2

Failed to clone PyOP2 using ssh, falling back to https. Successfully cloned repository PyOP2. Checking out branch master Successfully checked out branch master Cloning the dependencies of PyOP2 Cloning petsc

Failed to clone petsc using ssh, falling back to https. Successfully cloned repository petsc. Checking out branch firedrake Successfully checked out branch firedrake Cloning petsc4py

Failed to clone petsc4py using ssh, falling back to https. Successfully cloned repository petsc4py. Checking out branch firedrake Successfully checked out branch firedrake Cloning COFFEE

Failed to clone COFFEE using ssh, falling back to https. Successfully cloned repository COFFEE. Checking out branch master Successfully checked out branch master Depending on your platform, PETSc may take an hour or more to build! Installing petsc/ Downloading Eigen from 'https://bitbucket.org/eigen/eigen/get/3.3.3.tar.gz' to 'eigen-3.3.3.tgz' Checking Eigen tarball integrity Eigen tarball hash valid Traceback (most recent call last): File "firedrake-install", line 1097, in install("petsc/") File "firedrake-install", line 623, in install build_and_install_petsc() File "firedrake-install", line 691, in build_and_install_petsc run_pip_install(["--ignore-installed", "petsc/"]) File "firedrake-install", line 597, in run_pip_install check_call(pipinstall + pipargs) File "firedrake-install", line 357, in check_call log.debug(subprocess.check_output(arguments, stderr=subprocess.STDOUT, env=env)) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 219, in check_output raise CalledProcessError(retcode, cmd, output=output) subprocess.CalledProcessError: Command '['/Users/valentin/Documents/Python/firedrake/bin/pip', 'install', '--no-binary', 'mpi4py', '--no-deps', '-vvv', '--ignore-installed', 'petsc/']' returned non-zero exit status 1

Install log saved in firedrake-install.log

wence- commented 7 years ago

Hmm, the problem somehow appears to be that the install script is not installing any of the required homebrew packages:

If you type:

brew list cmake || brew install cmake

What happens?

vressegu commented 7 years ago

Nothing is printed:

niederwind:Python valentin$ brew list cmake || brew install cmake niederwind:Python valentin$

wence- commented 7 years ago

OK, so this is somehow where things are failing. In the install script we first run brew list PACKAGE to determine if PACKAGE is installed. Then, if that returns an error (not installed), we run brew install PACKAGE.

But for whatever reason, brew list cmake is not failing, despite cmake not being installed.

Can you run brew doctor and post the output?

vressegu commented 7 years ago

Last login: Mon May 15 15:02:47 on ttys000 niederwind:~ valentin$ brew doctor Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue. If everything you use Homebrew for is working fine: please don't worry and just ignore them. Thanks!

Warning: /usr/local/bin isn't writable.

This can happen if you "sudo make install" software that isn't managed by by Homebrew. If a formula tries to write a file to this directory, the install will fail during the link step.

You should probably chown /usr/local/bin

Warning: /usr/local/share isn't writable.

This can happen if you "sudo make install" software that isn't managed by by Homebrew. If a formula tries to write a file to this directory, the install will fail during the link step.

You should probably chown /usr/local/share

Warning: Some directories in /usr/local/share/man aren't writable. This can happen if you "sudo make install" software that isn't managed by Homebrew. If a brew tries to add locale information to one of these directories, then the install will fail during the link step. You should probably chown them:

/usr/local/share/man
/usr/local/share/man/de
/usr/local/share/man/de/man1
/usr/local/share/man/man1

Warning: The /usr/local directory is not writable. Even if this directory was writable when you installed Homebrew, other software may change permissions on this directory. Some versions of the "InstantOn" component of Airfoil are known to do this.

You should probably change the ownership and permissions of /usr/local back to your user account.

Warning: Broken symlinks were found. Remove them with brew prune: /usr/local/share/ghostscript/9.10/Resource/Font/logo10.pfb /usr/local/share/ghostscript/9.10/Resource/Font/logo8.pfb /usr/local/share/ghostscript/9.10/Resource/Font/logo9.pfb /usr/local/share/ghostscript/9.10/Resource/Font/logobf10.pfb /usr/local/share/ghostscript/9.10/Resource/Font/logod10.pfb /usr/local/share/ghostscript/9.10/Resource/Font/logosl10.pfb /usr/local/share/ghostscript/9.10/Resource/Font/logosl8.pfb /usr/local/share/ghostscript/9.10/Resource/Font/logosl9.pfb /usr/local/share/ghostscript/9.10/Resource/Font/manfnt.pfb /usr/local/share/ghostscript/9.10/Resource/Font/wasy10.pfb /usr/local/share/ghostscript/9.10/Resource/Font/wasy5.pfb /usr/local/share/ghostscript/9.10/Resource/Font/wasy6.pfb /usr/local/share/ghostscript/9.10/Resource/Font/wasy7.pfb /usr/local/share/ghostscript/9.10/Resource/Font/wasy8.pfb /usr/local/share/ghostscript/9.10/Resource/Font/wasy9.pfb /usr/local/share/ghostscript/9.10/Resource/Font/wasyb10.pfb /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraKakuPro-W3 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraKakuPro-W6 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraKakuProN-W3 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraKakuProN-W6 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraKakuStd-W8 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraKakuStdN-W8 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraMaruPro-W4 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraMaruProN-W4 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraMinPro-W3 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraMinPro-W6 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraMinProN-W3 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraMinProN-W6 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraginoSansGB-W3 /usr/local/share/ghostscript/9.16/Resource/CIDFont/HiraginoSansGB-W6 /usr/local/share/ghostscript/9.16/Resource/CIDFont/YuGo-Bold /usr/local/share/ghostscript/9.16/Resource/CIDFont/YuGo-Medium /usr/local/share/ghostscript/9.16/Resource/CIDFont/YuMin-Demibold /usr/local/share/ghostscript/9.16/Resource/CIDFont/YuMin-Medium

Warning: Python is installed at /Library/Frameworks/Python.framework

Homebrew only supports building against the System-provided Python or a brewed Python. In particular, Pythons installed to /Library can interfere with other software installs.

Warning: Your Homebrew is outdated. You haven't updated for at least 24 hours. This is a long time in brewland! To update Homebrew, run brew update.

miklos1 commented 7 years ago

Sounds like a TODO list for fixing your Homebrew installation...