Erik Trulsson ertr1013 at
Thu Sep 1 15:51:32 PDT 2005

On Thu, Sep 01, 2005 at 11:49:32PM +0200, Benjamin Lutz wrote:
> Hello,
> While examining my system (FreeBSD 6.0-BETA3 amd64) and removing the old
> libs from before the version bump, I noticed that the time stamp on
> /libexec/ does not match that of other system files. The date
> leads me to believe that my current is a remainder of a
> previous installation (its date matches the date of, which was
> recently bumped to

That belief is most likely incorrect. is installed by 'install -C', and the -C flags for install(1)
is documented as:
     -C      Copy the file.  If the target file already exists and the files
	     are the same, then don't change the modification time of the tar-
	     get.  If the target's file flags and mode need not to be changed,
	     the target's inode change time is also unchanged.

I.e. the timestamp for will not match that of your other files,
unless there there has actually been some changes to since your
last install.

> While trying to figure out why the new (which appears to
> have been built correctly) isn't installed. I finally arrived at this point:
> # cp -p /usr/obj/usr/src/libexec/rtld-elf/ /libexec
> cp: /libexec/ Text file busy
> #
> (This is in single user mode. The result is the same if I use
> /rescue/cp, which is statically linked.)
> The open(2) manpage has this to say about it:
>   [ETXTBSY]      The file is a pure procedure (shared text) file that
>                  is being executed and the open() system call requests
>                  write access.
> So, my question: How can Install the new

Rename or delete the old file, and then copy the new file (a file which is
being executed cannot be modified, but it can be deleted.)  This is most
easily done by install(1), which is what 'make installworld' uses to to
install files.

<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at

More information about the freebsd-current mailing list