MacPort

Das MacPort Projekt1) hat ein einfaches System für die Installation von Open Source Unix Software Komponenten auf Mac OS geschaffen. Wie zB beim Linux Debian das apt-get- oder aptitude-Kommando oder dem port-Kommando bei BSD löst es hierbei die notwendigen Abhängigkeiten auf, kompiliert, installiert und aktualisiert die gewählte Software. Der Name MacPort wurde vermutlich wegen der engen Verwandtschaft von Darwin (dem Mac OS Kernel) und BSD gewählt, was sich auch darin widerspiegelt, dass die vom MacPort Projekt bereitgestellten Software Pakete unter der BSD License2) veröffentlicht werden.

Installation

Voraussetzung für die Installation von MacPort ist die Installation des Xcode Developer Tool Paket, welches im App Store oder auf den Apple Developer Seiten für die jeweilige Mac OSX Version zu finden ist für. Der Installer von MacPort führt sie dann durch die Installation.

Nach der erfolgreichen Installation von Xcode müssen noch die »Command Line Tools« nachinstalliert werden:

prontos-iMac:/ pronto$ xcode-select --install

Öffnen Sie ggf. bei einer Firewall, die ausgehenden Traffic filtert, den Port »TCP 873 outbound« für das RSYNC Protokoll.

Nach der Installation des Pakets ist MacPort bereits funktionsfähig. Sollten sie während der Installation ein Terminal geöffnet haben, müssen Sie dieses neu starten. Sie können das testen, in dem Sie ein Port Selbstupdate durchführen:

$ sudo port -v selfupdate 
--->  Updating the ports tree
Synchronizing local ports tree from rsync://rsync.macports.org/release/ports/
receiving file list ... done

sent 36 bytes  received 450366 bytes  100089.33 bytes/sec
total size is 33233940  speedup is 73.79
--->  Updating MacPorts base sources using rsync
receiving file list ... done

MacPort ist nun auf Ihrem System installiert und einsatzbereit. Das Standardinstallationsverzeichnis ist /var/opt/. Detailierte Informationen zum port-Kommando finden sie in der Manpage von port (→ man port).

Ports

Als Ports werden im Kontext von MacPorts (Software-) Pakete bzw. Verzeichnisse bezeichnet, die alle nötigen Sourcen enthalten um die gewünschte Anwendung auf dem Zielsystem zu kompilieren und zu installieren. Bei diesem System werden die angeforderten Programme bzw. deren Sourcen (Quelltext, Kompilieranweisungen etc.) aus dem Internet heruntergeladen. Der Vorteil dieser Methode liegt darin, dass das Programm auf einen sehr aktuellen Quelltext zurückgreifen kann und vor allem, dass das Programm maschinenspezifisch kompiliert wird, was zur Laufzeitverbesserung beiträgt.

Bei der ersten Synchronisierung wird der globale Port Tree lokal auf den Rechner nach »/opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports« geladen. Dort befinden sich alle Gruppen und darunter alle derzeit verfügbaren Ports. Die Basis von MacPorts bildet ein »Portfile«, welches in jedem Port Verzeichnis zu finden ist. In diesem Portfile werden die speziellen Anforderungen einer Anwendung, dessen Charakteristik und weiter benötigte Dateien oder Sourcen definiert. Weiterhin kann ein Port-Verzeichnis noch ein Verzeichnis ${portpath}/files beinhalten, welches uU notwendige Dateien (zB Patches) lokal bereitstellt, andernfalls werden die notwendigen Dateien (wie das Makefile und der Quelltext) aus dem Internet geladen. Die Crux an der ganzen Sache ist, dass sich das MacPorts System eben genau die notwendigen Informationen und Dateien zusammensucht, egal ob die jetzt im lokalen PortTree oder im globalen PortTree (Internet Repository) zu suchen und zu finden sind.

Handhabung des Port-Kommandos

Der Parameter search ruft die Subroutine mportsearch auf und zeigt alle Ports an, die dem Suchstring entsprechen. Ebenso wird die Beschreibung eines Ports im Portfile nach dem Suchstring durchsucht. Wenn Sie zB einen Sniffer suchen aber nicht wissen welcher angeboten wird, können sie dem search Parameter auch das Argument sniffer angeben:

Suche im Port Tree nach Ports die dem Suchstring entsprechen: Syntax: port search [Suchstring]

$ port search sniffer
angst @0.4b_2 (net)
    an active sniffer

ettercap @0.8.3_1 (net, security)
    multipurpose sniffer/interceptor/logger for switched LAN

kismet @2011-01-R1_1 (net)
    Wireless network detector and sniffer

pads @1.2_1 (net, security)
    network sniffer with a rule-based detection engine

pear-PHP_CodeSniffer @1.5.0 (php, net, www)
    PEAR PHP_CodeSniffer package

tcpick @0.2.1_1 (net)
    a tcp stream sniffer, tracker and capturer

Found 6 ports.

Es werden Ihnen die in den Portfiles mit dem Keyword sniffer getaggted Ports sowie die Ports die den Suchstring im Namen haben angezeigt. Danach die derzeit verfügbare Version, Sie sollten vor der Suche das selfupdate-Kommando ausführen, damit ihr lokaler Port Tree mit dem globalen synchronisiert wird. In Klammern steht die Kategorie bzw. Gruppe in welcher sich der gefundene Port befindet. Interessieren Sie sich dann für einen bestimmten Port, können Sie detailliertere Informationen mit dem Parameter info abrufen:

Zeige Details für ausgewählten Port an: Syntax: port info [Portname]

$ port info ettercap
ettercap @0.8.3_1 (net, security)
Variants:             debug, [+]gtk, [+]plugins, universal

Description:          Ettercap is a multi-functional packet sniffer/interceptor/logger that works on switched LANs. It allows the active
                      and passive dissection of numerous protocols, including ciphered ones, such as SSH1, and includes features for
                      network and host analysis. Four modes are available: IP Based, MAC Address Based, ARP Based, and PublicARP Based.
Homepage:             https://ettercap.github.io/ettercap/

Build Dependencies:   cmake, pkgconfig
Library Dependencies: openssl, libgeoip, libnet11, libpcap, ncurses, pcre, zlib, gtk3, curl, libtool
Platforms:            darwin, freebsd
License:              GPL-2+
Maintainers:          none

Wenn Sie weitere Informationen zu einem Paket brauchen, können Sie mit dem Parameter gohome die Webseite des ausgewählten Ports im Default Webbrowser öffnen

Öffne die Webseite zum ausgewählten Port im Default Webbrowser: Syntax: port gohome [Portname]

$ port gohome ettercap 

Eine weitere wichtige Information sind die Abhängigkeiten eines Pakets, da dadurch uU viele weitere Pakete mitgezogen werden müssen. Wird dem port-Kommando der Parameter deps, gefolgt vom abzufragenden Port übergeben, werden diese Abhängigkeiten angezeigt.

Zeige die Abhängigkeiten für ausgewählten Port an: Syntax: port deps [Portname]

$ port deps ettercap 
Full Name: ettercap @0.8.3_1+gtk+plugins
Build Dependencies:   cmake, pkgconfig
Library Dependencies: openssl, libgeoip, libnet11, libpcap, ncurses, pcre, zlib, gtk3, curl, libtool

Mit dem port fetch Kommando können bereits vor der eigentlichen Installation die notwendigen Sourcen geladen werden. Die geladen Sourcen werden unter ${sysportpath}/distfiles/${dist_subdir}/ (zB: /opt/local/var/macports/distfiles) abgelegt.

Hole nur die für das Paket notwendigen Sourcen: Syntax: port fetch [Portname]

$ sudo port fetch wget 
Password:
--->  Computing dependencies for wget
--->  Fetching wget
--->  Attempting to fetch wget-1.12.tar.gz from http://lil.fr.distfiles.macports.org/wget
$
$ ls /opt/local/var/macports/distfiles/wget/ 
wget-1.12.tar.gz

Zum Installieren eines Software Pakets verwenden Sie das port install Kommando. Da die Installation Admin Rechte benötigt, müssen Sie das port-Kommando mit sudo ausführen:

$ sudo port install [Portname] 

Um sich die veralteten Ports anzeigen zu lassen, verwenden Sie den Parameter outdated. Aktualisieren Sie zuvor ihren lokalen Porttree:

$ sudo port selfupdate 
$ port outdated 

Um die veralteten Ports zu aktualisieren, verwenden Sie folgenden Befehl:

$ sudo port upgrade outdated 

Installierte Ports anzeigen lassen:

$ port installed

Alle verfügbaren Ports anzeigen lassen:

$ port list

pronto 2019/11/01 23:46

mac/macport.txt (17801 views) · Zuletzt geändert: 2019/11/01 23:48 von pronto
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0