Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Jun 2008 10:31:08 +0300
From:      Peter Pentchev <roam@ringlet.net>
To:        Jeremy Chadwick <koitsu@FreeBSD.org>
Cc:        Novembre <novembre@gmail.com>, freebsd-ports@freebsd.org, FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: how to determine the date a port is installed
Message-ID:  <20080611073108.GA1184@straylight.m.ringlet.net>
In-Reply-To: <20080611054125.GA15965@eos.sc1.parodius.com>
References:  <3b47caa90806102209w5161d96cjdd41d55f0315429c@mail.gmail.com> <20080611054125.GA15965@eos.sc1.parodius.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--WIyZ46R2i8wDzkSu
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Jun 10, 2008 at 10:41:25PM -0700, Jeremy Chadwick wrote:
> On Wed, Jun 11, 2008 at 12:09:33AM -0500, Novembre wrote:
> > Two questions:
> > 1) Is it possible to determine the date a port/package is installed?
>=20
> ls -ld /var/db/pkg/<port>, use the mtime of the directory.
>=20
> > 2) How can I delete all the ports/packages installed after a certain da=
te?
>=20
> Use a combination of find with the -mtime flag, and pkg_delete.

Not really.  This is a bit dangerous.

The dangerous part is "the mtime of the directory".  It would be much
better to use the mtime of the +CONTENTS file, since it never changes
*after* the package has been installed.

It is possible, though not certain, that the mtime of the directory may
change if another package is installed later which depends on this one -
pkg_add(1) then updates some files, most notably +REQUIRED_BY, to
reflect the new dependency, so that pkg_delete(1) may warn you later if
you try to delete something that other packages depend on.  Of course,
the part with "the mtime of the directory may change" depends a bit on
the filesystem used, but I find it easier to just rely on the +CONTENTS
file that I'm sure should never change - unless I edit it by hand, but
then all bets are off :)

Novembre, you might want to try something like:

# Change the working directory for easier path handling
cd /var/db/pkg

# Create a temporary file with the modification time set to the date
# that you want to examine (in this case, May 15, 2008, 11:00am)
touch -t 200805151100 /tmp/stamp

# Find all +CONTENTS files that have a modification time later than that
# of the "stamp" file
find . -type f -name '+CONTENTS' -mnewer /tmp/stamp

# Extend the previous command - get only the second component of the
# file path, which is the name of the package directory, which coincides
# with the name of the package :)
find . -type f -name '+CONTENTS' -mnewer /tmp/stamp | cut -d/ -f2

That should give you a list; you may redirect it to a file or, if you
are feeling really adventurous, just pipe it to | xargs pkg_delete :)

G'luck,
Peter

--=20
Peter Pentchev	roam@ringlet.net    roam@cnsys.bg    roam@FreeBSD.org
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
I had to translate this sentence into English because I could not read the =
original Sanskrit.

--WIyZ46R2i8wDzkSu
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)

iEYEARECAAYFAkhPfzwACgkQ7Ri2jRYZRVMl+ACdEaNgbcX+I7dXzvzC+TF0oMKv
PXYAn2RL+6gSYnou4Yy94cDVqvMNkewa
=rHlJ
-----END PGP SIGNATURE-----

--WIyZ46R2i8wDzkSu--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080611073108.GA1184>