missing feature in all* package managers

One of the most needed feature that I find missing in packge managers (dpkg, rpm, pacman, gem**, cpan, fppkg etc) is the ability to install more than one version of a package, and create an alternative entry for it or a script that knows how to handle the execution of different versions.

Why do I require such feature you must ask yourself (or want to ask me) ? well lets imagine the following scenario:

You are working on a program with a specific version of a library/tool/compiler/something, and in the next few months, a new version of that thing will arrive, and for now there are beta and rc's on that thing. You wish to make sure that your program works with the new version, but you do not want to move to a new unstable version, or you wish to continue support older versions.

The idea I have will help us work better in such cases. The renaming of a package name does not always helps in such cases (installing in the same directories, conflict of things that they both provide etc..), however knowingly managing different version of the same thing, can help us overcome such issues, and still have the result that we wish to have.

What do you think ?

* All package managers known to me (and me alone)

** gem does support installing multiple versions, but not the way I want it.

8 מחשבות על “missing feature in all* package managers

  1. yhager

    From http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1:
    With Portage different versions of a single package can coexist on a system. While other distributions tend to name their package to those versions (like freetype and freetype2) Portage uses a technology called SLOTs. An ebuild declares a certain SLOT for its version. Ebuilds with different SLOTs can coexist on the same system. For instance, the freetype package has ebuilds with SLOT="1" and SLOT="2".

  2. Shai

    העובדה ששתי גרסאות יכולות להתקיים יחד אינה מספיקה; צריך שתהיה גם דרך להתייחס לשתי הגרסאות. כלומר, לצורך הדוגמה, אם מדובר בשתי גרסאות של ספרית ++C, נאמר mylib, ובקוד כתוב

    #include "mylib"

    אז צריך דרך לגרום לקומפיילר\לינקר\טוען-דינמי לעבוד פעם עם גרסה זו, ופעם עם גרסה אחרת.

    הצורה שבה זה נפתר ברוב ההפצות, עם גרסאות שונות בתיקיות שונות ששייכות לחבילות שונות, מאפשרת את השליטה הזו די בקלות (כי הכלים נשלטים ע"י משתני-סביבה).

    מנגנוני תלויות ומטא-דטה מגדירים את החבילות הנפרדות כמספקות את אותה הדרישה (בגרסאות שונות), והכל עובד סבבה.

    בקיצור, מה באמת חסר לך בניהול הגרסאות של דביאן (למשל)?

  3. elcuco

    גם ב־rpm אתה יכול להתקין כמה גרסאות שונות (כל עוד אין התנגשות בקבצים הפיזיים במחשב).

    התשובה לשאלה השנייה – היא שאלה חדשה. "מה זה update-alternatives"?

  4. temp

    ב-FreeBSD התכונה הזו כבר קיימת ויש ניהול מקבילי של מנהל החבילות של שתיים או יותר גרסאות של תוכנה.

  5. צפריר כהן

    מה שאתה רוצה די סותר את הרעיון של repruducable beuild: בהנתון מאגר חבילות וחבילת מקור, אנחנו יודעים להגיד מה תהיה החבילה הבינארית שתיבנה.

  6. ik_5 מאת

    I can install multiple versions on every package manager, the thing I'm talking about is the ability to control each version regardless of the package itself. A tool that will be able to replace versions without making me work hard. I think it should be part of the package mamangers, some believe that it should be a whole different tool, however not even one package manager that I know contain such tool at this time.

  7. qwe

    FreeBSD lets you choose the base directory for new installs
    and where to take the libs from.
    I've installed many applications that would otherwise collide
    (like libnet1.0 vs libnet 1.1) on the same
    system. You linux guys don't know what you're missing.

  8. ik_5 מאת

    The first FOSS OS I have ever used was FreeBSD.
    The biggest problem I have with FreeBSD is the hate that many in that community have towards Linux instead of working together on a common goal.

    Regardless of that, my point is that lets say I want to install XFCE 4.2 and XFCE 4.6. My point is to install both of them without colliding one on the other.
    It means settings, libraries and anything else that can effect this. I can't find any package manager that allows me to do so. I can install two versions, but not to handle them both without any type of colliding one version with the other.

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת /  לשנות )

תמונת גוגל

אתה מגיב באמצעות חשבון Google שלך. לצאת מהמערכת /  לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת /  לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת /  לשנות )

מתחבר ל-%s

This site uses Akismet to reduce spam. Learn how your comment data is processed.