3 ms·
I 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 conf
by jonhohle 13y ago
I 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.
- mkup 13y agoAlso make -DBATCH install clean in port directory will do unattended build with default settings. It affects current port and all of its dependencies.
- klibertp 13y agoEither set BATCH env variable or use portupgrade/portinstall with -c or -C flags. The latter gathers all the dependencies of a given port and let's you configure them up front, and then the compilation and installation goes without any interruptions. -c --config Run "make config-conditional" before everything for all tasks. -C --force-config Run "make config" before everything for all tasks. http://www.gsp.com/cgi-bin/man.cgi?topic=portupgrade http://www.gsp.com/cgi-bin/man.cgi?topic=portupgrade