Installation

Installera AmberTools 18 på macOS 10.14.4 (Mojave) med Xcode 10.2

Att installera Amber/AmberTools på under macOS är inte en helt trivial process. Det har blivit lättare en vad det än gång var men det kräver fortfarande lite mer än att släpa en fil till rätt mapp. Nedanför presenteras olika sätt att installera nuvarande version av AmberTools, där metoden skall vara den samma för Amber. Detta är för närvarande enbart den seriella versionen.

Sedan den senaste uppdateringen av Xcode går det för närvarande inte att använda någon annan C kompilerare än clang, du kan alltså INTE använda någon av metoderna som utnyttjar GNU GCC eftersom gcc inte för tillfället går att bygga korrekt under macOS.

Det kommer även krävas att du installerar saker och kör kommandon genom den inbyggda ”kommandotolken” som för macOS heter Terminal(.app). Du hittar denna app i din mapp med Program, i mappen Verktyg eller genom att använda spotlight, det lilla förstoringsglaset uppe i högra hörnet av skärmen (alternativt genom genvägen cmd+blanksteg på ditt tangentbord, förutsatt att denna är aktiv) och söka på Terminal. När du skall köra kommandon i terminalen kommer de att se ut så här:

some command example

Det kan finnas längre kommandon där man måste ”sidscrolla” för att se hela sekvensen. Med detta förklarat tror jag att det är dags att sätta igång. Jag kommer nu förklara hur man gör för att kompilera AmberTools18/Amber18 med hjälp av pakethanteraren ”Homebrew”, ”Macports” och genom att använda Apples version av C kompilerarpaketet clang och en fristående fortran kompilerare. Tänk på att endast välja ett av dessa sätt då du kan skapa konflikter om du installerar mer än en pakethanterare eller en uppsättning av samma kompilerare samtidigt.

Om du får problem hänvisar jag till AMBER epost listan för hjälp i stället för att kommentera här då jag inte regelbundet underhåller sidan just nu.

Installera Xcode och tillhörande Command Line Tools (CLT)

Oavsett om du tänker använda MacPorts, Homebrew eller bara Apple GCC och valfri gfortran version måste du installera Xcode. För denna beskrivning användes Xcode10 som du lämpligast installerar via AppStore på din Mac. CLT behöver du för att köra kommandon i terminalen och installeras efter att Xcode är installerat genom att köra följande kommando i din Terminal.app

sudo xcode-select --install

Du måste även installera filer som saknas, kör följande kommando för att öppna en PKG installerare som kommer med Xcode10 och följ instruktionerna.

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

Detta är nödvändigt eftersom Apple har valt att pensionera en del av tidigare verktyg som kom installerat med Xcode. (Något som kommer skapa problem med installationen av AMBER i och med nästa version av Xcode(11) då detta paket med ”saknade” filer inte längre kommer finnas tillgänglig.

Vissa moduler i AMBER använder X.org X Window System för GUI, detta kommer inte längre förinstallerat på macOS i form av X11.app så för att detta skall fungera krävs att du installerar XQuartz som ersatt X11. Jag tror fortfarande att du får en pop-up som förklarar att du måste installera XQuartz när du försöker använda X11 men du kan lika gärna installera det direkt. Besök utvecklarnas hemsida (https://www.xquartz.org/) och följ instruktionen.

Nu bör du ha installerat Xcode och CLT för att kunna köra kommandon. Detta måste du göra oavsett vilken metod du sedan väljer nedan.

Kompilera AmberTools18/Amber18 med macOS clang

Du har redan installerat Xcode (eller hur?) så du har en c kompilerare (clang) men du behöver en fortran kompilator, något som inte kommer med Xcode. Du kan skaffa detta genom att använda valfri fungerande källa, jag visar tre olika sätt. Notera dock att du enbart skall använda en metod!

Alternativ 1: MacPorts

Ladda ned och installera MacPorts och GCC (se ”Kompilera AmberTools18/Amber18 med MacPorts”), jag valde GCC8 och har testat med GCC6, båda fungerar.

sudo port selfupdate
sudo port upgrade outdated
sudo port install gcc8
sudo port select --set gcc mp-gcc8
Alternativ 2: Homebrew

Homebrew installeras genom att köra ett kommando i terminalen, gå gärna till Homebrews hemsida (https://brew.sh/) och bekräfta kommandot där.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. Installera Homebrew GCC8 (just nu den förvalda versionen) genom att köra följande kommando
brew install gcc

Eftersom Apple inte tillhandahåller gfortran kommer Homebrew versionen automatiskt bli den aktiva genom att installera GCC och inga länkar behöver skapas.

Alternativ 3: HPC GCC

Här valde jag HPC gfortran-8.1-bin.tar.gz för att endast installera fortran kompileraren då jag vill använda Apple clang för allt annat. Ladda ned och installera gfortran-8.1-bin.tar.gz (http://hpc.sourceforge.net)

cd /[PATH]/[TO]/[DOWNLOAD]/
sudo tar -xvf gfortran-8.1-bin.tar -C /

Allt installeras i /usr/local/. Under processen fick jag felmeddelanden men installationen fungerade ändå så jag grävde inte djupare i detta:

x usr/local/: Can't set user=0/group=0 for usr/local Failed to set file flags
...
...
tar: Error exit delayed from previous errors.
Fortran Fixat

Oavsett vilken av de tre ovanstående metoderna ovan du valt bör du nu ha en fungerande gfortran version installerad. Nu är det dags att gå vidare med konfigurationen och installationen av AmberTools18/Amber18.

  1. Ladda ned AmberTools18/amber18 från utvecklarnas hemsida (http://ambermd.org/), flytta arkivet till och extrahera sedan filerna där du vill installera.
mv /[PATH]/[TO]/AmberTools18.tar.bz2 /[PATH]/[TO]/[INSTALL]/[DIRECTORY]/
cd /[PATH]/[TO]/[INSTALL]/[DIRECTORY]/
tar xvf AmberTools18.tar.bz2
  1. Konfigurera och installera
export AMBERHOME=/[PATH]/[TO]/amber18
export PATH=${AMBERHOME}:$PATH
export MACOSX_DEPLOYMENT_TARGET='10.14'
cd $AMBERHOME

Följande eliminerar problem som avbryter kompileringen behöver vi editera lite filer. Vilka filer och rader har härletts efter diskussioner med en av utvecklarna utav ptraj och är inget jag hittat på själv, eftersom vi bara ”kommenterar” är denna process dessutom helt reversibel så det finns ingen risk att du förstör något.

vi $AMBERHOME/AmberTools/src/configure2

Detta öppnar filen en editor (VIM, du kan självklart använda vilken editor du vill).

  • För att hoppa till rätt rad skriver du ett ”kolon” (”shift” + ”.” tangenterna), det dyker nu upp ett kolon längst ned i vänstra hörnet. Du kan nu skriva siffror för att hoppa till denna rad, avsluta med att trycka ”enter” (retur) för att genomföra hoppet (ex :143).
  • Vill numrera raderna i editors skriver du ett semikolon och skriver ”set number” följt av ”enter” tangenten :set number. Du döljer numreringen genom att köra :set nonumber om du vill.
  • För att ändra i filen trycker du först på ”i” tangenten på tangentbordet, det borde nu stå -- INSERT -- längst ned till vänster, du kan nu editera dokumentet.
  • När du har genomfört ändringarna trycker du på ”esc” tangenten, det står nu inget i nedre vänstra hörnet. Håll ned ”shift” tangenten och tryck två gånger på ”z” tangenten (shift+z+z). Filen sparas och editors stängs.

Kommentera ut raderna 2255-2259 (sätt ett # tecken först på varje rad). Det betyder att detta:

# mac/clang
if [ "$skippython" = "no" ]; then
    cpptrahcxxflags="-sdlib=libstdc++ $cpptrajcxxflags"
    cpptrahldflags="-stdlib=libstdc++ -L/usr/lib/"
fi

Skall bli detta:

## mac/clang
#if [ "$skippython" = "no" ]; then
#    cpptrahcxxflags="-sdlib=libstdc++ $cpptrajcxxflags"
#    cpptrahldflags="-stdlib=libstdc++ -L/usr/lib/"
#fi

Ytterligare en fil behöver editeras för att eliminera att felmeddelande.

vi $AMBERHOME/AmberTools/src/pytraj/setup.py

I denna fil behöver man kommentera ut rad 142 på samma sätt som i tidigare fil. Alltså skall vi se till att

extra_compile_args.append('-stdlib=libstdc++')

Blir till

#extra_compile_args.append('-stdlib=libstdc++')

Du är nu klar att kompilera och installera den seriella versionen av AmberTools18/Amber18

./configure -macAccelerate clang
make install

Förutsatt att inget har gått fel, att det inte är dimma i Skottland, att du stod på ett ben under processen, det solen sken på globen eller något annat så skall du nu ha en fullt fungerande version av den seriella installationen av AmberTools18/Amber18 som kompilerats med någon version av gfortran och Apples clang.