[arch-general] Why is it dangerous to run makepkg as root?

Bigby James bigby.james at crepcran.com
Mon May 19 14:55:53 EDT 2014

On 05/18, Oon-Ee Ng wrote:
> On Sun, May 18, 2014 at 12:57 AM, Bigby James <bigby.james at crepcran.com> wrote:
> > On 05/17, Dimitris Zervas wrote:
> >> On May 17, 2014 5:22:32 PM EEST, Roland Tapken <ml at lalamuhkuh.de> wrote:
> >>
> >> BTW: Another good idea that would be helpful is add comments on installed packages on pacman. e.g. why did you install them. But that's another thread
> >>
> >
> > No offense, but if you need to ask yourself why you installed something *after*
> > you installed it you almost certainly never needed it in the first place, and if
> > you need the package manager to *tell you* why you installed it you're being
> > careless. If you're installing something just to try it out then do so, and if
> > you don't care for it then uninstall it right away. If you're wondering what use
> > you might have thought you had for that package some time after installing it,
> > the package description should give you some clue. What you're suggesting is
> > that someone write extra code for a feature that encourages carelessness and
> > laziness. It stands to reason that if an explicitly installed package is sitting
> > on your system and it isn't a dependency, and you can't recall putting it to
> > use, it can be removed.
> makedeps of AUR packages, for one. Or optdeps.

If one builds packages using makepkg (and not something entirely automated) then
one would install dependencies sequentially using --asdeps.  makedeps that
aren't needed by the installed package after compilation can be removed
immediately after the desired AUR package is installed using 'sudo pacman -Rncs
$(pacman -Qdtq).' I've had that set to an alias for years now. ;) When removing
a package it's a good idea to use 'pacman -Rncs' or 'pacman -Rncu' (depending on
the situation) to completely remove every trace of it, avoiding leaving orphaned
packages and files on the system. Pacman is able to remove optional
dependiencies along with the package that optionally uses it, provided the
optdepend isn't needed for another explicitly installed package. And the
description of any package should clue you in as to what purpose it serves on
your system; if it doesn't, then perhaps a change of habit is called for.

Basically, the functionality to determine what's on your system and why is
already built into pacman; it just requires reading the manpage and figuring out
which flags to chain together. Adding a new feature to allow people to make
notes on *why* they installed something provides one with an incentive to simply
install things on the system without regard, figuring they can just be cleaned
up later, and that feature's effectiveness depends entirely on the user writing
meaningful notes---and if one is able to think up and write meaningful notes at
install time, one is probably already situationally aware and self-aware enough
to know and remember why a package was installed. It's like collecting things
with the intention of taking them home and sticking them in the closet, only to
ask yourself a year later what all the crap in the closet is doing there. You
can write and attach notes to all those things, but that amounts to more time
spent reading notes later, and plays into the habit of impulsively collecting
worthless crap.

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools." - Douglas Adams

More information about the arch-general mailing list