think tank forum

technology » freebsd packages

lucas's avatar
11 years ago
link
lucas
i ❤ demo
does anyone know how to list all of the non-leaf packages (i.e., those i've chosen to install)?
Carpetsmoker's avatar
11 years ago
link
Carpetsmoker
Martin
ports-mgmt/pkg_cutleaves

Works like a charm, The -V option is especially awesome IMHO.
lucas's avatar
11 years ago
link
lucas
i ❤ demo
i couldn't figure out how to get that to print what i want.
Carpetsmoker's avatar
11 years ago
link
Carpetsmoker
Martin
It does exactly what you want it to do: get a list of all non-leaf packages.

[~]% pkg_cutleaves -l | head
autoconf-2.13.000227_6
automake-1.14
bash-4.2.45
bigreqsproto-1.1.2
binutils-2.23.2
bison-2.7.1,1
boost-jam-1.52.0_1
cmake-2.8.11.2
cscope-15.8a
cython-0.19.1
[...]
lucas's avatar
11 years ago
link
lucas
i ❤ demo
but i only chose to install a small subset of those. oh well. i can weed out some leaves manually.
Carpetsmoker's avatar
11 years ago
link
Carpetsmoker
Martin
FreeBSD doesn't record if the package was installed explicitly by the user, or as a run/build dependency at some point.
lucas's avatar
11 years ago
link
lucas
i ❤ demo
But it should be able to tell me all the packages that are not dependencies for something, and it doesn't seem to be doing that well... or is it?
Carpetsmoker's avatar
11 years ago
link
Carpetsmoker
Martin
It should be doing that!

> pkg_cutleaves finds installed ``leaf'' packages, i.e. packages that are
> not referenced by any other installed package

Remember, many packages are installed as a *build* dependency, but they're not registered as a dependency since they're not required for actually *running* the application. gmake is probably the most common example of this, but there are obviously many more.
Again, there is no way to distinguish between the two, FreeBSD records no such information, but pkg_cutleaves can read an exclude file to weed out some stuff (but you'll need to make that yourself, see the manpage).
lucas's avatar
11 years ago
link
lucas
i ❤ demo
alright. i'll just be more patient with it. :)
lucas's avatar
10 years ago
link
lucas
i ❤ demo
i don't remember if

well, it's now giving me a nice list of packages that i chose to install:

$ pkg_cutleaves -l
apcupsd-3.14.10_1
irssi-0.8.15_5
opensmtpd-5.3.3,1
pkg_cutleaves-20090810
rtorrent-0.9.2_3
samba36-3.6.17
sudo-1.8.7_1
tmux-1.8_1
unrar-4.20_1,5
vim-lite-7.3.1314_2


taking note of this list before a major version upgrade seems pretty handy.

$ uname -mnrs
FreeBSD atlas.wingedleopard.net 9.2-RELEASE-p4 amd64


is it sad that i still remember "mnrs" as being my favorite switches for uname in screenshots back in high school? (for example)
lucas's avatar
10 years ago
link
lucas
i ❤ demo
man, i used to post some pretty silly stuff on openbsd lists back in high school... (like this)
lucas's avatar
10 years ago
link
lucas
i ❤ demo
also, freebsd seems to have a smart mouth sometimes...

$ sudo freebsd-update -r 10.0-RELEASE fetch
freebsd-update: -r option is meaningless with 'fetch' command.  (Did you mean 'upgrade' instead?)
$ sudo freebsd-update -r 10.0-RELEASE upgrade
[. . .]
Carpetsmoker's avatar
10 years ago
link
Carpetsmoker
Martin
> man, i used to post some pretty silly stuff on openbsd lists back in high school... (like this)

And top-posting too! You bastard! ;)

I found a few messages from myself when I was 15 a few years back. My cheeks still turn red when thinking about it... I was such an idiot (I will *not* post links here!)
I wonder if I think the same about my current self in another ~15 years ...
lucas's avatar
10 years ago
link
lucas
i ❤ demo
haha hopefully :p
lucas's avatar
10 years ago
link
lucas
i ❤ demo
that was a pretty easy upgrade to 10.0-RELEASE. freebsd update helps a lot! then i deinstalled all of my packages and simply installed (using pkgng) the ones that pkg_cutleaves -l had listed prior.
Carpetsmoker's avatar
10 years ago
link
Carpetsmoker
Martin
Yeah, freebsd-update is pretty cool. You're stuck with the new package tools now, though.