Verwendung von STDBUF aus Homebrews Coreutils


10

Ich renne brew search stdbufund bekomme

No formula found for "stdbuf".
Searching pull requests...
Closed pull requests:
coreutils: upstream fix for stdbuf (https://github.com/Homebrew/homebrew/pull/32955)

Ich renne brew install coreutilsaber bekomme Warning: coreutils-8.23_1 already installed.

Ich sehe aber keinen stdbuf in meinem System.

$ std [tab]
stdethers  stdhosts   

Mein Weg ist

/usr/local/bin:/usr/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:
/sbin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin:/Users/masi/.cabal/bin

Macports deinstallieren

Die gleichzeitige Verwendung von Macports und Homebrew führt zu Konflikten. Die endgültige Lösung besteht darin, Macports zu deinstallieren, das noch nicht ausgereift ist. Unabhängig davon, was Ihr PATH ist, verursacht Macports Konflikte mit Programmen im PATH. Ich habe den Kern des Problems hier am Ende des Textes über das Vergrößern des Festplattenabbilds in VirtualBox erkannt.


Wie können Sie stdbuf in OSX Yosemite verwenden?


1
Warum hast du /usr/local/binund /usr/binin deinem $PATHzweimal?
user3439894

Nicht mehr, wenn ich Export in .bash_profileund kombiniert habe .bashrc.
Léo Léopold Hertz 준영

Kann jemand Homebrew dieses Problem melden? Das stdbuf-Dienstprogramm sollte sich im Standardpfad befinden, während sich die gemeinsam genutzte lib-Datei libstdbuf.so am Speicherort libexec befinden sollte.
Pádraig Brady

Antworten:


8

Sie müssen Ihren Pfad ändern, coreutilsbevor Sie dir hinzufügen /usr/bin. Sie können so etwas tun:

export PATH=/usr/local/opt/coreutils/libexec/gnubin:$PATH

Und sollte nach den Änderungen wie folgt aussehen:

/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/usr/bin:
/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:
/sbin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin:
/Users/masi/.cabal/bin

Danach müssen Sie verwenden können stdbuf.


Mein Pfad ist jetzt /usr/local/bin:/usr/bin:/opt/local/sbin:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin:/Users/masi/.cabal/binnach der Änderung. Ich lege den Export auf meine .bashrc. Es muss noch etwas anderes geben, das den Anfang in meinen PFAD einfügt.
Léo Léopold Hertz 준영

Haben Sie Ihre .bashrcDatei von Ihrem bezogen .bash_profile? Überprüfen Sie Ihren Pfad auf.bash_profile .
jherran

Ich hatte das export PATH=/usr/local/bin:/usr/bin:/opt/local/sbin:$PATH:$HOME/.cabal/bin in .bash_profile. Also habe ich es entfernt .bash_profileund einfach zu .bashrceinfach hinzugefügt export PATH=/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/usr/bin:/opt/local/sbin:$PATH:$HOME/.cabal/bin.
Léo Léopold Hertz 26

12

coreutilsUnter OS X wird gallen Befehlen das Präfix hinzugefügt, um die Standardprogramme unter OS X nicht zu beeinträchtigen.

Dies wird beim Ausführen gedruckt brew install coreutils

==> Caveats
All commands have been installed with the prefix 'g'.

If you really need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:

    PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"

Wenn Sie es also nicht wirklich verwenden müssen stdbuf, gibt es keinen wirklichen Grund, Ihren Pfad zu aktualisieren. Sie können gstdbufstattdessen einfach Folgendes ausführen :

$ gstdbuf --help                                                         
Usage: gstdbuf OPTION... COMMAND 

1

Wenn du dich nicht mit deinem PFAD anlegen willst und alles was du brauchst ist stdbuf:

cd /usr/local/bin
sudo ln -s ../opt/coreutils/libexec/gnubin/stdbuf stdbuf

Aus irgendeinem Grund hatte ich auch schon coreutilsgebraut, aber nur bestimmte Binärdateien verknüpft - ohne mich daran zu erinnern, warum, schien dies die sicherste Option zu sein


Es wäre schön zu verstehen, warum diese Verknüpfung nicht erfolgt. Ich mag es nicht, zu viel in PATH zu stecken und es durcheinander zu bringen.
Léo Léopold Hertz 준영
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.