Как заменить утилиты Mac OS X на основные утилиты GNU?

Я обнаружил, что существуют некоторые различия между командой утилиты, которую я использовал в Mac OSX и Linux. Я хочу объединить свой опыт.

Как я могу заменить все мои утилиты mac на утилиты GNU?

133 голоса | спросил steveyang 22 +04002012-10-22T18:49:33+04:00312012bEurope/MoscowMon, 22 Oct 2012 18:49:33 +0400 2012, 18:49:33

4 ответа


162

Это добавляет символические ссылки для утилит GNU с префиксом g в /usr /local /bin /:

brew install coreutils findutils gnu-tar gnu-sed gawk gnutls gnu-indent gnu-getopt

Для других пакетов см. поиск кина gnu. Если вы хотите использовать команды без префикса ag, установите формулы с помощью - default-names (или - с именами по умолчанию), если ваш brew version newer) или добавить, например, /usr /local /opt /coreutils /libexec /gnubin перед другими каталогами на PATH.

$ brew info coreutils
coreutils: стабильный 8.21
http://www.gnu.org/software/coreutils
Зависит от: xz
/usr/local/Cellar/coreutils/8.20 (208 файлов, 9.4M)
/usr/local/Cellar/coreutils/8.21 (210 файлов, 9.6M) *
https://github.com/mxcl/homebrew/commits/master/Library/Formula/coreutils.rb
== > Предостережения
Все команды установлены с префиксом «g».

Если вам действительно нужно использовать эти команды с их обычными именами, вы
может добавить каталог «gnubin» в ваш PATH из вашего bashrc, например:

    PATH = "/USR /местные /Opt /Coreutils /libexec /gnubin: $ PATH"

Кроме того, вы можете получить доступ к своим страницам с обычными именами, если добавить
каталог «gnuman» для вашего MANPATH из вашего bashrc:

    MANPATH = "/USR /местные /Opt /Coreutils /libexec /GNUman: $ MANPATH"

Вы можете установить GNU grep, нажав homebrew /dupes:

варить кран homebrew /dupes; варить установку grep
ответил user495470 23 +04002012-10-23T15:10:54+04:00312012bEurope/MoscowTue, 23 Oct 2012 15:10:54 +0400 2012, 15:10:54
34

Помимо brew install coreutils, вам также может потребоваться установить некоторые другие пакеты, такие как gnu-sed, grep:

brew install findutils --with-default-names
brew install gnu-indent --with-default-names
brew install gnu-sed --with-default-names
варить установку gnutls
brew install grep --with-default-names
brew install gnu-tar --with-default-names
варить установку gawk

Опция - with-default-names не является обязательной, включите ее, если вам действительно нужно использовать эти GNU-команды как стандартные, или они будут скомпилированы с помощью g.

Ссылка: http://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/

ответил xuhdev 15 PMpMon, 15 Apr 2013 12:30:49 +040030Monday 2013, 12:30:49
13

Я не уверен, что рекомендую заменить ; однако вы можете установить их на другой путь и использовать их таким образом. В целом, если вы приехали из Linux и хотели бы получить доступ к более «универсальным» * nix-утилитам и системе, подобной apt, я бы рекомендовал посмотреть в Macports: http://www.macports.org

Это позволяет, например, использовать последний «общий» GCC, в отличие от /в дополнение к включенному Apple GCC, как пример.

ответил Jonathan 22 +04002012-10-22T20:06:28+04:00312012bEurope/MoscowMon, 22 Oct 2012 20:06:28 +0400 2012, 20:06:28
4

Я написал сценарий, чтобы сделать именно это! Сценарий можно просмотреть здесь (или ниже). Тем не менее, я не всегда могу гарантировать, что этот пост будет отражать последнюю версию скрипта, связанного ранее.

После запуска скрипта Homebrew будет установлен (если он еще не установлен), все связанные с ним утилиты GNU будут установлены (если они еще не установлены), а переменная PATH будет построена из установленных утилит .

#! /Bin /Баш

# Установить Homebrew (если он еще не установлен)
ruby -e "$ (curl -fsSL" \
"Https://raw.githubusercontent.com/Homebrew/install/master/install)"

# Установить необходимые пакеты из Homebrew
варить крана доморощенного /обмана
brew install coreutils binutils diffutils ed findutils gawk gnu-indent gnu-sed \
  gnu-tar gnu-gnutls grep gzip screen watch wdiff wget bash gdb gpatch \
  m4 сделать nano file-formula git less openssh python rsync svn unzip vim \
  --default-names --with-default-names -with-gettext --override-system-vi \
  --override-system-vim - значки для системы

# Пустой файл .bash_path, который содержит пути GNU
> ~ /.bash_path

# Создать скрипт переменной PATH в ~ /.bash_path
для i в /usr /local /Cellar /* /* /bin; делать
  echo 'export PATH = "' $ i ': $ PATH">>>> ~ /.bash_path
сделанный
для i в /usr /local /Cellar /* /* /libexec /gnubin; делать
  echo 'export PATH = "' $ i ': $ PATH">>>> ~ /.bash_path
сделанный
для i в /usr /local /Cellar /* /* /share /man; делать
  echo 'export MANPATH = "' $ i ': $ MANPATH">>> ~ /.bash_path
сделанный
для i в /usr /local /Cellar /* /* /libexec /gnuman; делать
  echo 'export MANPATH = "' $ i ': $ MANPATH">>> ~ /.bash_path
сделанный

# Проверьте, вызывается ли .bash_path из .bash_profile
PATCH = `grep '~ /.bash_path" ~ /.bash_profile`
если ["$ PATCH" == ""]; тогда
  # Добавьте PS1 в Ubuntu в .bash_profile
  cat <EOF> ~ /.bash_profile
export PS1 = "\ [\ 033 [1; 32m \] \ u @ \ h \ [\ 033 [0m \]: \ [\ 033 [1; 34m \] \ w \ [\ 033 [0m \] #"
EOF
  # Добавить .bash_path в .bash_profile
  echo "source ~ /.bash_path">>>> ~ /.bash_profile
фи
ответил Clay Freeman 6 +03002015-10-06T08:44:32+03:00312015bEurope/MoscowTue, 06 Oct 2015 08:44:32 +0300 2015, 08:44:32

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132