cheusov/pkgnih
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
NIH is a package management tool for pkgsrc. NIH means Not Invented Here, yes, I'm talking about NIH syndrome :-) Why not: pkg_add/pkg_delete: - These are low level tools and cannot be used for handling hundreds of packages efficiently. pkg_chk: - I was using pkg_chk for several years and it's quiet good tool. But it lacks some useful features. It is also extreammly slow. pkg_rolling-replace: - Replacing packages "in place" is not safe. pkg_comp: - It works only on NetBSD - It doesn't allow to install or update packages, it only builds them pkgin: - Package manager written in "C"? No, thanks. "C" is a the worst programming language I've ever known for this task. All other reasons are secondary. - sqlite is absoletely useless for package management. pkgmanager: - It is dead Why NIH: - I've got pkg_summary-utils, a big collection of powerful scripts for managing pkg_summary files. I've been developing it since 2007 or so and I think now it is ready to be a foundation for package manager. - I've got distbb, very powerful and flexible bulk build tool. For several years I've been using it for running bulk builds on Linux and NetBSD and I consider it rather stable. - I've got pkg_status, small tool for checking status of installed packages against pkg_summary.txt or pkgsrc source tree. It also provides other features usually implemented by full-featured package management tools. It is very small and stable. - I've got pkg_digger and pkg_online_find, very powerful and quality tools for searching on packages. They are also small and stable. - NIH = pkg_summary-utils + distbb + pkg_status + pkg_digger Plans: - To provide features implemented in pkgchk, pkgin, pkg_comp, pkg_leaves, pkgfind, pkg_status, pkg_online-client and pkg_rolling-replace. - Support for both binary and sources-based upgrade - Less than 4000 lines of code - No sqlite or other databases. - Support for PKG_OPTIONS and multivariant packages (Python, Apache, PHP, Ruby) - No dependencies other than a) pkg_summary-utils, runawk and pipestatus for basic functionality b) paexec and libmaa for running things in parallel using all available CPUs c) distbb (plus paexec and libmaa) for building packages from sources d) dict-client (plus libmaa) and netcat for searching via pkg_online server - Shell, AWK, RunAWK, UNIX tools and nothing else. - No libnih.a