5 ms·
/usr/local is the default location for user-installed stuff, but I personally like to have my package manager do its stuff in a separate directory. I like the
by nmc 12y ago
/usr/local is the default location for user-installed stuff, but I personally like to have my package manager do its stuff in a separate directory.
I like the way Fink [1] uses the /sw (software) directory.
Does anyone have a valuable opinion on the comparison between Fink and Homebrew — or maybe MacPorts?
[1] http://www.finkproject.org http://www.finkproject.org
- deleted 12y ago[deleted]
- rwg 12y ago/usr/local is a wasteland on OS X. Package installers love to dump stuff in there blindly. This leads to fun-to-debug problems where two different things are overwriting files in there and blowing up because of version mismatch problems. I ended up making a /rr tree ("rwg's root"), building things I care about from scratch, and using GNU stow to manage it.
- scott_karana 12y agoHomebrew actually uses /usr/local/Cellar for all its installations, and then makes symlinks in the relevant /usr/local/{bin,sbin} directories. Not sure if that's what you meant.
- nmc 12y agoThanks for the clarification. Still, a quick Google search seems to indicate that this does not solve all related problems (symlinking, overriding, etc.).
- quarterto 12y agoBrew does refuse to link anything that would collide, and it knows to not link e.g. gettext, as a lot of Mac programs rely on BSD gettext
- jperkin 12y agoI work on pkgsrc which is another alternative. Its main advantages are: * A large number of pre-built binary packages with an apt-get style command (pkgin) to install them. Over 10,000 packages are available for OSX in the most recent release (2014Q1). * It is cross-platform to over 20 different platforms. At Joyent we provide binary packages for SmartOS/illumos, OSX, and Linux, so you can use identical packaging tools across multiple platforms, rather than having to use different tools on each OS. It is the default package manager on SmartOS, with over 12,000 binary packages available for that platform. * As the 'src' in 'pkgsrc' implies, it's very easy to build from source too if you want to tweak build options or compiler flags. You can also install into any prefix you desire (we default to /usr/pkg), even as an unprivileged user to your home directory. Our binary packages are available from http://pkgsrc.joyent.com/installing.html http://pkgsrc.joyent.com/installing.html and we'd love to hear feedback on how to improve them or adding support for different platforms.
- patrickmay 12y agoI agree about staying out of /usr/local. I install stuff there -- I don't want my package manager taking it over. That's kept me away from Homebrew.
- tvon 12y agoIt does bother me that Homebrew advocates using /usr/local, that is a choice that needs justification and I don't believe they offer anything convincing. That said, you can configure homebrew to use any path (check the wiki), you just have to set other environment variables as needed (eg, PATH). For example I'm currently using /opt/homebrew. (note: a large downside to this is that you have to compile everything and cannot take advantage of Homebrew's pre-compiled "bottles" for some packages)
- patrickmay 12y ago/opt/homebrew would be consistent with other large systems. I'd like to see that be the default.
- jfb 12y agoI use homebrew in /homebrew for exactly this reason. The homebrew folks make noise about this, but I don't install language specific packages via brew, so I've never had a problem.
- wilmoore 12y ago> I don't want my package manager taking it over. That's kept me away from Homebrew That was an early blocker for me as well; however, when I discovered that I could just install homebrew at ~/.homebrew, that made it all work out. I created https://github.com/wilmoore/homebrew-home https://github.com/wilmoore/homebrew-home to automate this; however, you technically don't need this install script as you could do it yourself if you really wanted to. I like it because I no longer have to think about it.
- dilap 12y agoI've used portage on Gentoo (a long, long time ago), yum a little bit on Fedora, apt-get a fair amount on debian (a long time ago) and on Ubuntu (a tiny bit, recently), the Cygwin gui package manager on windows (a medium-amount of time ago; shudder), and fink and macports on OS X (a medium-amount of time ago), and I will say this... Homebrew is, by far, the most pleasant package manager I have ever used. I couldn't even tell you why, but it's just nicely designed, and shit just tends to work. Part of it is that it targets a very well-defined system (MacOS), and it has an explicit aim to integrate with that system as well as possible. (I guess this could be true of e.g. apt on ubuntu, but ha ha ha.) As an example, most package managers have some funky, one-off , more-or-less shitty way to update the packages list. Homebrew has...git! Which works great. I highly recommend checking it out. Another example: Most package managers say, "you're installing random software off the internet? Better give it root access!" Homebrew installs as the current user, no root access. Much saner default policy, IMO. Or maybe you want to see a list of installed packages? "brew list". Oh, you wanted one-per-line, that's "brew list -1", just like ls. Or maybe you want to install some software from a 3rd party repo? "brew tap $somewhere; brew install $something". It's just a very thoughtful, well-made piece of software. Strongly recommend checking it out.