From owner-freebsd-questions@FreeBSD.ORG Wed Jun 11 07:31:33 2008 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from straylight.ringlet.net (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by hub.freebsd.org (Postfix) with SMTP id 4EC86106566B for ; Wed, 11 Jun 2008 07:31:31 +0000 (UTC) (envelope-from roam@ringlet.net) Received: (qmail 2101 invoked by uid 1000); 11 Jun 2008 07:31:08 -0000 Date: Wed, 11 Jun 2008 10:31:08 +0300 From: Peter Pentchev To: Jeremy Chadwick Message-ID: <20080611073108.GA1184@straylight.m.ringlet.net> References: <3b47caa90806102209w5161d96cjdd41d55f0315429c@mail.gmail.com> <20080611054125.GA15965@eos.sc1.parodius.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="WIyZ46R2i8wDzkSu" Content-Disposition: inline In-Reply-To: <20080611054125.GA15965@eos.sc1.parodius.com> User-Agent: Mutt/1.5.18 (2008-05-17) Cc: Novembre , freebsd-ports@freebsd.org, FreeBSD Questions Subject: Re: how to determine the date a port is installed X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jun 2008 07:31:33 -0000 --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/, 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--