View Single Post
Posts: 3,428 | Thanked: 2,856 times | Joined on Jul 2008
#89
I can address a couple I believe:
1. Upgrading packages
There's no notion of "upgrade" action in dpkg/apt. For example, if there are 10
libqt-* packages and "A" is a subset of 5 packages that I have installed and
"B" is a subset of 5 packages that I don't have installed and don't want to
have installed, I cannot easily upgrade just the libqt-A set. I need to specify
each package from the "A" set manually when calling "dpkg -i" or "apt-get
install". RPM has -F option (freshen) that updates only the packages that are
already installed. Poldek (apt-get alike) utility also has "upgrade" command. I
can do "rpm -F libqt-*" and have only libqt-A set upgraded, leaving libqt-B not
installed.
This is somewhat confusing to me. But I believe shows an utter lack of understand of apt (from the man page):
upgrade
upgrade is used to install the newest versions of all packages currently installed on the system from the sources enumerated in /etc/apt/sources.list. Packages currently installed with new versions available are retrieved and upgraded; under no circumstances are currently installed packages removed, or packages not already installed retrieved and installed. New versions of currently installed packages that cannot be upgraded without changing the install status of another package will be left at their current version. An update must be performed first so that apt-get knows that new versions of packages are available.
Edit: Oh, I see - he only wants to do a "apt-get upgrade" of certain packages. I guess I've never run into this problem.

2. Dependency tracking
One can successfully "dpkg -i" a package with an unmet dependency. Such package
will be installed but not "configured" rendering it unusable. RPM won't allow
such action, as it will fail saying there are unmet dependencies. User has a
clear message that there was an error and the package is not left in some state
of limbo. Both apt-get and poldek utilities allow automatic installation of
dependencies though.
This is actually a matter of preference. Having dpkg behave in this way allows me to then do "apt-get -f install" to automatically download and grab the dependencies for that package, and then properly install all of them. No dependency hell (meaning tracking them down myself, or yum installing them one by one), so to speak. What is the equivalent of this in rpm?

His #3 about scripts is an interesting perspective. But it can be both good and bad. This is entirely based on the packager and whether he did a good job or not: But a *lot* of proper uninstallation can be put into prerm scripts and thus, if you don't run them, would leave your system in a very flakey state. If there's an error in the script, then it's obviously a problem, but skipping the script altogether may not be the best answer (although the option *should* probably be there..) because there is no telling what the install scripts could have modified that the remove scripts should be fixing without going into the script and reading it.

As far as his Build documentation (#4), that's entirely perspective. I have never had a problem finding the necessary how-to's to building a deb file properly or the proper formatting of the files.

The Build files (#5), again, never had a problem with this. And the nice thing about the debian/rules file is you can manually edit the exact steps needed to compile a piece of software: in case you get something that is written using a strange system other than cmake/qmake/automake/etc. I personally like having separate files, it's cleaner and easier to read, than a single, long, file to accomplish the same thing.

Somebody else will need to address 6.. I don't understand how RPM can magically allow a user to suid root a binary that debian can't. This looks like something that should be taken care of in a postinst type script and can only be done as root... and the .deb takes and packages up the files with the permissions that they were given when you build the deb package - so if you suid the binary as root, build the deb, and then install it - it will come out suid. I don't understand what he's getting at.

#7 - Speed. Um... ok? There's helpers for RPM.. and there's helpers for Debian... so... who cares?

#8 - Tries to simplify a complex problem. You can't just dump your binary into /opt/whatever-you-want because /opt is not in the $PATH of the users. So, in addition to redefining the prefix to install to (which, by the way, is perfectly possible by editing the debian/rules file to pass whatever prefix options you want), you also need to symlink the proper binaries to the rootfs. Until and unless there is an official and standardized directory structure to place executable binaries: such as /opt/bin and not /opt/package_name or /opt/usr/bin or /opt/MyMommyThinksImSpeshul... etc. Currently I haven't found anywhere that says "This is the exact opt structure your app should look like" - so what we end up with is 30 different applications optified to 30 different sub directories and they can't all be added to the users $PATH unless every application is written to modify that variable every time. I don't see any benefit to using RPM's __prefix over just add --prefix or CMAKE's prefix commands to debian/rules.

#9 - bells and whistles: Yay? I'm sure dpkg/apt have a few RPM don't as well.. what's important here is the basic structure of package installation and dependency management.

At this point.. in those specific developments.. it doesn't matter if you have DPKG or RPM.

The main thing that matters, as has been repeated many, many, times - is the actual structure of the filesystem and OS. I personally have never liked SuSE, Mandrake's, or Red Hat's structure. I also have had no end of trouble using Yast or URPMI and up2date.

However, I've never had any complaints with YUM. So I don't care if either YUM or APT-RPM are used in the new system - they both work fine for me. As long as the OS structure makes sense.
__________________
If I've helped you or you use any of my packages feel free to help me out.
-----------------------------------------------------------------------------------
Maintaining:
pyRadio - Pandora Radio on your N900, N810 or N800!

Last edited by fatalsaint; 2010-02-17 at 15:53.
 

The Following User Says Thank You to fatalsaint For This Useful Post: