3 ms·
So how do you use ports in practice? Do you use sources or binary packages? Which management solution do you use, or do you just use the make files? I am consta
by jhh 13y ago
So how do you use ports in practice? Do you use sources or binary packages? Which management solution do you use, or do you just use the make files? I am constantly thinking about revisiting BSD, but in contrast to your experience I found the apt package solution to work very well and just be better.
- Freaky 13y agoI use poudriere and pkgng - the former for building my own package repository, the latter for installing and upgrading. The pkgng side is comparable to apt: `pkg install vim`, `pkg upgrade`, `pkg autoremove` etc; the poudriere side isn't much worse: https://fossil.etoilebsd.net/poudriere/doc/trunk/doc/pkgng_repos.wiki https://fossil.etoilebsd.net/poudriere/doc/trunk/doc/pkgng_r... I admit I had some level of apt-envy back when I was using portupgrade. pkgng has nicely eliminated that.
- harrytuttle 13y agoFrom my perspective (I'm not the GP), I will be using a custom configuration management system that I wrote back in 1999. It's. Like puppet but ssh based, written in sh and standard Unix tooling. It doesn't use a DAG so you have to order dependencies carefully. That will pull binary packages from ports builds on another machine and install and configure them.
- jonhohle 13y agoI install everything from source. Except for thing like desktop environments, building from source is a non-issue on modern hardware. It also gives me some confidence in the binary compatibility of the packages I have installed. For installing: pushd /usr/ports/*/$PACKAGE ; sudo make install clean && popd For upgrading (ports): sudo portsnap fetch update ; sudo portmaster -ad (In reality, portsnap is run nightly). A quick read - http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports-using.html http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/po... I use FreeBSD on a desktop at home and for a personal web server. I'm not performing large scale deployments (but if I were, I'd probably write a port for my application, define my dependencies, and install it just like anything else).
- jon-wood 13y agoI'm not about to move to FreeBSD, but I did just discover pushd and popd from this comment. Thanks!
- idupree 13y agoYou can also use parentheses to create a scope for the current directory and environment variables (the shell forks a subprocess to run parenthesized commands). (cd /usr/ports/*/$PACKAGE ; sudo make install clean) See http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_09_04 http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu...
- jonhohle 13y agoIn your example, however, the failure of `make install clean` will put you back in the original directory and not in the port's directory where you probably want to be to debug the failure. My original example keeps you in the port's directory in the event of installation failure.
- dscrd 13y agoPersonally, I couldn't anymore handle the way ports asks for configuration options for every package that has configurable options. I'm spoiled by the "sane defaults" stance of better Linux distros like Arch.
- Freaky 13y agoecho BATCH=1 >>/etc/make.conf No more prompts for options - they should all certainly have sane defaults. If not, it's a good reason to run send-pr.
- lcampbell 13y agoI've always been a fan of make config-recursive && make install clean which runs `make config` on the package and all dependencies before installing. It's the best of both worlds IMO -- the port will build unattended and you still have a chance up-front to skim the available options for things you need.