Wie verwende ich pip nach dem Upgrade von OS X El Capitan?

web_ninja

Nach dem El Capitan-Update kann ich die Pip-Installation nicht ausführen. Der Fehler, den ich bekomme, ist, dass der "Vorgang nicht zulässig ist", wenn pip versucht, während der Installation neue Ordner zu erstellen.

 creating /System/Library/Frameworks/Python.framework/Versions/2.7/share error: could not create '/System/Library/Frameworks/Python.framework/Versions/2.7/share': Operation not permitted 

Tatsächlich kann ich in diesen Ordnern im Allgemeinen keine Ordner usw. erstellen. Habe versucht, sudo zu verwenden, das nicht hilft. Auch ich habe getan

 sudo chflags nouchg /System/Library/Frameworks/Python.framework/Versions/2.7/ 

Das obige hat auch nicht geholfen. Was kann ich tun, um Python-Bibliotheken wieder reibungslos installieren zu können?

Kennzeichen

Wo ist Pip auf Ihrem System?

web_ninja

$ where pip / usr / local / bin / pip

web_ninja

$ pip --version pip 7.1.2 von /Library/Python/2.7/site-packages/pip-7.1.2-py2.7.egg (Python 2.7)

Kennzeichen

Wie haben Sie pip installiert? Es sollte in /Library/Python/2.7/site-packages not / System geschrieben werden

web_ninja

Ich erinnere mich jetzt nicht. Nachdem ich den Kommentar gepostet hatte, stellte ich fest, dass dies das Problem war, und verwendete Brew, um Python zu installieren, und korrigierte die Position von pip.
Seite 1 von 3Nächster

bmike

Eine schnelle Lösung besteht darin, python mit homebrew in /usr/local/bin zu installieren, damit Ihr pip gegen ein vom Benutzer modifizierbares Python-Framework ausgeführt werden kann.

 brew install python pip --version 

Das Deaktivieren des Systemintegritätsschutzes ist ebenfalls eine Option. Ich empfehle dies jedoch nur für professionell verwaltete Server und Server mit Brandschutzwand, auf denen Sie über die erforderlichen Arbeitskräfte verfügen, um die Erkennung von Eindringlingen zu verwalten, oder wenn Sie Entwickler / Systemadministrator sind und Dinge mit und ohne testen müssen SCHLUCK.

 ls -lO /System/Library/Frameworks/Python.framework/Versions/2.7/ csrutil status 

Sie werden sehen, dass das eingeschränkte Flag gesetzt ist, das auch als Root nicht entfernt werden kann, während SIP aktiviert ist.

Mit Homebrew können Pip und Python getrennt von der vom System bereitgestellten Version verwaltet werden. Als Bonus wurde das Homebrew-Framework entwickelt, um die Wartung und das Patchen / Arbeiten über die Automatisierung zu vereinfachen.

Jayatubi

Die von Brew installierte Python ist nicht stabil und stürzt zufällig ab

bmike ♦

@ jayatubi Welches Paket oder Skript ist für Sie instabil? Installieren Sie Python 2.7.10 von Brew oder Python3, das gerade eine große Beule bekommen hat und bekanntermaßen nicht so abwärtskompatibel ist? Sie können aus Dutzenden von Versionen auswählen, wenn Sie eine bevorzugen, die für Ihre Anforderungen mehr oder weniger stabil ist.

RichVel

Stimmen Sie zu, dass die brew install python die einfachste Option ist, obwohl möglicherweise ein anderes Setup bereinigt werden muss, wenn Sie das System Python seit einiger Zeit verwenden (z. B. Python-Dateien im Root-Besitz unter /usr/local/bin und ~/Library/Caches/pip )

denis

Das Herunterladen einer kompilierten Python .pkg von z. B. python.org/downloads/release/python-2712 funktioniert für mich unter 10.8 einwandfrei . Irgendwelche Kommentare dazu gegen Homebrew? Vielen Dank

bmike ♦

@denis Ich mag Brew, da es einfach ist, eine Version zu pinnen, die Sie mögen - verwalten Sie mehrere verschiedene Versionen oder halten Sie die Dinge regelmäßig auf dem neuesten Stand. Wenn Sie jedoch etwas haben, das für Sie funktioniert, ist es schwer zu argumentieren, dass Sie etwas ändern sollten.

Michal Příhoda

Eine weitere praktikable Option, ohne dass SIP deaktiviert oder andere Python-Versionen installiert werden müssen, besteht darin, die Module nur für den aktuellen Benutzer zu installieren

 pip install --user <modulename> 

Wenn es sich nur um Ihre persönliche Maschine handelt, ist dies die einfachste und sicherste Lösung.

Sigjuice

Vielleicht hat El Capitan / usr / bin / pip bereitgestellt, macOS Sierra jedoch nicht.

harryparkdotio

Arbeitet auf Sierra

Matthias Fripp

Dieses Problem tritt häufig auf, wenn pip versucht, eine Manpage für IPython auf El Capitan zu installieren. Die schnelle Lösung besteht darin, einen pip-Befehl wie den folgenden zu verwenden:

 sudo -H pip install --install-option '--install-data=/usr/local' <package> 

Der System Integrity Protection (SIP) auf El Capitan blockiert jedoch einige schlechte Praktiken mit Pip, die früher vorbeigingen. Daher müssen Sie wahrscheinlich weitere Änderungen vornehmen, damit Pip auf El Capitan reibungslos funktioniert.

SIP unter El Capitan weist drei Probleme bei der Verwendung von pip mit der von Apple bereitgestellten Version von Python unter OS X auf:

  1. distutils setzt zwei wichtige Variablen auf Macs nicht richtig, daher versucht pip, Header und andere freigegebene Dateien (z. B. Manpages) unter /System/Library/Frameworks/Python.framework/Versions/2.7/ zu schreiben. Dies ist eine schlechte Idee, aber in früheren Versionen von OS X war es erfolgreich, wenn pip mit sudo ausgeführt wurde. Auf El Capitan schlägt es jedoch aufgrund von SIP fehl. Dies ist der Fehler, auf den Sie gestoßen sind. Es gibt Meldungen wie OSError: [Errno: 1] Operation not permitted: '/System/Library/Frameworks/Python.framework/Versions/2.7/share'

  2. Apple installiert veraltete Versionen einiger Pakete in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/ (z. B. sechs). Wenn Sie in früheren Versionen von OS X ein Paket installiert haben, für das eine neuere Version erforderlich ist, hat sudo pip die alte Version stillschweigend aus dem Ordner /System/ und eine neuere Version in /Library/Python/2.7/site-packages installiert /Library/Python/2.7/site-packages . Dies war auch eine schlechte Idee und ist mit SIP nicht mehr möglich. Aber jetzt stürzt pip mit einer Fehlermeldung ab, während versucht wird, das alte Paket zu entfernen. Diese Nachricht ist auch OSError: [Errno: 1] , kommt jedoch nach einer Nachricht wie Uninstalling six-1.4.1: . Siehe z. B. https://github.com/pypa/pip/issues/3165 .

  3. Die Apple-Version von Python fügt dem Python-Suchpfad über den vom Benutzer zugänglichen Standardinstallationsorten für Pakete mehrere Verzeichnisse unter /System/Library/Frameworks/Python.framework/Versions/2.7/ hinzu. Wenn Sie also eine neuere Version eines Pakets an einer anderen Stelle sudo -H pip install --ignore-installed six (z. B. sudo -H pip install --ignore-installed six ), wird eine Meldung sudo -H pip install --ignore-installed six , dass die Installation erfolgreich war. Wenn Sie jedoch Python ausführen, erhalten Sie die ältere Version von /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/ . Dies macht es auch unmöglich, neue Pakete zu verwenden, die denselben Namen wie Module aus der Standardbibliothek haben.

Sie können diese Probleme umgehen, aber die Methode hängt von Ihren Antworten auf drei Fragen ab.

  1. Möchten Sie die Mac OS X-Version von Python weiterhin verwenden oder eine eigene installieren? Die Installation Ihrer eigenen ist die sicherste Option und kann über das offizielle Python-Installationsprogramm, Homebrew oder Anaconda erfolgen. Dies empfiehlt Apple auch , wie @Sacrilicious hervorhebt . Wenn Sie Ihre eigene Version von Python installieren, sollten Sie wahrscheinlich alles deinstallieren, was derzeit in /Library/Python/2.7/site-packages installiert /Library/Python/2.7/site-packages sowie alle Skripte, die in /usr/local/bin für diese Pakete installiert wurden (einschließlich pip). Andernfalls haben Sie die ärgerliche Erfahrung, dass einige Skripte auf die vom System installierte Version von Python zugreifen und einige auf Ihre eigene Installation zugreifen.

Wenn Sie bei dem vom System installierten Python bleiben möchten, müssen Sie zwei weitere Entscheidungen treffen:

  1. Möchten Sie Pakete für alle Benutzer oder nur für sich selbst installieren? Durch die Installation für alle Benutzer wird sichergestellt, dass jedes Programm, das Python verwendet (einschließlich möglicherweise administrativer Skripts), Zugriff auf alle von Ihnen installierten Pakete hat. Es besteht jedoch eine entfernte Wahrscheinlichkeit, dass El Capitans eigene Verwendung von Python beeinträchtigt wird. (Ich würde hoffen, dass Apple python -S um sicherzustellen, dass sie immer die erwarteten Pakete erhalten, aber ich habe keine Möglichkeit, dies zu testen.) Durch die Installation nur für Ihr eigenes Benutzerkonto wird die Möglichkeit einer Störung der Python-Systeminstallation ausgeschlossen. Hinweis: Wenn Sie von einer systemweiten Installation zu einer Nur-Benutzer-Installation wechseln /Library/Python/2.7/site-packages , sollten Sie diese Gelegenheit wahrscheinlich nutzen, um alles zu deinstallieren, was derzeit in /Library/Python/2.7/site-packages und zugehörigen Skripten in /usr/local/bin installiert ist .

  2. Möchten Sie die zusätzlichen Pakete, die mit der OS X-Version von Python installiert sind (unter /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/ ), /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/ oder im Suchpfad /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/ ? Ich empfehle, sie auszublenden, damit die neuesten Versionen dieser Pakete bei Bedarf automatisch an vom Benutzer zugänglichen Orten installiert werden. Wenn Sie dieses Verzeichnis nicht ausblenden, erhalten Sie gelegentlich die Meldung, dass pip ein vorhandenes Paket nicht entfernen konnte, um es auf eine spätere Version zu aktualisieren (die von einem anderen Paket benötigt wird, das Sie installieren). In diesem Fall müssen Sie pip install --ignore-installed <package> , wodurch die neuere Version installiert und die vom System installierte Version pip install --ignore-installed <package> wird. Wenn Sie jedoch das gesamte /System/.../Extras/... , verlieren Sie den Zugriff auf einige Apple-Pakete, die nicht über pip verfügbar sind, dh CoreGraphics und bonjour. (Wenn Sie diese benötigen, können Sie möglicherweise Zugriff erhalten, indem Sie sie mit Ihrem Site-Packages-Verzeichnis verknüpfen.)

Hier sind die Problemumgehungen. Dies ist eine gute Vorgehensweise für alle Versionen von OS X, um zu vermeiden, dass Python-Pakete, die vom Betriebssystem verwendet werden, versehentlich ersetzt oder entfernt werden. Sie sind jedoch unerlässlich, wenn Sie vom Benutzer installierte Pakete mit der von Apple bereitgestellten Version von Python unter OS X El Capitan (10.11) verwenden möchten.

Installieren Sie pip

Sie haben dies wahrscheinlich bereits getan, aber wenn nicht, können Sie den folgenden Befehl verwenden, um pip für alle Benutzer zu installieren:

 sudo -H easy_install pip # pip script will be installed in /usr/local/bin 

Oder verwenden Sie diesen Befehl, um pip nur für Ihr eigenes Benutzerkonto zu installieren:

 easy_install --user pip # pip script will be installed in ~/Library/Python/2.7/bin 

Verwalten Sie gemeinsam genutzte Dateispeicherorte

Wenn Sie Pakete für alle Benutzer installieren, erstellen Sie eine Datei mit dem Namen .pydistutils.cfg mit diesen Zeilen (von https://github.com/pypa/pip/issues/426 ):

 [install] install-data=/usr/local install-headers=/usr/local 

Wenn Sie normalerweise sudo -H pip ... , sollten Sie diese Datei in /var/root (Ausgangsverzeichnis für den Root-Benutzer) ablegen. Wenn Sie normalerweise sudo pip ... , sollten Sie diese Datei in Ihrem eigenen Home-Verzeichnis (~) ablegen.

Diese Einstellungen verhindern, dass pip versucht, freigegebene Elemente wie Header und Manpages unter /Library/System zu schreiben. (Der Befehl oben in dieser Antwort ist eine schnellere Version derselben Sache.) Diese Einstellungen werden benötigt, weil darwin-spezifischer Code in /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/install.py kann diese Variablen nicht auf root-beschreibbare Speicherorte setzen (obwohl andere Variablen korrekt festgelegt werden). Weitere Informationen hierzu finden Sie unter https://github.com/pypa/pip/issues/3177 .

Wenn Sie Pakete nur für Ihr eigenes Benutzerkonto installieren, werden freigegebene Elemente automatisch unter ~/Library/Python/2.7/ installiert. Sie sollten Ihrem ~ / .profile jedoch die folgenden Zeilen hinzufügen, damit die freigegebenen Elemente bei Bedarf gefunden werden:

 export PATH=~/Library/Python/2.7/bin:$PATH export MANPATH=~/Library/Python/2.7/share/man:$MANPATH 

Hinweis: Sie müssen eine neue Shell starten oder diese in der Befehlszeile ausführen, damit die Änderungen wirksam werden. Möglicherweise möchten Sie auch hash -r ausführen, wenn Sie kürzlich alte Skripte aus dem Pfad entfernt haben.

Python-Pfad verwalten

Sie müssen sicherstellen, dass die von Ihnen installierten Pakete in der Suchreihenfolge von Python höher sind als die vom System installierten Pakete. Der einfachste Weg, dies zu tun, ist mit .pth Dateien. Dies folgt dem Vorschlag von @ Sacrilicious an anderer Stelle auf dieser Seite , stellt jedoch sicher, dass Ihr Benutzer-Site-Packages-Verzeichnis vor Ihrem systemweiten Site-Packages-Verzeichnis durchsucht wird und beide vor der Standardbibliothek und dem Apple-Extras-Verzeichnis (beide unter / System /) durchsucht werden. ..). Falls gewünscht, werden auch /System/.../Extras aus dem Suchpfad /System/.../Extras .

Erstellen Sie eine Datei mit dem Namen fix_mac_path.pth mit dem folgenden Text. Wenn Sie Pakete für alle Benutzer fix_mac_path.pth sollte /Library/Python/2.7/site-packages in /Library/Python/2.7/site-packages . Wenn Sie nur für Ihren eigenen Benutzer fix_mac_path.pth sollte sich fix_mac_path.pth in ~ / Library / Python / 2.7 / lib / python / site-packages befinden. (Diese Datei kann einen beliebigen Namen haben, muss jedoch an einer oder beiden dieser Stellen platziert werden und mit .pth . Außerdem muss der gesamte Text in dieser Datei in einer Zeile stehen.)

Wenn Sie die von Apple installierten Pakete in /System/.../Extras ausblenden /System/.../Extras :

Führen Sie zunächst einen der folgenden Befehle aus, um eine Arbeitskopie von pip / setuptools unabhängig von der von Apple bereitgestellten Version zu erhalten:

 pip install --ignore-installed --user setuptools # your account only # or sudo -H pip install --ignore-installed setuptools # all users 

fix_mac_path.pth dann den folgenden Code in fix_mac_path.pth an der oben angegebenen Stelle ein:

 import sys; std_paths=[p for p in sys.path if p.startswith('/System/') and not '/Extras/' in p]; sys.path=[p for p in sys.path if not p.startswith('/System/')]+std_paths 

Wenn Sie die von Apple installierten Pakete weiterhin verwenden möchten, müssen Sie keine weitere Kopie von setuptools installieren. fix_mac_path.pth einfach den folgenden Code in fix_mac_path.pth an der oben angegebenen Stelle ein:

 import sys; std_paths=[p for p in sys.path if p.startswith('/System/')]; sys.path=[p for p in sys.path if not p.startswith('/System/')]+std_paths 

Danach können Sie python -m site , um sicherzustellen, dass die Pfadsuchreihenfolge sinnvoll ist.

Installieren Sie Pakete

Danach sollten Sie in der Lage sein, neue Pakete mit einem der folgenden Befehle zu installieren.

Für alle Benutzer:

 sudo -H pip install <package> 

Für Ihren eigenen Benutzer:

 pip install --user <package> 

Paul Chernoch

Sehr klare Anweisungen mit Alternativen. Ich habe diese Anleitung befolgt und konnte das Problem der "sechs" Bibliotheken erfolgreich überwinden, sodass ich mitmproxy installieren konnte.

cmsjr

Dies ist wirklich eine der informativsten, vollständigsten und hilfreichsten Antworten, die ich je auf Stackoverflow erhalten habe. Gut gemacht und danke.

Matthias Fripp

@ cmsjr, danke! Ich habe eine Weile gebraucht, um herauszufinden, was los war, und dies gibt mir einen guten Ort, um darauf zurückzugreifen!

RichVel

Mit Abstand die klarste und vollständigste Erklärung, die ich in diesem Bereich gesehen habe, insbesondere die Bereinigung des vorhandenen System-Python-Chaos - danke! Meine Hauptverbesserung wäre die stärkere Verwendung eines von Brew installierten Python, da dies sehr einfach ist und ein sauberes Setup bietet, für das kein Sudo erforderlich ist. Dies gilt zusätzlich zu virtuellen Anwendungen für Entwicklungsprojekte.

Matt M.

Was für eine Katastrophe. Gott segne dich.

Aufopferungsvoll

Erstens deaktivieren Sie SIP nicht, um das Problem zu beheben. Entschuldigung, das ist der Grund, warum diese Ordnererstellung fehlschlägt, aber wir müssen das umgehen. Zweitens verlieren Sie alle Feinheiten, die Apple Ihnen zu bieten glaubte, wie eine Brücke über pyObjC, wenn Sie Ihr eigenes Python installieren.
(Ich gebe zu, sie sagen, Sie sollten Ihre eigene in /usr/local installieren, wenn Sie ein Entwickler sind. Ich lehne es einfach ab, es auf einfache Weise mit Brew zu machen.)

Logischerweise würden Sie denken, es irgendwo zu installieren, wo SIP Sie nicht blockiert, und dies ist mit ziemlicher Sicherheit eine Abhängigkeit, die Pip für Sie löst. Pip zu sagen, wo es Installationen durchführen soll, ist nicht das Mittel, sondern das bereits vorhandene Material in / System zu ignorieren. Hier wird nach Abhängigkeiten für viele gängige Installationen gesucht, die beispielsweise six und SIP-Ursachen benötigen pip, um sich selbst zu brechen, wenn es versucht, es zu aktualisieren. Es ist eigentlich das Standardverhalten von pip, in /Library/Python/2.7/site-packages zu installieren. Sie müssen nur --ignore-installed sagen, --ignore-installed zu erzwingen, dass aktualisierte Versionen von Abhängigkeiten dort installiert werden.
... Leider können Sie dieses Modul dann in eine interaktive Sitzung oder ein interaktives Skript importieren und nette Fettausfälle erhalten - es wird immer noch das nicht aktualisierte Paket von / System angezeigt!

Seit den frühen Tagen von Setuptools hat Python eine Möglichkeit, diese Suche explizit zu machen. Es sieht ein bisschen seltsam aus (und sollte für diejenigen von uns eine Pause auslösen, die sicherheitsbewusst sind und sich nicht über die Stumpfheit freuen, es ohne Überprüfung an die Spitze der Liste zu schieben, aber) Sie können eine Datei platzieren, die mit endet .pth pth (z. B. 'elcap.pth') in /Library/Python/2.7/site-packages , um dieses Verzeichnis mit den folgenden Inhalten an den Anfang der /Library/Python/2.7/site-packages zu verschieben:
import sys; sys.path = ['/Library/Python/2.7/site-packages'] + sys.path

Starten Sie eine neue Sitzung, und ein kurzer Besuch der python -m site bestätigt, dass Sie diesen Pfad in den ersten Steckplatz eingefügt haben und das Importieren von Modulen funktionieren sollte.

Oh, und nach all dem versuchen Sie einfach, mit der --user Option von pip zu --user oder eine virtuelle Umgebung zu verwenden - das ist für die meisten Leute sowieso die beste Vorgehensweise.

bmike ♦

Das ist elegant und ein guter Kontrapunkt zu meiner simplen Lösung "Gib das System Python auf und braue es". Wenn Sie schnell und schmutzig brauchen, ist dies möglicherweise nicht die Mühe wert, aber pyObjC und eine Python zu behalten, hat große Vorteile.

Aufopferungsvoll

Pythonischer und sinnvoller wäre es, als --user zu installieren oder eine virtuelle Umgebung zu verwenden. Ich bin nur der Meinung, dass Sie als Systemadministrator einmal für ein System installieren und dass der Benutzer in der Lage sein sollte, das System zu überschreiben. Die Einwände gegen diese Lösung könnten sein, dass das System einen geänderten Pfad betrachtet, aber es gibt den Präzedenzfall, dass easy_install auch eine .pth-Datei schreiben kann.

PJJ

Ich weiß nicht, ob der Brauweg der einfache / falsche Weg ist - es geht darum, Probleme zu lösen, und das Brauen löst meine Probleme nur spektakulär - ich denke allein darüber nach, wie viel Aufwand es kosten würde, mit den neuen Spielzeugen zu spielen (Rubin 2.2 .3, python3.5, MongoDB, Node4.2.1) auf bequeme Weise, wie das Eingeben eines Befehls und das Neukompilieren, Aktualisieren und Herausnehmen des Thrashs - na ja, dann gehe ich den einfachen Weg :) Ich weiß nicht, was Die ausgelieferte OS X-Version von Python ist so anders, abgesehen von der Unterstützung von Cocoa und Threads und vielen Paketen, die ich noch nie zuvor verwendet habe, und ich habe tatsächlich meinen Stapel Xcode / Kernel-Material zusammengestellt

Kojiro

Ich habe elcap.pth zu /Library/Python/2.7/site-packages hinzugefügt. Jetzt wird dieser Pfad in den Indizes 0 und 2 von sys.path aufgeführt. Dann habe ich versucht, sudo pip install --ignore-installed ipython und es läuft bis "Ausführen von setup.py install for pexpect". Zu diesem Zeitpunkt versucht pip immer noch , etwas in /System/Library/Frameworks/Python.framework/Versions/2.7 zu aktualisieren / share und Fehler raus.

user5359531

Für die Installation von virtualenv muss pip verwendet werden, sodass Probleme im Zusammenhang mit der Verwendung von pip nicht wirklich gelöst werden. So wie es ist, installiere ich es mit pip --user und virtualenv funktioniert immer noch nicht.

PJJ

Ich denke, das liegt am SIP- oder Systemintegritätsschutz , einer Art Echtzeit-Dateischutz, der sich wie ein Windows-Antivirenprogramm anfühlt :) und alle Änderungen stoppt, die Sie in den OS X-Systemordnern vornehmen möchten. Apple hat einfach beschlossen, Systemänderungen zu deaktivieren - um sicherzugehen, dass Sie vollständig vor dem Übel des Internets und anderen computerbezogenen bösen Kräften geschützt sind, vor denen SIP uns schützt.

Wenn Sie SIP deaktivieren möchten, müssen Sie Recovery HD starten, indem Sie beim Starten Ihres Mac gleichzeitig die Befehlstaste + R gedrückt halten.

Öffnen Sie das Terminal über das Menü Dienstprogramme, geben Sie csrutil disable und csrutil disable . Gehen Sie zum Apple-Menü, um neu zu starten.

SIP wäre von nun an deaktiviert. Ich habe es vor langer Zeit deaktiviert und nichts Falsches bemerkt. Einige Prozesse scheinen sich zu beschweren, aber sie funktionieren immer unter OS X, daher bin ich mir nicht sicher, ob dies auf den fehlenden Schutz der Systemintegrität zurückzuführen ist.

Mein Tipp ist, SIP vollständig loszuwerden und / oder Homebrew für Ihre gesamte OpenSource- / Entwicklungssoftware zu verwenden. Homebrew verwendet das Verzeichnis / usr / local für die Installation und kollidiert nicht mit anderen Systemkomponenten. Homebrew- Builds sind aktueller als die Builds von os x apple.

bmike ♦

Es macht keinen Sinn, diese Antwort abzulehnen. Aber vielleicht ist jemand nur launisch? +1 von mir ...

PJJ

Danke Kumpel! Versucht, etwas Humor zu setzen, aber nicht jeder muss mit meinem Verständnis davon in Einklang gebracht werden;)

bmike ♦

Hmm - nachdem ich die Antwort von sacrilicious gelesen habe , bin ich mir nicht so sicher, ob dies SIP ist. Gedanken?

Aufopferungsvoll

Dies ist in der Tat SIP, das die Erstellung eines Ordners (möglicherweise für eine Manpage) als Unterverzeichnis von /System . tabu ab 10.11. Wir können csrutil verwenden, um es vorübergehend zu deaktivieren, wenn wir in einer Notlage sind, obwohl ich weiß, dass es sich so anfühlt, als würde es sich in einen Schlag ins Maul verwandeln, aber dies scheint kein guter Grund zu sein, es einzusetzen. Es wegzulassen ist… warum wir keine schönen Dinge haben können.

PJJ

Ich habe es die ganze Zeit statusSystem Integrity Protection status: enabled (Custom Configuration). Configuration: Apple Internal: disabled Kext Signing: disabled Filesystem Protections: disabled Debugging Restrictions: disabled DTrace Restrictions: disabled NVRAM Protections: disabled : statusSystem Integrity Protection status: enabled (Custom Configuration). Configuration: Apple Internal: disabled Kext Signing: disabled Filesystem Protections: disabled Debugging Restrictions: disabled DTrace Restrictions: disabled NVRAM Protections: disabled statusSystem Integrity Protection status: enabled (Custom Configuration). Configuration: Apple Internal: disabled Kext Signing: disabled Filesystem Protections: disabled Debugging Restrictions: disabled DTrace Restrictions: disabled NVRAM Protections: disabled und hat keinen Grund, es zu aktivieren, da ich mein System ziemlich eng geschlossen und angepasst habe
Seite 1 von 3Nächster