Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Homebrew Cask – CLI workflow for the administration of Mac binaries (github.com/phinze)
86 points by dmmalam on Jan 2, 2014 | hide | past | favorite | 24 comments


I'm constantly impressed with Homebrew. The team that maintains it always outdoes themselves when it comes to building new things to make using software on a Mac the best experience possible.

On top of that, every single interaction I've had with the project through Adam, Mike, Misty, etc has been a downright pleasure.

I wish there was a simple way to donate to the Homebrew project (besides the kickstarter for brewbot). I've checked out this thread on Github but it seems closed: https://github.com/Homebrew/homebrew/issues/20482

If the devs are reading this, consider setting up a link even if it is just to get you all a few beers.


Amen to that! Our project is actually independent of the Homebrew team, but we very much model ourselves on the great work they're doing.


Cool to see this up on Hacker News. The project has been growing quite a lot over the past few months.

We've expanded from managing the installation of just apps, to now include support for installing Font's, Widgets and QuickLook Plugins.

We've now also got separate repos for alternate app versions as well as fonts, you can find them @ https://github.com/caskroom/

If anyone has questions we're normally hanging out in #homebrew-cask on Freenode


The only "downside" that I see at the moment is that it doesn't recognize apps that are installed in another way. Given that I've installed most of the software that I need already it makes Cask much less useful to me. If there was some way to let Cask scan your system and know that I've already installed google-chrome and adium that would be cool.

Quite a few of the apps I use (iTerm2, ST3, Chrome, Adium, etc.) update themselves periodically. I wonder how Cask deals with that?


> Quite a few of the apps I use (iTerm2, ST3, Chrome, Adium, etc.) update themselves periodically. I wonder how Cask deals with that?

Sparkle-based self-updating apps will self-update in place. For apps like that, the current policy is to have a Cask version of 'latest', and letting the apps self update.

I've been doing this for some time and I've found it works out AOK. It's nice to be able to click the "Update & Relaunch" and know I'm not messing anything up. :)


Apple actually has a few ways of making a list of installed apps, as shown in System Information. More on this buried in http://stackoverflow.com/questions/2765063/how-can-i-discove... ... My fav. tricks tend to be all the nice -xml commands Apple offers. Oh ... and "Installations" probably lists all the receipts from running graphical installers, this being different from drag-and-drop .app lists which you can also find.


> If there was some way to let Cask scan your system and know that I've already installed google-chrome and adium that would be cool.

I'd love to see this too - I'm keen on the idea of Cask, but at the moment my system is fairly complete.


There are a few things I don't like about this homebrew-cask. My biggest issue currently, now that the installation path can be specified as /Applications instead of ~/Applications[0], is that it makes a symbolic link from its install location to the Applications folder. Since the standard for GUI applications on OS X is to have some built in update system, I just want the applications to be copied to my install location and left alone. This means it would only automate the install process which I think would be better then managing their lifecycle.

[0]: https://github.com/phinze/homebrew-cask/blob/master/USAGE.md...


I believe if you're going the Homebrew route you're accepting the cask's versions of things as a means to synchronize installations. This could be handle for teams that need to be using the same versions of specific libraries or apps, system administrators who want to manage upgrades paths, etc.

It could also be as simple as "that's the way it works because that's how homebrew works". It's all symlinks, and I personally am a fan because if I want to cleanup what's been done with Homebrew it's very easy.

I do completely understand your point, and agree to a certain extent, but I'm sure there are situations where you wouldn't want things simply copied and left to run/update on their own.


I don't think this synchronizes installations since the forumla[0] are overwritten with each update. If someone updates one of them the specific version you downloaded elsewhere will not be downloaded again. I definitely understand why homebrew works this way, but the logic for symlinking the applications is all in this extension[1] so this could easily be changed. I agree that symlinks is better for tools typical to homebrew but for this it's not like it symlinks your preference files so you're not actually cleaning up any junk if you uninstall the application through cask, it's the equivalent of just dragged it to the trash. Also the applications will still attempt to update so it's not managing versions that way either.

[0]: https://github.com/phinze/homebrew-cask/tree/master/Casks [1]: https://github.com/phinze/homebrew-cask/blob/master/lib/cask...


> I just want the applications to be copied to my install location and left alone.

If it's a use case that would be useful to people, this is a mode of operation I would definitely be willing to include in the project. Feel free to open an issue (or even better - a PR!) with the idea. :)


I've thought about this, previously I've changed this by just replacing your /bin/ln calls to mv but I think that attempting to add this to the tool may cause some confusion. Obviously it wouldn't be the default behavior and you'd have to enable it probably through the ENV variable, but this would render all commands but install virtually useless I think which wouldn't make much sense in its current state I don't think.


The README summary is a little clearer than the link title: "Get the elegance, simplicity, and speed of Homebrew for the installation and management of GUI Mac applications such as Google Chrome and Adium."


Speaking of which, is anyone working on allowing Homebrew itself to do binary package management? The lack of binary package management is one of the main reasons I give when people ask me why I mainly use Linux on my Macbook Air. I understand this will add the complication of needing to host the binaries somewhere, but it would be quite useful, since some packages take a long time to compile.


It already has binaries. The current problem is that most of the binaries are dependent on the prefix being "/usr/local", and those that aren't need to be marked as such by hand. Search for "cellar :any" in your formulas:

    grep -r "cellar :any" $(brew --prefix)/Library/Formula
I get 22/2597 that are prefix independent.


It already has this kind of functionality, it is called bottles and most of the bigger packages like Qt are already available as binaries. Recently I've noticed that some of the smaller ones are also becoming available which is nice.


Oh cool! I did not know that. I'll still be sticking to Arch Linux though. I'd have a hard time adapting to using a non-tiling window manager full time.


I moved from a tiling WM to OS X a few years back with no big issues. Even then there are partial solutions such as https://github.com/ianyh/Amethyst


I've used Cask for a few months now and it's been great as promised. Developers are responsive and accepted my formula additions quickly.

So glad to see it on HN; can't recommend it enough.


Trying it out, and pretty happy so far, but I also have a lot of applications that I've previously installed manually, and I'm finding it tedious to install via cask then delete from /Applications and hope everything migrates over properly. It is more challenging with stuff like iStat-Menus which I'm really not sure how to migrate.


I wrote about Cask as well as other tools sometimes back, http://ashishb.net/tech/mac-101-migrating-from-gnulinux-to-m...


I have been using this for the last month. Very useful, especially the Brewfile.


Is there some way to also automate installs from the App Store?


Alas there is not AFAIK. For all the research I've done on this, the only conclusion I've been able to draw is that the MAS is anti-automation (if not in intent, at least in its current design). :(




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: