Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

A discussion from this post made me curious of differences between Debian and Arch package management. I'm not talking usage, but more of handling dependencies.

Also, people tend to say that Arch is very light-weight, so I wonder what that has to do with package management. Is it maybe because Debian treats Recommends as hard dependencies by default?

Can you also mention the flexibility/power between the two package managers: which of the two lets you do more.

I'm aware that some features available on a Debian package management system would be irrelevant on an Arch system, since Arch has a single Suite and Debian has multiple (e.g. APT pinning and advanced dependency handling come to mind), so please compare features that are applicable to both systems (i.e. assume that for Debian, I use only on Unstable).

share|improve this question
    
NOTE: By Debian package management I'm referring to APT, aptitude, and dpkg. I'm not familiar with Arch tools, so I don't know if there's anything other than Pacman. –  Tshepang Mar 25 '11 at 17:14
add comment

1 Answer

I just use arch regularly since a few weeks and am no expert on the subject so this answer is in no means exhaustive, just a few points I have noted about the "flexibility/power":

  • This is just an impression but pacman seems more modern and simple in its design/architecture. At least there is far less tools to deal with. While I don't know of apt source code, I just happened to look at libalpm code (the underlying library to pacman) to make a very simple patch, and it seems clean and easy to understand.

  • It is also very fast (due to optimization and also probably by caring about few things (see below)). The last release (pacman 3.5, a few days old) tried to improve performance by reducing the number of involved database files.

  • While arch is oriented towards the use of binary packages, it also has advantages when building packages from source, with a build system similar to BSD's ports (ABS).

  • It's very easy and quick to create packages, just a few lines in a PKGBUILD file and its done, no need to deal with control/rules/copyright/changelog/whatever like with Debian packages. And in a few clicks on a web ui your package is shared with everyone on AUR (Arch User Repository).

Things I get in Debian and not in arch :

  • Triggers/hooks (what makes apt update the icon cache, the mandb or whatever just by looking at where the package install files, with no need for the packager to do anything) (seems there are plans to implement this).

  • debconf (no big deal and by the way by forcing me to do things manually it forces me to know what exactly is done) and proper handling of new config files (I would at least like pacman to know when a config file in a new package version is different of the installed one because it was changed in the new version or because I modified it locally).

  • package signing (seems it's being worked on).

For arch being light, the only real reason is that it comes with few packages installed by default and you're encouraged to add what just you need, so probably not installing optional dependencies by default is inciting users to install avoid bloat.

share|improve this answer
    
I can't parse this: but I can do without it and by the way know what I do better. There is also a typo on the last sentence. –  Tshepang Mar 27 '11 at 14:52
    
What language is the pacman package manager written in? Does it have low level and high level package management functionality similar to dpkg/apt, and if so, what are they called? –  Faheem Mitha Mar 27 '11 at 15:10
    
@Tshepang: sorry, non-native english speaker here. I meant "this is not a big deal for me to not have this functionnality (debconf) and by forcing me to do things manually it forces me to know what exactly is done". –  gentledevil Mar 27 '11 at 17:27
    
@Faheem Mitha: Pacman is written in C, and is a frontend to libalpm, which handles both "high-level" and "low-level" package management. –  gentledevil Mar 27 '11 at 17:32
    
@zanko: I'm not a native speaker either. All I wanted you to do is make the sentence clearer, and not in a comment, but on the post itself. BTW, the typo I mentioned is optionnal. I could edit the post myself, but I thought you might as well fix it together with the clarification part. –  Tshepang Mar 27 '11 at 17:41
show 1 more comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.