Som du säkert vet bygger OS X på UNIX. Det innebär att det finns nära band till många andra operativsystem, däribland AIX och Linux. Många glömmer bort vilka möjligheter detta ger. Till exempel det faktum att du kan köra i princip alla program som finns till syskonen. Så länge källkoden finns tillgänglig kan du kompilera dem för ditt system. Men det är lite omständligt.
Det är egentligen onödigt att använda sig av MacPorts då du oftast kan hitta förkompilerade versioner på nätet. Dessutom kommer väldigt mycket med i OS X-installationen. Men fördelarna är flera. Först och främst får du enkel tillgång till alla program som paketet erbjuder. Du behöver alltså inte leta upp enskilda websidor. Vidare kan du både uppdatera och avinstallera alla dina applikationer med enkla kommandon.
Det nyare Homebrew (mxcl.github.com/homebrew/) är snabbare än MacPorts och försöker att minimera nerladdning av beroende paket genom att använda det som redan finns i OS X. Något som ger både för- och nackdelar.
Oavsett vilket du väljer fungerar alla på ungefär samma sätt. De håller bra koll på varandra och följs även åt syntaxmässigt. Men MacPorts är det som fått störst genomslag. Därför är det smidigt att använda just detta.
Väl installerat är det dags att ta kontrollen över programmet. Kommandot ”port” är själva hjärtat i MacPorts. Det finns två sätt att jobba med det. Du kan skriva in kommandot, utan parametrar, för att komma in i ett interaktivt läge. Där kan du sedan mata in vad du vill göra och avsluta med ”exit”. Men det är lättare att skicka med argumenten direkt.
Det första du sannolikt vill göra är se vad som finns att tillgå. Du får fram en lista över allting genom att köra ”port list”. När detta skrivs erbjuds över 7 000 program, uppdelade på ett 90-tal kategorier. Därför kan det vara knepigt att få en översikt. Kommando:
Om det är så att du vill ha en variant behöver du uttryckligen tala om detta. I listan du får från ”variants” ser du att varje del har en liten nyckel. Denna använder du tillsammans med ”install”-kommandot:
Om du inte längre vill ha program installerade är det lika enkelt att ta bort dem. Du använder bara ”uninstall”. Är du osäker på vad det egentligen är du har installerat kan du först kontrollera detta genom att köra ”installed”:

Vill du inte bara köra ett jobb, utan arbeta löpande i den är det bättre att använda ”screen”. Denna applikation startar upp en session på maskinen du är uppkopplad mot och pluggar in din klientprocess till den. Oavsett vad som händer med din anslutning lever den uppstartade tråden på servern vidare tills någon dödar den. Detta innebär att du kan koppla ner och senare ansluta dig till samma fönster från en annan dator.
MacPort, tidigare också känt som DarvinPorts, har som ambition att förenkla processen. Det blir enkelt att kompilera, installera och uppgradera utvalda program. Precis som namnet antyder är det applikationer som är byggda för olika versioner av OS X. Primärt då de två senaste versionerna, vilka just nu är Leopard och Snow Leopard.
Det är egentligen onödigt att använda sig av MacPorts då du oftast kan hitta förkompilerade versioner på nätet. Dessutom kommer väldigt mycket med i OS X-installationen. Men fördelarna är flera. Först och främst får du enkel tillgång till alla program som paketet erbjuder. Du behöver alltså inte leta upp enskilda websidor. Vidare kan du både uppdatera och avinstallera alla dina applikationer med enkla kommandon.
MacPorts är inte på något sätt ensamma om att kunna erbjuda förenklad pakethantering av unixprogram. Fink (www.finkproject.org) är ett kraftfullt alternativ, även om det är lite mer komplicerat att jobba med. Fördelen är att det bygger på samma basplatta som den populära Linuxdistributionen Debian och att de har ännu fler paket att välja bland.
Det nyare Homebrew (mxcl.github.com/homebrew/) är snabbare än MacPorts och försöker att minimera nerladdning av beroende paket genom att använda det som redan finns i OS X. Något som ger både för- och nackdelar.

Likt alla de program som erbjuds i sviten är MacPorts helt gratis. Du kan hämta hem både källkod och installationsklara dmg-filer på http://www.macports.org. Detta gör att det finns två sätt att installera programmet: dels som vilket program som helst, dels kompilerat från grunden. Det förstnämnda alternativet är att rekommendera om du inte har speciella behov.
Men även den enkla installationen kräver att du har både Xcode och X11 installerat. Det förstnämnda följer med på de DVD:er som kom med din dator, men är inte installerat i grundkonfigurationen. Det senare är numera med i standardpaketet. Hittar du inte skivorna finns programmen även att hämta ner på Apples supportsidor.

- Det finns tusentals program att välja på. Sannolikheten är därför stor att programmet du söker finns.
Väl installerat är det dags att ta kontrollen över programmet. Kommandot ”port” är själva hjärtat i MacPorts. Det finns två sätt att jobba med det. Du kan skriva in kommandot, utan parametrar, för att komma in i ett interaktivt läge. Där kan du sedan mata in vad du vill göra och avsluta med ”exit”. Men det är lättare att skicka med argumenten direkt.
Det första du sannolikt vill göra är se vad som finns att tillgå. Du får fram en lista över allting genom att köra ”port list”. När detta skrivs erbjuds över 7 000 program, uppdelade på ett 90-tal kategorier. Därför kan det vara knepigt att få en översikt. Kommando:
port list
Då är det bättre att istället använda sökfunktionen och leta upp det du är på jakt efter. Anta, till exempel, att du är sugen på att installera ”nagios”. Då använder du den inbyggda funktionen ”search”, som i praktiken är en fritextsökning:
port search nagios
Beroende på vad du söker efter kan du komma att upptäcka en av de stora nackdelarna med MacPorts. Det är inte alltid de senaste versionerna av programmen som finns på plats. Ovan nämnda Nagios släpade länge efter. Och även om det är en relativt färsk version som erbjuds vet du inte om det varar. Med kommandot ”info” får du bland annat se vem som har hand om den aktuella installationen och hur aktiv han eller hon verkar vara:
port info wget
I samma vy kommer du se att många program kan kompileras med flaggor. Det handlar i regel om tillägg som gör dem optimerade för en given funktion. Du får, som sagt, en lista när du kör ”info”-kommandot, men för att se vad de faktiskt gör för skillnad kan du använda argumentet ”variants”:
port variants snort
När du till slut hittat vad du vill ha är det dags att installera. Precis som tidigare är det kommandot ”port” du använder. Och argumentet är, enkelt nog, ”install”. Enda skillnaden är att det är bra att köra med sudorättigheter då det ofta är privilegierade filer som påverkas:
sudo port install tcpick
Kommandot får MacPorts att automatiskt hämta hem programmet med alla beroende paket och kompilera det på din dator. Beroende på vad det är du valt kan det ta en stund att bygga ihop allting. Men på skärmen får du löpande information om vad som sker.
Om det är så att du vill ha en variant behöver du uttryckligen tala om detta. I listan du får från ”variants” ser du att varje del har en liten nyckel. Denna använder du tillsammans med ”install”-kommandot:
port install subversion +bash_completion
Väl installerat gäller det att hålla koll på nyheter. Nya utgåvor dyker upp allt som oftast. Även om det i regel inte är kritiskt att hänga med i svängarna kan det vara en god idé att i alla fall vara medveten om att de finns. Kanske är en irriterande bugg löst eller en ny, bra funktion introducerad. Men kom ihåg att det ofta är dumt att slentrianmässigt acceptera allt nytt. Det är inte alltid de senare versionerna är bättre. Viktiga program kan du göra bäst i att vänta med ett tag, så att de hinner avlusas:
port outdated
Om du vill ha den nyaste versionen kan du uppgradera den med ”upgrade”-argumentet. Du kan välja att bara köra det för ett program eller för alla ej uppdaterade applikationer. En viktig flagga är ”-n” som hindrar beroende paket att uppgraderas. I regel är det dock bäst att ta med alltihop så att ingenting slutar fungera:
port upgrade cvs
Är du, för övrigt, nyfiken på vilka beroenden som finns för ett givet paket kan du titta på det med argumentet ”dependents”. Normalt sett finns det ingen anledning att bry sig om det då du behöver dem för att kunna köra programmen och MacPorts sköter det automagiskt.
Om du inte längre vill ha program installerade är det lika enkelt att ta bort dem. Du använder bara ”uninstall”. Är du osäker på vad det egentligen är du har installerat kan du först kontrollera detta genom att köra ”installed”:
port installed
Detta ger dig en lista över allting du har installerat i ditt system. Och upptäcker du program som du inte längre vill ha, är det alltså bara att ta bort dem. Var försiktig bara så att du inte tar bort komponenter andra program behöver:
port uninstall trac
En annan funktion som är nog så viktig är att hålla MacPorts själv uppdaterat. Detta sker med hjälp av kommandot ”selfupdate”. Det är en bra idé att köra det med jämna mellanrum. Vill du slippa komma ihåg det kan du schemalägga det i cron. Detta gör du genom att först skriva ”sudo crontab -e” och sen mata in det kommando du vill ska köras:
0 10 * * * su – macw -c ”sudo /opt/local/bin/port -v selfupdate” 1>/tmp/mport.1.log 2>/tmp/mport.2.log
Detta kommando kommer att automatuppdatera MacPorts varje dag klockan 10, om din dator är igång. Givetvis ska du byta ut ”macw” till den användare du installerat MacPorts på. Och om du kompilerat koden från grund och lagt filerna på annat ställe får du dessutom ändra sökvägen. Detsamma om du inte vill ha loggarna i tempkatalogen.
Avslutningsvis kan det vara bra att veta hur du avinstallerar basprogrammet. Eftersom det inte riktigt är en vanlig OS X-applikation krävs det lite manuella handgrepp. Men det är ändå ganska enkelt. Öppna terminalen och mata in ”sudo port -f uninstall installed”. Detta tar bort allt du installerat med MacPorts. Sen får du manuellt radera följande kataloger och filer:
/opt/local /Applications/DarwinPorts /Applications/MacPorts /Library/LaunchDaemons/org.macports.* /Library/Receipts/DarwinPorts*.pkg /Library/Receipts/MacPorts*.pkg /Library/StartupItems/DarwinPortsStartup /Library/Tcl/darwinports1.0 /Library/Tcl/macports1.0 ~/.macports
Allt vi gjort ovan sker via Terminalen. Om du inte vill hålla på med kommandon går det att använda MacPorts ändå. Det finns nämligen grafiska gränssnitt. Det vanligaste heter Porticus och kostar ingenting. I princip erbjuder det bara samma funktioner som du har via kommandoraden, men på ett enklare sätt.

Vill du använda gränssnittet laddar du hem det på http://porticus.alittledrop.com/. Installera det sedan på samma sätt som vanligt, genom att kopiera till applikationsmapparna, och starta det. Det kommer att fungera direkt om du har MacPorts på plats, men du kan få en fråga om du vill reparera programmet. Acceptera det för att komma igenom. Klicka sen bara på Portsmenyn, följt av ”Reload Ports” för att synka med ditt bibliotek.
Förhoppningsvis har du insett att MacPorts är ett lysande verktyg för att hantera UNIX-baserade applikationer. Det erbjuder också en enkel metod för att testa nya program och funktioner. Se till att utnyttja det så att arvet inte går till spillo.
Häng kvar med nohup och screen
att starta ett jobb i terminalen och sedan upptäcka att det kommer att rulla längre än man tänkt kan vara stressande. I synnerhet strax innan fem en fredageftermiddag. Men det går att undvika problemet genom att starta programmet direkt på servern.
Kommandot ”nohup”, en förkortning för No Hang Up, är det enklaste sättet att köra något på servern och se till att det inte slutar att rulla när du loggar av. Du kör det helt enkelt genom att skicka med det du vill ha igång som ett argument:
nohup /sökväg/till/dinfil.sh
Knappar du in kommandot rakt upp och ner i terminalen kommer du inte få prompten tillbaka. Det beror på att ”nohup” inte skickar ditt kommando till bakgrunden. Det får du istället göra explicit med ett ”&” på slutet:
nohup /sökväg/till/dinfil.sh &
I retur kommer du att få processID:t och ett meddelande om i vilken loggfil eventuell utinformation lagras. Det förstnämnda kan vara bra om du senare måste döda processen hårt från en annan session.
Vill du inte bara köra ett jobb, utan arbeta löpande i den är det bättre att använda ”screen”. Denna applikation startar upp en session på maskinen du är uppkopplad mot och pluggar in din klientprocess till den. Oavsett vad som händer med din anslutning lever den uppstartade tråden på servern vidare tills någon dödar den. Detta innebär att du kan koppla ner och senare ansluta dig till samma fönster från en annan dator.

Att starta ”screen” är enkelt; du behöver egentligen bara mata in kommandot. Men det är oftast en god idé att namnge sessionen, vilket du gör med flaggan ”S”:
screen -S MacWorldFTW
Du kommer nu att hamna i ett nytt skal, som helt körs på servern. För dig blir det ingen skillnad. Allt du gör kommer att fungera precis som om du matade in kommandon i ett vanligt fönster.
När du tycker det är dags att koppla loss dig från sessionen utan att stoppa den får du kommunicera med själva ”screen”-programmet. Håll in ”ctrl” och tryck bokstaven ”a”. Sedan slår du ner ”d”, detach, för att komma ut ur ”screen”.
Att koppla upp sig igen är inga problem. Har du glömt vad du kallade din session kan du se alla rullande processer genom att lista dem:
screen -ls
Välj ut den du vill ansluta till och starta programmet med flaggan ”r”, för reconnect. Du kan skicka både processnumret och sessionsnamnet, till exempel MacWorldFTW, som argument:
screen -r <pid> eller <sessionsnamn>
Om du av någon anledning inte kopplar loss klienten normalt, utan den dör använder du flaggan ”-x” istället för ”-r”. Då tvingar du in dig i sessionen, oavsett om ”screen” att tror någon redan är ansluten till den. När du är färdig med en session avslutar du genom att logga ut på normalt sätt, genom att köra exit. Alternativt kan du klicka ”ctrl” och ”a”, följt av ”k” för kill. Det finns mycket mer att utforska i ”screen”, men de här enkla kommandona räcker för att kunna köra saker direkt på servern. Något du säkert kommer finna ovärderligt. Se bara till att du inte skapar mängder med processer som du sedan glömmer bort.