This page displays the features of different package systems
Where is the version, package name information and description stored and versioned? Where is this information centrally stored in order to enable a installed distribution to check if all latest packages are installed and which packages are available.
System | Distribution | Format | Description |
---|---|---|---|
cvs | Fedora | spec | http://cvs.fedoraproject.org/viewvc/rpms/ |
conary repository | rPath Linux | recipe | conary repository |
cvs | Gentoo Linux | ebuild | Gentoo Portage |
git | ALT Linux | spec | http://git.altlinux.org/people/ |
svn | Mandriva Linux | spec | http://svn.mandriva.com/svn/packages/ |
ftp | Debian Linux | deb, orig.tar.gz and diff.gz | ftp://ftp.debian.org/debian/ |
How are compiled/generated files distributed to the root filesystem of a user, favoring a internet connection. After compiling the sources to binary executables and user data this need to be send to users using some sort of a system.
System | Distribution | Description |
---|---|---|
yum | Fedora | yum uses http to fetch repodata to resolve dependencies and search for updates |
conary | rPath Linux | uses a http xml rpc to contact a conary repository |
rsync | Gentoo | .ebuild files are synchronized to remote repositories |
apt-rpm | ALT Linux | apt-rpm uses http, ftp or rsync to fetch metadata (in RPM-specific format) |
urpmi | Mandriva Linux | urpmi uses http, ftp or rsync to fetch metadata |
apt | Debian Linux | apt uses http or ftp to fetch metadata |
When building a package how are the required libraries and utilities (i.e. compiler) installed? Most systems create a build root environment and use chroot. This feature also ensures or checks if all dependencies are fulfilled.
System | Distribution | Description |
---|---|---|
mock | Fedora | Initialize buildroot |
rmake | rPath Linux | Initialize buildroot |
emerge | Gentoo | System root is used |
hasher | ALT Linux | Initialize buildroot |
iurt | Mandriva Linux | Initialize buildroot |
pbuilder | Debian Linux | A clean room (chroot) build environment to verify the build dependencies |
Where are the sources patched to fix bugs or add i.e. a distro flavor? Most distributions have a chain of patches which are applied before compiling the sources. These patches need to be applied in a certain order, where/how is this stored?
System | Distribution | Description |
---|---|---|
rpm | Red Hat, SuSE | %patch macro’s |
cvc | rPath Linux | r.addPatch() and package policies |
ebuild | Gentoo | epatch eclass |
rpm | ALT Linux | %patch macro’s, patches are generated by “gear” from git branches |
rpm | Mandriva Linux | %patch macro’s |
deb | Debian Linux | diff.gz is applied to orig.tar.gz |
How are the sources to build the packaged fetched?
System | Distribution | Description |
---|---|---|
koji | Fedora | |
ebuild | Gentoo Linux | Sources are automatically fetched using SRC_URI |
cvc | rPath Linux | Sources are fetched during cooking recipies (r.addSource) |
gear | ALT Linux | Sources are stored in git repositories |
repsys | Mandriva Linux | Tarballs are stored in svn |
How are the sources configured to disable or enable certain features?
System | Distribution | Description |
---|---|---|
rpm | Red Hat, SuSE, ALT Linux, Mandriva | %setup shell script |
cvc | rPath Linux | python r.setup() and Conary API |
ebuild | Gentoo Linux | shell script src_compile() |
How is the configuration (in /etc) updated / installed?
System | Distribution | Description |
---|---|---|
rpm | Red Hat, SuSE, ALT Linux, Mandriva | Config files can be tagged, rpmold rpmnew files are created for conflicts |
conary | rPath Linux | Config files can be patched using tag handlers, files can be removed from version control |
emerge | Gentoo Linux | Certain directories (/etc) are protected by config protect conflicts can be manually resolved using etc-update |
How can the state of the system be checked?
System | Distribution | Type | Description |
---|---|---|---|
rpm | Red Hat, SuSE, ALT Linux, Mandriva | Verify | integrity check timestamp/checksum, rpm -V |
rpm | Red Hat, SuSE, ALT Linux, Mandriva | Manage dependencies | stored in rpm database |
rpm | Red Hat, SuSE, ALT Linux, Mandriva | Version control | stored in rpm database |
conary | rPath Linux | Verify | integrity check timestamp/checksum, conary verify |
conary | rPath Linux | Manage dependencies | stored in conarydb |
conary | rPath Linux | Version control | stored in conarydb, compared to conary repository |
emerge | Gentoo Linux | Verify | integrity check timestamp/checksum, equery verify |
emerge | Gentoo Linux | Manage dependencies | stored in edb, local portage copy |
emerge | Gentoo Linux | Version control | stored in edb, local portage copy |