Mac OSX와 Linux에서 사용한 유틸리티 명령간에 약간의 차이점이 있음을 발견했습니다. 내 경험을 통일시키고 싶다.
모든 mac 유틸리티를 GNU 유틸리티로 바꾸려면 어떻게해야합니까?
답변
이것은 g 접두사가있는 GNU 유틸리티에 대한 심볼릭 링크를 다음에 추가합니다 /usr/local/bin/
.
brew install coreutils findutils gnu-tar gnu-sed gawk gnutls gnu-indent gnu-getopt grep
brew search gnu
다른 패키지를 참조하십시오 . g 접두사없이 명령을 사용하려면 예를 들어 /usr/local/opt/coreutils/libexec/gnubin
에서 다른 디렉토리 앞에 추가 하십시오 PATH
.
$ brew info coreutils
coreutils: stable 8.21
http://www.gnu.org/software/coreutils
Depends on: xz
/usr/local/Cellar/coreutils/8.20 (208 files, 9.4M)
/usr/local/Cellar/coreutils/8.21 (210 files, 9.6M) *
https://github.com/mxcl/homebrew/commits/master/Library/Formula/coreutils.rb
==> 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"
Additionally, you can access their man pages with normal names if you add
the "gnuman" directory to your MANPATH from your bashrc as well:
MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"
답변
게다가 brew install coreutils
, 당신은 또한 다음과 같은 몇 가지 다른 패키지를 설치해야 할 수도 있습니다 gnu-sed
, grep
:
brew install findutils
brew install gnu-indent
brew install gnu-sed
brew install gnutls
brew install grep
brew install gnu-tar
brew install gawk
이 --with-default-names
옵션은 2019 년 1 월부터 제거 되므로 g
접두사 없이 사용하려면 각 바이너리를 경로에 추가해야합니다 .
이전 참조 ( --with-default-names
사용 가능한 경우) : http://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/
답변
교체를 권장 할 지 모르겠습니다 . 그러나 다른 경로에 설치하여 그런 식으로 활용할 수 있습니다. 전반적으로 Linux에서 왔으며 더 많은 “일반적인”* nix 유틸리티 및 apt와 유사한 시스템에 액세스하려면 Macports를 참조하십시오 .
http://www.macports.org
예를 들어, 애플에 포함 된 GCC와는 반대로 최신 “일반”GCC를 예로 사용할 수 있습니다.
답변
나는 이것을 정확하게하기 위해 스크립트를 작성했습니다! 스크립트는 여기 (또는 아래)에서 볼 수 있습니다 . 그러나이 게시물이 이전에 링크 된 최신 버전의 스크립트를 반영한다고 항상 보장 할 수는 없습니다.
스크립트를 실행하면 Homebrew가 설치되고 (아직 설치되지 않은 경우) 관련된 모든 GNU 유틸리티가 설치되고 (아직 설치되지 않은 경우) PATH
설치된 유틸리티에서 변수가 작성됩니다.
#!/bin/bash
# Install Homebrew (if not already installed)
ruby -e "$(curl -fsSL "\
"https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Install required packages from Homebrew
brew tap homebrew/dupes
brew install coreutils binutils diffutils ed findutils gawk gnu-indent gnu-sed \
gnu-tar gnu-which gnutls grep gzip screen watch wdiff wget bash gdb gpatch \
m4 make nano file-formula git less openssh python rsync svn unzip vim \
--default-names --with-default-names --with-gettext --override-system-vi \
--override-system-vim --custom-system-icons
# Empty the .bash_path file that holds GNU paths
> ~/.bash_path
# Build PATH variable script in ~/.bash_path
for i in /usr/local/Cellar/*/*/bin; do
echo 'export PATH="'$i':$PATH"' >> ~/.bash_path
done
for i in /usr/local/Cellar/*/*/libexec/gnubin; do
echo 'export PATH="'$i':$PATH"' >> ~/.bash_path
done
for i in /usr/local/Cellar/*/*/share/man; do
echo 'export MANPATH="'$i':$MANPATH"' >> ~/.bash_path
done
for i in /usr/local/Cellar/*/*/libexec/gnuman; do
echo 'export MANPATH="'$i':$MANPATH"' >> ~/.bash_path
done
# Check if .bash_path is being called from .bash_profile
PATCH=`grep "~/.bash_path" ~/.bash_profile`
if [ "$PATCH" == "" ]; then
# Add Ubuntu-style PS1 to .bash_profile
cat <<EOF > ~/.bash_profile
export PS1="\[\033[1;32m\]\u@\h\[\033[0m\]:\[\033[1;34m\]\w\[\033[0m\]# "
EOF
# Add .bash_path to .bash_profile
echo "source ~/.bash_path" >> ~/.bash_profile
fi
답변
macOS CLI를 새로운 GNU / Linux CLI 환경으로 투명하게 변환하는 스크립트를 작성했습니다.
- 누락 된 GNU 프로그램 설치
- 오래된 GNU 프로그램 업데이트
- 사전 설치된 BSD 프로그램을 선호하는 GNU 구현으로 교체
- 널리 사용되는 GNU / Linux 배포판에서 공통적 인 다른 프로그램 설치
https://github.com/fabiomaia/linuxify
git clone https://github.com/fabiomaia/linuxify.git
cd linuxify/
./linuxify install
또한 모든 것을 쉽게 취소 할 수 있습니다.
./linuxify uninstall