Package Management System wanted !
Hello , i'm building my own distro and i need a package manager !
well to be exact i need some suggestions for that , and yes i know everybody has his/her own opinion about why to use this or that and it's probably be an opinionated , biased and personal decision after all as is the case for most situation when you gotta choose a system between multiple vendors or version (remember the "which is the best db system" kind of threads?) anyways , i'm doing my own research right now (as i usually do when i try to make "touch" decisions) and i thought i could benefit from your experience. at the moment , i'm tending towards RPM (the manager) but i'm still undecided yet. cheers folks |
I think most of the people here using RPM in RHEL, Centos, or to a lesser extent Fedora, usually go quietly about these things. No need to point out that there's no need for a Social Contract or the misperception KISS means users are forced to be part of their "package management" system... Sure I love the resilience with which say Solaris builds a complete new boot environment but other than that RPM, as one of the oldest surviving package management systems (and out of the three Linux-oriented ones the most versatile and mature), to me, as much objectively speaking as possible, means: adherence to file system standards, binary packages instead of having compilers on production systems, Yum dependency handling, advantage of meta packages, efficient presto/delta update payload reduction, GnuPG repository and package signatures, package content verification, permission restoration and package relocation to name just a few things. Most functionality rolled into one RPM provides one with most of what one needs and w/o bells, whistles or kludges other package management systems may need to even attempt to do something remotely similar.
But that's just my opinion. It would help if we could understand what makes you say: Quote:
|
Rpm is a handy package installation and management system which makes it easy
to install, freshen, upgrade, and uninstall rpms. But, it doesn' t offer dependency resulotion. One must find install dependencies manually. Beyond rpm, there are yum, urpmi, and zypper for installing/managing rpm packages. I don't know if they offer dependeicy resolution; I haven't looked into them enough to know. Debian packagement offer dependency resolution, finding and installing dependencies from installation media and repositories listed in /etc/apt/sources.list. Slackware has a packagement system for installing source packages, but I don't know how well it handles dependency resolution, updates, and ugreades of packages. Any system you choose should include packages checkinstall and alien. Checkinstall permits the installation of a source package, with the creation of an rpm/deb/slackpack which can then be installed normally. Alien permits installation of alien packages in rpm/deb/slack systems. Examples: install a deb package in an rpm system or slack pack to a deb system, etc. For the management of source packags I know of two applications: stow and encap. Both share the same philosophy of source package management: install the source package in /usr/stow or /usr/encap, them symlink the files to their traditional locations. When updating or upgrading packages, stow or encap checks to see if there is another version of the packages installed, makes a parallel installatiof the update/upgrade, then deletes the original. If I'm not mistaken, Linux From Scratch now includes encap. I've tried both stow and encap. I couldnt get stow to work properly for some reason, but I have had no problems with encap. You could also look into Gentoo package management, as well as what Sorcerer and Source Mage do in their systems. I generally don't install source packages if I can avoid it. I prefer to keep my system consistent in re the types of packages I install. But, when I find the need to install from source, it's nice to know that there are alternatives |
Quote:
|
As far as the internal differences between rpm, deb, and the others, I'm not qualified to have an opinion, but I suspect the packager is more important than the package format. If the dependencies aren't handled properly, who else can you blame?
For the user, the package installer is the important thing. Look at http://distrowatch.com/dwres.php?res...age-management The syntax and consistent use of zypper is clearer than urpmi/urpme/urpmq/urpmf/rpm. Similarly, for the GUI a single A/Z list is not as good as a categorised one, but the the categories should not be so numerous as to be confusing. Ubuntu is particularly pointless with its xyz, xyz-universe, xyz-multiverse. How many ordinary computer users want to have items categoried by repository or even (heresy!) as free or non-free. One thing that never seems to be handled well is the facility (where it exists) for handling groups of related material. The Debian metapackage system seems to trouble a lot of people, and having apt-get and aptitude handle it differently is a recipe for disasters. The Fedora system of groups seems better, except when the same file is in several groups: yum groupinstall XFCE yum groupremove "GNOME Desktop Environment" Reboot, and no GUI! Both desktops included gdm. |
Quote:
|
Quote:
Slackware has no dependency resolution at all in software, you have to do that in your brain, but is no problems with updates/upgrades of packages. |
Quote:
that said , i'll however mention what features and expectation i've of my package management system. here is a preliminary list: 1)tracking packages (i.e install , upgrade , remove) *ain't that obvious huh ..LOL* 2)dependency tracking and resolution 3)automatic package content verification (via hashes) and author authentication (via GPG signatures) 4)supports metadata (obviously required for the above) 5)support multiple repos 6)can optionally run scripts/commands after or before a transaction such as build scripts 7)supports source repos this requires some elaboration: starting with source tarballs + build scripts + dependency metadata that packager would be able to compile the entire distro , producing a corresponding binary repo or even be able to create a disk image that can be burned onto a CD or similar. i'd imagine a similar functionality akin to Make scripts but on a distro level , you only need to change either the sources , build scripts or metadata and the packager will push the changes to the distro build. this will probably remove the need for Checkinstall from a developers perspective but users might still find use for it. so in short , the packager sort of becomes the kernel of the system from a development perspective. yeah that's what's on my mind , so let's find one that can satisfy those needs ! cheers folks |
Well, as mentioned above , ensure you are comparing apples to apples and not oranges ie rpm vs dpkg (pkg 'mgrs') and apt-get vs yum (dependency resolvers).
There's nice list of rpm & yum cmds here, just to give you an idea of their capabilities: http://kbase.redhat.com/faq/docs/DOC-2531 (ignore up2date; precursor of yum) I guess there's a list for Debian tools somewhere. |
Quote:
and that is the relation between rpm and yum. i thought that yum is a separate package manager which is unrelated to rpm , or am i wrong? so if i get things correctly , rpm is a library that is used by yum to do the packaging or how exactly? cheers |
Quote:
rep -i package-file It will check the metadata and then check its database for the dependencies. If anything is missing, it reports and stops. Yum can also remove a package, and interrogate its database to find information about installed packages, or even individual files. yum is also a package manager, but it works with repositories. To install, yum install package It will check the repository, find the package, check the dependencies, and then download the package and any missing dependencies and install them. yum can also remove things, and search repositories, but it doesn't gather information about what's installed already. |
Quote:
i'm asking this because when i run Quote:
cheers |
Yes; they're both from RH. Before yum, RH used to use up2date as the dependency mgr. See that link I gave. rpm is the format of the files and handles the 'database' backend.
http://linux.die.net/man/8/rpm http://linux.die.net/man/8/rpmbuild http://linux.die.net/man/8/yum |
Yum uses rpm to do the things that rpm does, so you can't have yum without rpm. You could have rpm without yum, downloading the packages and their dependencies manually. Mandriva uses rpm, but has its own equivalent to yum.
|
All times are GMT -5. The time now is 07:58 AM. |