LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - General (https://www.linuxquestions.org/questions/linux-general-1/)
-   -   Package Management System wanted ! (https://www.linuxquestions.org/questions/linux-general-1/package-management-system-wanted-893867/)

entz 07-26-2011 10:42 AM

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

unSpawn 07-26-2011 12:02 PM

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:

Originally Posted by entz (Post 4425643)
I'm tending towards RPM (the manager)

Maybe start by just listing your pros / cons for each of the package management systems you're thinking of?

bigrigdriver 07-26-2011 12:13 PM

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

entz 07-26-2011 12:16 PM

Quote:

Originally Posted by unSpawn (Post 4425719)
Maybe start by just listing your pros / cons for each of the package management systems you're thinking of?

well and that's what i came for in the first place ...

DavidMcCann 07-26-2011 12:22 PM

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.

unSpawn 07-26-2011 12:24 PM

Quote:

Originally Posted by entz (Post 4425737)
well and that's what i came for in the first place ...

Yeah I know but like most people you don't list your own opinion.

TobiSGD 07-26-2011 12:45 PM

Quote:

Originally Posted by bigrigdriver (Post 4425734)
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.

Just my 2 cents on that: Like RPM the Debian package-manager also doesn't have dependency resolution. Debian native package manager is dpkg, not apt-get. You should compare apt-get/aptitude with yum/zypper/other rpm-frontends. By the way, PCLinuxOS uses RPM-packages with APT-frontend.

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.

entz 07-26-2011 07:00 PM

Quote:

Originally Posted by unSpawn (Post 4425753)
Yeah I know but like most people you don't list your own opinion.

HAHAHAH .. well that was intentional because i didn't want to sway the initial outcome of this thread or push it into a specific direction.

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

chrism01 07-26-2011 11:43 PM

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.

entz 07-27-2011 09:12 AM

Quote:

Originally Posted by chrism01 (Post 4426259)
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.

well it seems that there is something that i don't quite understand ...
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

DavidMcCann 07-27-2011 10:56 AM

Quote:

Originally Posted by entz (Post 4426684)
well it seems that there is something that i don't quite understand ...
and that is the relation between rpm and yum.

rpm is a package manager. It can install a package that you have in a file thus:
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.

entz 07-27-2011 11:17 AM

Quote:

Originally Posted by DavidMcCann (Post 4426782)
rpm is a package manager. It can install a package that you have in a file thus:
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.

right , so is yum dependent on rpm as a backend or are these 2 completely self-sufficient systems?
i'm asking this because when i run
Quote:

yum --version
on CentOS i get both versions of rpm and yum , suggesting some interlink between the 2.

cheers

chrism01 07-28-2011 12:09 AM

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

DavidMcCann 07-28-2011 04:25 PM

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.