Mavericks
A la página principal Al momento de escribir esto, la Wikipedia no ofrece una página en español de este producto de software, así que como parte de mis notas ofrezco la traducción que se ofrece en la página en inglés de ésta. Por otra parte, las notas aquí son sólo de la experiencia de instalación y algunas particularidades de uso.

 


Definición y breve historia

Homebrew es un sistema de administración de paquetes de software gratuito de código abierto que simplifica la instalación de aplicaciones y programas en el sistema operativo OS X de las computadoras de escritorio Apple de la familia Macintosh. Originalmente escrito por Max Howell, el gestor de paquetes ha ganado popularidad en la comunidad Ruby on Rails y se ganó elogios por su extensibilidad. Homebrew ha sido recomendado por su facilidad de uso, así como su integración en la línea de comandos.

Homebrew ha hecho un amplio uso de GitHub con el fin de ampliar el apoyo de varios paquetes a través de contribuciones de los usuarios. En 2010 Homebrew fue el tercer repositorio con más ramificaciones en GitHub. En 2012, Homebrew tuvo el mayor número de nuevos contribuyentes en GitHub. En 2013, Homebrew tenía tanto el mayor número de contribuyentes e issues cerradas que cualquier otro proyecto en GitHub.

Homebrew ha dado lugar a varios subproyectos como Linuxbrew que es un “port” (que se ha “portado”) a Linux y Homebrew Cask que es un comando externo que permite la instalación de aplicaciones GUI, así como “taps” dedicados a áreas específicas o lenguajes de programación como Homebrew PHP.

Instalación

Ya con anterioridad he usado administradores de paquetes: de instalaciones de software o de control de versiones como es el caso, respectivamente de MacPorts, pip y git. Así también, ya sabía de la existencia de Homebrew aunque me había resistido un poco a instalarlo por causas que creo no importaban mucho (ya que no las recuerdo).

En varias ocasiones he leído sobre la conveniencia de tener esta utilería, pero no ha sido hasta ahora que me he animado a instalarla, principalmente por la necesidad de integrar el desarrollo de C++ y XCode.

La facilidad de uso que tanto se le ha alabado va de la mano con las instrucciones para su descarga e instalación. En la página de este proyecto simplemente se lee:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

para ser copiado y pegado en la aplicación Terminal. Tras ello la instalación a sido:


$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1
==> The following directories will be made group writable:
/usr/local/.
/usr/local/bin
/usr/local/include
/usr/local/lib
/usr/local/lib/pkgconfig
/usr/local/share
/usr/local/share/man
/usr/local/share/man/man1
/usr/local/share/doc
==> The following directories will have their group set to admin:
/usr/local/.
/usr/local/bin
/usr/local/include
/usr/local/lib
/usr/local/lib/pkgconfig
/usr/local/share
/usr/local/share/man
/usr/local/share/man/man1
/usr/local/share/doc


Press RETURN to continue or any other key to abort

En este punto, una rápida revisión de los /usr/local mostró:

$ cd /usr
$ ls -l

total 8
drwxr-xr-x 5 root wheel 170 Aug 25 2013 X11
lrwxr-xr-x 1 root wheel 3 Mar 28 2014 X11R6 -> X11
drwxr-xr-x 1066 root wheel 36244 Mar 14 04:20 bin
drwxr-xr-x 253 root wheel 8602 Mar 14 04:21 include
drwxr-xr-x 282 root wheel 9588 Mar 14 04:21 lib
drwxr-xr-x 169 root wheel 5746 Mar 21 17:18 libexec
drwxr-xr-x 7 root wheel 238 Feb 6 2013 llvm-gcc-4.2
drwxr-xr-x 8 root wheel 272 Apr 6 12:00 local
drwxr-xr-x 242 root wheel 8228 Mar 14 04:21 sbin
drwxr-xr-x 46 root wheel 1564 Jul 11 2014 share
drwxr-xr-x 4 root wheel 136 Mar 28 2014 standalone
$

y se procedió a aceptar los cambios indicados para que la instalación continuara, así reportando:

==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/bin /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig /usr/local/share /usr/local/share/man /usr/local/share/man/man1 /usr/local/share/doc
Password:
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/bin /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig /usr/local/share /usr/local/share/man /usr/local/share/man/man1 /usr/local/share/doc
==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew
==> Downloading and installing Homebrew...
remote: Counting objects: 3525, done.
remote: Compressing objects: 100% (3379/3379), done.
remote: Total 3525 (delta 34), reused 1532 (delta 18), pack-reused 0
Receiving objects: 100% (3525/3525), 2.64 MiB | 200.00 KiB/s, done.
Resolving deltas: 100% (34/34), done.
From https://github.com/Homebrew/homebrew
* [new branch] master -> origin/master
HEAD is now at 7d42727 emacs: update 24.5 bottle.
==> Installation successful!
==> Next steps
Run `brew help` to get started
$

Actualización
Después de una actualización mayor del sistema operativo, llega a ocurrir que Homebrew señala que se encuentra en una versión no soportada

$ brew …
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Error: Could not create /usr/local/Cellar
Check you have permission to write to /usr/local
$

$ brew -v
Homebrew 0.9.9 (git revision 21ca; last commit 2016-06-07)
Homebrew/homebrew-core (git revision 0b5b; last commit 2016-06-07)
$

$ sudo chown “$(whoami)” /usr/local
$ cd /usr/local
emote: Counting objects: 77823, done.
remote: Compressing objects: 100% (20277/20277), done.
remote: Total 77823 (delta 56216), reused 77177 (delta 55666), pack-reused 0
Receiving objects: 100% (77823/77823), 17.47 MiB | 189.00 KiB/s, done.
Resolving deltas: 100% (56216/56216), completed with 290 local objects.
From https://github.com/Homebrew/brew
21ca138..a1c2ee9 master -> origin/master
* [new tag] 0.1 -> 0.1

* [new tag] 1.1.9 -> 1.1.9
[…/local]$ brew -v
$ git reset –hard origin/master
HEAD is now at a1c2ee9 Merge pull request #2211 from Homebrew/revert-1796-revert-1746-always-filter-flags-deps
$ brew update –force
Updated 1 tap (homebrew/core).
==> New Formulae

maven-completion zsxd
==> Updated Formulae
abcde libmtp

libmspub
==> Renamed Formulae
antlr2 -> antlr@2 libmpc08 -> libmpc@0.8

libmongoclient -> mongo-cxx-driver
==> Deleted Formulae
aeskeyfind jsdoc-toolkit rfcdiff

jless rcssserver
==> Migrating HOMEBREW_REPOSITORY (please wait)…
==> Migrated HOMEBREW_REPOSITORY to /usr/local/Homebrew!
Homebrew no longer needs to have ownership of /usr/local. If you wish you can
return /usr/local to its default ownership with:
sudo chown root:wheel /usr/local
[…/local]$ sudo chown root:wheel /usr/local
[…/local]$ brew -v
Homebrew 1.1.10
Homebrew/homebrew-core (git revision b4e00; last commit 2017-02-27)

========================
$ brew install syncthing
Updating Homebrew…
==> Downloading https://homebrew.bintray.com/bottles/syncthing-0.14.23.sierra.bo
######################################################################## 100.0%
==> Pouring syncthing-0.14.23.sierra.bottle.tar.gz
==> Caveats
To have launchd start syncthing now and restart at login:
brew services start syncthing
Or, if you don’t want/need a background service you can just run:
syncthing
==> Summary
🍺 /usr/local/Cellar/syncthing/0.14.23: 7 files, 12.7M
[…/local]$