freebsd-update and whatis

Derek Schrock dereks at lifeofadishwasher.com
Sun Jul 12 21:44:43 UTC 2015


Ran in the same problem and if anyone disagrees please correct me this
is all based off my observations.

Your whatis database file is being rebuilt on a weekly basis and your
system has some third party or orphaned base files.

/etc/periodic/weekly/320.whatis is ran on a weekly basis:

$ fgrep weekly /etc/crontab 
# Perform daily/weekly/monthly maintenance.
15      4       *       *       6       root    periodic weekly

You can see this by running freebsd-update, 320.whatis, then
freebsd-update again:

 # freebsd-update fetch
 Looking up update.FreeBSD.org mirrors... 5 mirrors found.
 Fetching metadata signature for 10.1-RELEASE from update5.freebsd.org... done.
 Fetching metadata index... done.
 Inspecting system... done.
 Preparing to download files... done.
 
 The following files will be updated as part of updating to 10.1-RELEASE-p14:
 /usr/share/man/whatis

 # freebsd-update install
 Installing updates... done.

 # freebsd-update fetch
 Looking up update.FreeBSD.org mirrors... 5 mirrors found.
 Fetching metadata signature for 10.1-RELEASE from update5.freebsd.org... done.
 Fetching metadata index... done.
 Inspecting system... done.
 Preparing to download files... done.
 
 No updates needed to update system to 10.1-RELEASE-p14.
 # /etc/periodic/weekly/320.whatis
 
 Rebuilding whatis database:

 # freebsd-update fetch
 Looking up update.FreeBSD.org mirrors... 5 mirrors found.
 Fetching metadata signature for 10.1-RELEASE from update6.freebsd.org... done.
 Fetching metadata index... done.
 Inspecting system... done.
 Preparing to download files... done.
 
 The following files will be updated as part of updating to 10.1-RELEASE-p14:
 /usr/share/man/whatis

But why is your base not in sync with the environment that builds the
freebsd-update binaries?  When you run freebsd-update there's a
possibility that between updates (more likely between major updates)
there's a chance old files were removed.  These could be libs, include,
binaries, man pages (in this case).

ex: Upgrade from 9.X to 10.X pkg_* was removed including the binaries,
support, and man files among other things that changed in 9->10.

I haven't tested this yet however freebsd-update.conf does have an
option:

  AllowDelete  The single parameter following this keyword must be 
  		``yes'' or ``no'' and specifies whether freebsd-update 
		is allowed to delete files, directories, and symlinks
		as part	of updates downloaded.

I don't know if this cleans the no older used/orphaned files it doesn't 
appear to retroactively clean up if you've had it off.

I believe another option is to use /usr/src/Makefile if you have
/usr/src (or a checked out source tree).  I don't know if using
github.com/freebsd/freebsd/ releng/10.1 or stable/10 branch is correct.
Using a system installed /usr/src that's updated via freebsd-update
might be the correct way to go.

ex:  

 $ fgrep delete-old Makefile
 # delete-old          - Delete obsolete directories/files.
 # delete-old-dirs     - Delete obsolete directories.
 # delete-old-files    - Delete obsolete files.
 # delete-old-libs     - Delete obsolete libraries.
 #  9.  `make delete-old'
 # 11.  `make delete-old-libs' (in case no 3rd party program uses them
 # anymore)
 	delete-old delete-old-dirs delete-old-files delete-old-libs \
 
 # git branch
   master
   releng/10.1
 * stable/10
 # make delete-old
 >>> Removing old files (only deletes safe to delete libs)
 remove /usr/share/man/man9/NDHASGIANT.9.gz? 
 .....

I would like to know the best way to clean up old/orphaned base files.

- freebsd-update (but then how do you clean up from previous updates 
  when you had AllowDelete set to the default value no?).  
- /usr/src/Makefile
   # make -C /usr/src/ delete-old   # delete-old{,-dirs,-files,-libs)
   I believe the only risk here is if you delete a lib that's still 
   being used by a third party utility
- or some other method I didn't mention.  Parsing INDEX files from
  freebsd-update server might be an option however very risky.

Side note: It appears there was once a handbook article for
delete-old and delete-old-{dirs,files,libs} however it was removed.
Should it return?

On Sun, Jul 12, 2015 at 08:04:09AM -0600, Dan Busarow wrote:
> I have 9 servers running 9.3-RELEASE p19
> 
> They are all pretty much identical at the / and /usr level with 
> differences in /usr/local
>
> On two of these servers, freebsd-update keeps updating 
> /usr/share/man/whatis after periodic weekly updates whatis
> 
> The other 7 don't care.
> 
> I know I can add /usr/share/man/whatis to freebsd-update.com IgnorePaths
> 
> But.. what I'd really like to know is what may have triggered this 
> behavior only on two out of 9 servers?
> 
> Thanks,
> Dan
> 
> 
> -------- Forwarded Message --------
> Subject: alisocreek.buildingonline.net security updates
> Date: Sun, 12 Jul 2015 06:00:57 -0700 (PDT)
> From: Charlie Root <root at buildingonline.net>
> To: root at buildingonline.net
> 
> Looking up update.FreeBSD.org mirrors... none found.
> Fetching metadata signature for 9.3-RELEASE from update.FreeBSD.org... done.
> Fetching metadata index... done.
> Inspecting system... done.
> Preparing to download files... done.
> 
> The following files will be updated as part of updating to 9.3-RELEASE-p19:
> /usr/share/man/whatis
> 
> 
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"


More information about the freebsd-questions mailing list