On 04-11-2014 04:08, Simon Geard wrote: > On Mon, 2014-11-03 at 08:31 -0300, Fernando de Oliveira wrote: >> With git, things are worse: >> >> $ porg -f git-2.1.3 | grep fernando | wc -l >> 29 >> >> There are 29 files incorrectly logged. > > Out of curiosity, how well does it cope with hard links? Last time I > looked, git installs a ton of those under /usr/lib... over a hundred > entries in the directory, almost all of them hard links to one file. > > It's the kind of thing a package manager needs to get right, because > it's the difference between 1-2MB and 100-200MB if the hard links are > lost in the install process. I remember having fun with that one doing > DEST_DIR installs...
They are not package managers. They are package loggers. I would say they don't bother if the file is a hard link. Porg: All it does (or tries to do) is to log files that a package installs, if it is a symlink, where it is point to, and respective sizes. Typical entries: /usr/bin/git|5582767| /usr/bin/git-cvsserver|162426| /usr/bin/git-receive-pack|5582767| /usr/bin/git-shell|2771267| /usr/bin/git-upload-archive|5582767| /usr/bin/git-upload-pack|2822815| /usr/bin/gitk|346039| You have here three files hardlinked to each other: git, git-receive-pack and git-upload-archive. Paco: Almost the same as porg. Paco also tries to include a sign beginning the line entry for files logged but missing: -/home/fernando/tmp/paco-build-2014.09.23-18h35m33s/git-2.1.1/GIT-BUILD-OPTIONS|4096|-2|-2 It also "knows" which files are shared by more than one package, but I can't find how. Paco needs to run: # paco -ua u - update a - all in order to update the logs, finding the shared and the missed files. After a install with # paco -lp package-version "install commands" the results of $ paco -sMFCndd package-version are frequently different just after install and after removing the source directory and running # paco -u package-version exactly because the last command updates the log for package-version and flags as missing the files which it "thought" was installed but was in the source directory. The missing and shared features are removed from porg. I have never tried to uninstall with porg, fear that it will remove shared files. This is very dangerous. However, paco, surely, does not remove shared files (if the databases are updated). On the other hand, because these features are removed, there is no update databases equivalent to paco in porg: no need to keep updating the databases. All in all, both help to quickly find installed files, to which package they belongs, when installed, and each database includes additional info: Paco #!paco-2.0.9 ##:86941696|741376|633|30 #d:1411508174 #c:--prefix=/usr --with-gitconfig=/etc/gitconfig --with-libpcre #:Name: git #:Version: 2.1.1 #:Summary: Core git tools #:URL: http://kernel.org/pub/software/scm/git/ #:License: GPL #: #:Description #:Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals. #: #:The git rpm installs the core tools with minimal dependencies. To install all git packages, including tools for integrating with other SCMs, install the git-all meta-package. #: #: Porg: #!porg-0.7 #t:1414687268 #s:700072640 #f:1214 #a:[email protected] #S:Core git tools #u:http://kernel.org/pub/software/scm/git/ #l:GPL #c:--prefix=/usr --with-gitconfig=/etc/gitconfig --with-libpcre #i: #d:Git is a fast, scalable, distributed revision control system with an #d:unusually rich command set that provides both high-level operations #d:and full access to internals. #d: #d:The git rpm installs the core tools with minimal dependencies. To #d:install all git packages, including tools for integrating with other #d:SCMs, install the git-all meta-package. #d: -- []s, Fernando -- http://lists.linuxfromscratch.org/listinfo/blfs-support FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page
