Vladimir A. Pavlov pv4 at bk.ru
Sat Aug 11 14:33:19 PDT 2007

On Saturday 11 August 2007 23:49, Cubo Aula Info wrote:
> What I'd like to know is how does it work (i mean internal, not the
> user-end commands) ?

Let's look through the process of installing a program. The example is
taken from README file found in git-2.17.tar.gz.

> 1. Call: git prog-2.0.7

This runs
$ find / >FILELIST
to create a file containing the list of all the files on your system to
"remember" the state of the system before the installation.

> 2. Install prog-2.0.7

Installs a program.

> 3. Call: git prog-2.0.7

This runs
$ find / -cnewer FILELIST >FILELIST.new
to find the files created or modified during the installation

$ find / >FILELIST.all
$ comm -23 FILELIST.all >FILELIST.del
to determine what files were removed.

As you can see it runs "find /" one time before the installation and
two times after it, that's why it requires about 5 minutes at the first
run (before the installation) and about 2*5 minutes an the second one
(after the installation).

This "find /" finds _all_ the files on your system, that's why git is
so slow.

That was a _simple_ explanation. Actually git doesn't searches for
_all_ files on a system but it looks throught the directories listed in
WATCHDIRS variable (set in git script) instead. Though the variable
contains the directories where most of files are actually are placed.
In git-2.17 it is:
WATCHDIRS="/bin /boot /dev /etc /lib /opt /sbin /usr /var"

> and does it take *always* 5+11 minutes? (I tried twice and it did)
The time depends on how much files are on your system in the
directories listed in WATCHDIRS variable in git script. The less files
you have, the less the time it's required for git to work.

P.S. Personally, I would recommend you to try paco or fakeroot hint
     (whatever you like more). Paco is much easier than using fakeroot
     hint but it's fakeroot that most (I guess, all) binary distros
     (and even gentoo) use.

Nothing but perfection


More information about the blfs-support mailing list