Installera AmberTools18 (amber18) på Mac OS X 10.14 (Mojave) med eller utan Homebrew

Så efter en del velade tog jag beslutet att hoppa över från MacPorts till Homebrew. Detta har inte varit en smärtfri övergång och även om jag gillar Homebrew så är det vissa saker jag inte riktigt förstår motivationen till. Med det sagt, jag kör nu homebrew så instruktionerna för hur man kompilerar mjukvaror kommer att hänvisa till homebrew fortsättningsvis, lagt kort ligger.

Med uppdateringen från OS X 13.X High Sierra till OS X 14.X Mojave gick självklart en hel massa saker sönder, något jag nu för tiden har kommit att förvänta mig från uppdateringar av macOS. Detta includerade självklart möjligheten att kompilera amber på macOS. Det visade sig, bland annat, att Apple nu bestämt att ”libstdc++” tjänat ut sin roll och alla skall i stället använda ”libc++” utan att lämna någon bakåt kompabilitet eller sätt att lösa detta. Det har även försvunnits en del filer som brukade husera i /usr/include som man nu måste installera via en installer som ligger begravd i Xcode, dock kommer detta sluta fungera med nästa release av Xcode och garanterat orsaka en massa nya problem. Lång historia kort, detta är vad du måste göra för att kompilera amber på macOS Mojave med Homebrew GCC8 eller med macOS clang direkt. Resan fram till vad som fungerade är lång och innehåller en massa fel och problem, jag kommer inte att beskriva alla dessa problem då det skulle ta väldigt lång tid och potentiellt inte vara av generellt intresse.

Kompilera AmberTools18/amber18 med Homebrew GCC8

  1. Installera Xcode och Command Line Tools
    Xcode10 installerar du lämpligast via AppStore på din dator
    Du behöver installera Command Line Tools manuellt genom att köra följande i din Terminal.app
    sudo xcode-select --install

  2. Installera Homebrew och GCC
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    brew install gcc

  3. Installera saknade headder filer
    I Terminal.app, kör följande kommando för att öppna PKG installeraren och följ instruktionerna.
    open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

  4. Laddda ned AmberTools18/amber18 och extrahera där du vill installera
    tar xvf AmberTools18.tar.bz2

  5. Configurera och installera
    export AMBERHOME=/[PATH]/[TO]/amber18
    export PATH=${AMBERHOME}:$PATH
    cd $AMBERHOME
    export MACOSX_DEPLOYMENT_TARGET='10.14'
    Eliminerar ett fel med "cannot find <include> file".
    ln -s /usr/local/bin/gcc-8 /usr/local/bin/gcc
    ln -s /usr/local/bin/g++-8 /usr/local/bin/g++
    ln -s /usr/local/bin/c++-8 /usr/local/bin/c++
    ./configure -macAccelerate gnu
    make install

Detta producerar en fungerande version av AmberTools18/amber18 genom att använda Homebrew GCC men det finns fortfarande problem och det kommer garanterat att fortsätta uppstå mer problem innan allt går som det ska.

Kompilera AmberTools18/amber18 med macOS clang

  1. Installera Xcode och Command Line Tools
    Xcode10 installerar du lämpligast via AppStore på din dator
    Du behöver installera Command Line Tools manuellt genom att köra följande i din Terminal.app
    sudo xcode-select --install

  2. Installera saknade headder filer
    I Terminal.app, kör följande kommando för att öppna PKG installeraren och följ instruktionerna.
    open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

  3. Laddda ned AmberTools18/amber18 och extrahera där du vill installera
    tar xvf AmberTools18.tar.bz2

  4. Configurera och installera
    export AMBERHOME=/[PATH]/[TO]/amber18
    export PATH=${AMBERHOME}:$PATH
    cd $AMBERHOME
    export MACOSX_DEPLOYMENT_TARGET='10.14'
    Eliminerar ett fel med "cannot find <include> file".
    vi $AMBERHOME/AmberTools/src/configure2
    Kommentera ut raderna 2237-2241
    # if [ "$intelmpi" = 'yes' ]; then
    # echo "Intel MPI must be used with the Intel compilers."
    # exit 1
    # fi
    #


    vi $AMBERHOME/AmberTools/src/pytraj/setup.py
    Ändra libstdc++ till libc++ på rad 142
    142 extra_compile_args.append('-stdlib=libstdc++’)
    --->
    142 extra_compile_args.append('-stdlib=libc++’)


    Och ändra samma sak på radeta 2289-2293
    2289 # mac/clang
    2290 if [ "$skippython" = "no" ]; then
    2291 cpptrajcxxflags="-stdlib=libstdc++ $cpptrajcxxflags"
    2292 cpptrajldflags="-stdlib=libstdc++ -L/usr/lib/"
    2293 fi
    --->
    2289 # mac/clang
    2290 if [ "$skippython" = "no" ]; then
    2291 cpptrajcxxflags="-stdlib=libc++ $cpptrajcxxflags"
    2292 cpptrajldflags="-stdlib=libc++ -L/usr/lib/"
    2293 fi


    ./configure -macAccelerate clang
    make install

Detta producerar en fungerande version av AmberTools18/amber18 genom att använda macOS clang men det finns fortfarande problem och det kommer garanterat att fortsätta uppstå mer problem innan allt går som det ska.

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *