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?

Léo Léopold Hertz 준영
quelle
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.

jherran
quelle
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 
Kostub Deshmukh
quelle
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

Rymo
quelle
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 준영