Slashdot Mirror


File Packaging Formats - What To Do?

Jeve Stobs writes: "It seems that nowadays, there are three ways of distributing a program. In a tarball (be it a .gz or .bz2), in a Debian package, or in a RPM. These are all fine methods of packaging a piece of software, but they each have their places, and they aren't as comprehensive as I would like. I really think that, as we move into a broader user base with the variety we have so far (not to mention the variety we are likely to have in the near future) that a new method of software distribution is needed. osOpinion has an excellent editorial piece which details some solutions to this growing problem."

231 comments

  1. Remember LZH ARJ etc by randumb666 · · Score: 1

    Soon enough a .zip type standard will gain dominance and such fussiness can end.. lzh, arj, and those other ones from dos days all eventually (should have?) died out and left .zip as the standard.. hell, why dont you linux guys just use that? pkunzip /d source target..

    1. Re:Remember LZH ARJ etc by qbasicprogrammer · · Score: 1

      I use Info-Zip, the third most portable program in the world. Info-Zip compiles on every know variety of Unix, and binaries are available for the most popular platforms.

      --

      10 LIST : REM MER : TSIL 01
  2. Re:I'm astounded... by Sloppy · · Score: 2

    Windows and Mac OS are PC operating systems, used by a single user. Unix is not.

    Regardless of its capabilities, Unix is
    ---

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  3. Information by dvize · · Score: 1
    Two possibly relevant places:
    --
    Perl 6 will give you the big knob. -- Larry Wall
  4. Slackware is for you by fredlwm · · Score: 1

    Why 1500 packages? Just get some packages from the A, AP, D, K and N disks. Slackware

    --
    How to contact me - http://www.pervalidus.net/contact.html
  5. Re:rpm is the right one by linzeal · · Score: 1

    What about something like updaterpmdb, like updatedb for the locate command ???

  6. Re:I'm astounded... by Rhys+Dyfrgi · · Score: 2

    You can search for the package that owns a given file with dpkg -S
    ---

    --
    END OF LINE
  7. Re:Some sort of communication protocol? by Michel · · Score: 1
    Cool, will it have sound support? I'm imagining a heated discussion between the system and conflicting packets...

    And why does this remind me of a certain scene in "Dark Star"?

    Doolittle: Hello, Bomb? Are you with me?
    Bomb #20: Of course.
    Doolittle: Are you willing to entertain a few concepts?
    Bomb #20: I am always receptive to suggestions.
    etc...

  8. Re:RPM is best by Skapare · · Score: 2

    The goals of newbie users and the goals of sophisticated power admins are very different. RPM probably is a fine choice for newbies and others who may be more experience but don't care to worry about the administration of what is installed, especially on a home or office desktop.

    OTOH, for someone like me that cares about what is installed, how it is installed, where it is installed, and the overall security of my server, I have found that RPM just gets in the way and increases the frustration. I'm personally dealing with details that RPM is supposed to help me avoid dealing with, because I need to deal with them, not avoid them. RPM is definitely NOT easy for everyone.

    The correct answer is, there is no one size fits all. Standardizing on a single packaging format is the wrong thing to do, unless we want to standardize on one type of user (which the other user types are not going to be happy about, at all).

    --
    now we need to go OSS in diesel cars
  9. Re:don't install at all by Isomer · · Score: 1

    I've been thinking about this for a while. The
    problem is you have several classes of files:
    Binaries - exported over a network readonly. Maybe arch independant.
    Data files, read only, or read write, may be on a network, machine local, or per user.
    Configuration, again, network, or local, or per user.
    The current fs layout is organised like this, so you
    can mount /usr readonly, /var read write, and mount /usr/share over a network.
    if you have /package// then you loose this.

  10. Re:We already have a de-facto one. by DaKrushr · · Score: 1

    A ports tree would be ridiculous for Debian.

    There's already APT, which is awesome - 'apt-get update; apt-get dist-upgrade' goes and updates your ENTIRE INSTALLED SYSTEM (except for kernel and non-Debian packages).

    Installing individual packages is trivial - 'apt-get install PACKAGENAME'. And if you want the source, just do 'apt-get source PACKAGENAME'.

    There are a number of frontends for apt, such as Gnome-Apt (not sure whether it's still under development, or orphaned), Aptitude, Console-Apt, StormPkg, and Corel's get_it.

  11. Re:don't install at all by oznet · · Score: 1

    Ah, yes. I've been thinking about this for some time. I would love to see something like this. Nice and clean. Delete that file and you "uninstall" the application. Simple, clean.

    Just to toss out some ideas:

    Imagine if the entire OS was one file. So you might have a base Linux, BSD, or whatever system that you would install just by copying a file over. This would require some type of very basic system for managing the "filesystem" (or database, whatever it would be).

    MVS uses a very flat filesystem model. And you can drill into the datasets as if there was a directory structure (which I guess there is, sorta, from the layout of the dataset). I'm not saying I like the MVS filesystem. It sucks because it's so cryptic, but there is no reason a modern filesystem patterned after it would have to be that way.

    In order to do this right I think it would require some major architecture changes to any OS. That would facilitate this one file == one application, system.

    Simplicity, I like it.

  12. Re:Directory Structure First by Skapare · · Score: 2

    A source install package manager will also need to properly integrate local hacks/patches to the package. If it doesn't do that, then I won't be able to use it for those source packages I do have my own code hacks to (several of them, such as apache, bind, ssh, qmail). There will also need to be a standardized place for it to find any "local modifications to source" for a given package so it can automatically include them.

    --
    now we need to go OSS in diesel cars
  13. Re:Packages are nice, but..... by plastik55 · · Score: 1
    I propose that we follow Apple's lead in this area and move to Self Extracting Executables, ELF binaries that you run and will extract the software and install it for you, without the hassle of remembering arcane flags and what program you're supposed to use.

    You need to read up an Apple's OS X packaging model. It's not nearly as stupid. "extracting the program and installing it for you" is moot because the program and all the things it depends on are self-contained--just download and unpack using your favorite decompression utility, and there you are.

    If you care to look at the source, you can look at it--and compiling the source produces the package.

    I would not EVER run a system such as you describe.

    --

    I have a positive modifier on Troll. When I mod someone Troll their karma should go UP!

  14. Re:Use a jar! by graveyhead · · Score: 1

    from the jar tool :

    ...jar is a general-purpose archiving and compression tool, based on ZIP and the ZLIB compression format...

    You can even use winzip (ug) to crack jars open.

    --d

    --
    std::disclaimer<std::legalese> sig=new std::disclaimer; sig->dump(); delete sig;
  15. Re:HelixCode package format by Zan+Zu+from+Eridu · · Score: 1
    It still lacks some functionality though, like being able to unpackage from other places than the CD-rom, but it's improving.
    If you doubleclick an .rpm in mc (gnome midnight commander, the file browser), gnorpm will prompt you for the root passwd and install/upgrade the .rpm from any location (if you have read access).
    -><-
    Grand Reverence Zan Zu, AB, DD, KSC
  16. ??? by dabadab · · Score: 1

    I am somewhat perplexed. OK, our current package system (I'm using Debian) has its own problem if you install stuff (especially libs) from tarballs. That's clear. But how on the earth could it be solved using self-extracting archives? And why on earth would you want to do a self-extracting archive anyway? It is not secure, you need some installer anyway to remove the packages and it just does not make sense at all.
    What we need is an easy way to register manually installed software. Something like stow, but much more powerful. Yeah, that's what we need, not self-executing archives.

    --
    Real life is overrated.
  17. Re:Standardise on deb! by Skapare · · Score: 2

    It was said before. If your package needs a mail agent be installed, how are you going to make sure it works when I have qmail installed instead of sendmail?

    --
    now we need to go OSS in diesel cars
  18. Re:Use a jar! by graveyhead · · Score: 1

    Damn. Sorry about that last post... I forgot a closing tag symbol. I know... use the preview.

    from the jar tool documentation :

    ...jar is a general-purpose archiving and compression tool, based on ZIP and the ZLIB compression format...

    You can even use winzip (ug) to crack jars open.

    --d

    --
    std::disclaimer<std::legalese> sig=new std::disclaimer; sig->dump(); delete sig;
  19. Re:Static linking necessary for linux on desktop by Kickasso · · Score: 1
    Three points.
    1. Static linking is an option, but not the only one. You can link dynamically, distribute all needed libraries, but install only those not already installed (check with a secure hash). If it's already there, make a symlink.
    2. Linking is not the only problem. Many programs communicate with scripts or run other programs. You have to make sure they are ok, or install your own versions.
    3. DLL Hell is there. Linux is no different from Windows in this regard (it can and should be better of course).

    --
  20. Re:I'm astounded... by Sloppy · · Score: 1

    Windows and Mac OS are PC operating systems, used by a single user. Unix is not.

    Regardless of its capabilities, Unix is used by many people as a single user workstation, in a role identical to those other OSes. What do you think the target market for Loki's game ports is? Who uses KDE and Gnome?

    Obviously, with a multiuser server where a lot of people depend on it, you need a good admin. I am not suggesting that anything be done to take away that admin's ability to get his job done. But for Joe Schmoe who wants to play a 3D game on his home PC, he should certainly be allowed to play the game without having to know where Mesa's libaries go.


    ---
    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  21. the biggest problem with RPM... by stevenj · · Score: 4
    ...is the lack of a central packaging organization, I think. This results in (at least) two problems.
    • First, if you go to a site like rpmfind.net, you'll find a zillion different versions of a given package, all with different numbering schemes. Besides the obvious duplication of effort, it is often not clear which one to use, especially if you want the "latest" RPM (or SRPM so you can build on an atypical architecture).
    • Second, suppose you find a program that is not packaged already, and the authors don't want to package it themselves, so you want to package it as a service to yourself and the Linux community. There is no guarantee that 10 other people aren't doing the same thing; you don't have any chance to become the "official" RPM maintainer for the program. Moreover, users will have no way of knowing whether you can be trusted. Finally, there is no definitive place to post the finished package (see above).

    One of the strongest points about Debian, I think, more than any minor technical distinction between .deb and .rpm, is their strong centralized packaging organization that solves the above problems. (Based on this, they can also make nicer tools e.g. for automated network-based updates.)

    Now, if only Debian stabilizes their new release so I can install it on my PPC...

    --
    If a thing is not diminished by being shared, it is not rightly owned if it is only owned & not shared. S. Augustine
    1. Re:the biggest problem with RPM... by RSevrinsky · · Score: 1
      ...is the lack of a central packaging organization, I think.

      And how should the central packaging organization (the RPM police) handle alpha and beta versions and patches, not to mention coordinating with thousands of developers?

      Never solve with bureaucracy what can be handled through coordination.

      This, to my mind, is the single greatest failing of RPM -- the attempt by RHAT to classify every Linux package in a 2-level strict hierarchy, to create strict dependancies on RHAT-specific versions.

      Why do the Windows users have it so much easier? Partially because they're only interested in installing specific applications, not libraries or frameworks. But think for a minute about the standard InstallShield (or similar) process. You're given the option of selecting an install directory, of searching (or pointing out) binary dependancies, and of selecting various components to install (or not).

      Does RPM even come close to that kind of ease of configuration?

      - Richie

    2. Re:the biggest problem with RPM... by Rob+Wilderspin · · Score: 1

      One thing I like very much about Debian packages is that you can unpack them on any Unix box in the world, using standard tools like ar and tar - .deb files are simply ar archives, and the source .deb files contain pristine source and a separate Debian patch set rather than mixing it all up.

      It's that sort of attention to detail that makes me use Debian, but in all honesty I haven't looked recently to see if you can do the same with RPMs.

    3. Re:the biggest problem with RPM... by Ranger+Rick · · Score: 1
      RPM differs in none of these things. RPMs can be unpacked using cpio, and source RPMs contain pristine source and separate patches.

      The biggest difference is that RPM does not seem to handle dependencies as well.

      :wq!

      --

      WWJD? JWRTFM!!!

  22. Re:Debian Problems by Rogain · · Score: 1

    Then don't do the "install everything" install. I use dselect to get exactly what I need. For a server that means less than 70megs installed, for a gnome desktop there is more, but if you take a little time to pick and choose, it is still quite reasonable.

    Although I won't discourage you from using tar and compiling source, it's a good skill, but if you've got the time for it, then I say good luck to you. I just don't like admining boxen that I have little idea what is installed, and precious few tools to find out, mainly cd and ls.

    The old libaries are often from non-free binary-only progs, that can't be recompiled anyway, no ones got the source or is allowed to re-distribute it, etc.

    I don't quite get by what you mean "depend conflicts", unless you're trying to get 2.2 installed in under 50megs, which is a bit hard, because debian wants to install a semi-full system, internationalization support, nurses, a large terminal db, dpkg, plus things like debconf, which is debatable. In that case there is at least 1 debian derrivative meant for the embeded market.

    --
    The current Slashdot moderation system is made by gay communists!
  23. Re:File systems as package managers by jd · · Score: 2
    Not necessarily. Lets say you have a 2-way index. Then you can search for all B's where A is true, or all A's where B is true.

    Now, let's say that one attribute in the database is the directory, and another is the file. (This is not unlike how MUDs and MUSHes represent their objects.)

    When you go into a directory, you see all files for which (object.directory == user.directory).

    Now, when objects move around, the database and filesystem remain in sync, as they have become a unified concept.

    When used the reverse way, it works just as well. I want to run the XYZ web browser, go grab the nth version found in the database. This is perfect for a GUI interface, where paths should be transparent or non-existant, and where objects just -are-.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  24. A few choices are good by ibot · · Score: 1
    I like the present situation. I use an RPM (or try to find one) for software that I won't tinker with much. For other's that I might want to customize, I prefer a tarball. Too many choices of course would become a headache.

    Founder's Camp

    --

    Founder's Camp
    News for non-Nerds. Stuff that matters.

  25. Ziiiiiiiiiip by PsiPsiStar · · Score: 1

    ZZiiiiiiiiiiiiiiip it.
    Ziiiiiiiiip it.

    Actually, my favorite compression format was
    a trash compactor.

    It did wonders for my mac.

    --

    ___
    It's the end of my comment as I know it and I feel fine.
  26. Re:Standardise on deb! by Ben+Hutchings · · Score: 1

    That's an MUA, not an MTA. The generic mail interface is the "sendmail" command. MTAs other than sendmail provide their own version of this command, taking most of the same options as sendmail (and possibly ignoring some of them).

  27. Re:Post-Install by Rogain · · Score: 1

    Fine, but don't put cocksucker-marketing dorks looking to fill this market in charge of my linux. That will be the death of it. Debian GNU/Linux, in particular is quite fine as it is. Let corel or someone else do the luser-related tweaking, and simplification stuff, just make that a schmeer on top, one that I can always wipe off when it gets in my way. What I want is a real server OS (that is not BSD licensed, sorry no flames meant, its just the truth), that you can make into a desktop, if you want.

    --
    The current Slashdot moderation system is made by gay communists!
  28. Re:Directory Structure First by decaf_dude · · Score: 2

    Agreed. Once the job of the LSB is done and all major distros agree on it, we can proceed with either creating new package manager, or refining the existing ones.

    RPM *and* .deb are both great, but both have some serious shortcomings. What we need is a flexible, intelligent package manager that would work with source as well as binary packages (i.e. if you pick up a source package, it compiles it on your machine and then installs it transparently).

    I use Red Hat and hence deal with RPM extensively and frankly think it's great.The only problem is that for performance reasons I like to have some things compiled on my machine (e.g. kernel, compiler, httpd...). That involves picking up a .src.rpm and, while it's no biggy for me (you sometimes have to adjust some parameters, make a few changes to the spec file), I understand it can be a daunting task to those who're not used to it.

    -----

  29. I like 24 e's so bite me by Rogain · · Score: 1

    Yeah, like me and all my cool linux friends are totally like laughing at you and what not! ;)

    What you need is a recent cheapbytes debian cd and some cool t-shirts, six-pack of jolt + a bottle of voka, then you can join in the fun! Driving around, looking for BSDer's and yelling crap at them, "you call that liscense free!!!" "microsoft could take yer code, and sell it!!" "you smell funny!" "Cut your hair, the early 90's sixties revivial ended last century!!!" etc and then burning tread, peeling away as the cops whip it around with the lights flashing... ah to be linux and young..........

    --
    The current Slashdot moderation system is made by gay communists!
  30. Re:don't install at all by stikves · · Score: 1
    Well you're right, but i think no one will be able to declare standards on software (non)installation, because everybody has different views.

    The best would be Linus or RMS defines standards, but let's wait for GNU/Linux to maturize a bit more.

  31. Don't make installation easy!!! by platos_beard · · Score: 1
    The last thing in the world that Linux needs is an easy and consistent way of installing and configuring software.

    99% of Linux's much ballyhooed ability to run for weeks, months, years on end is that users are NOT installing new software or new versions of software every other day.

    Every installation is a chance to screw something new up, and because of the potential for interactions among all the softwares installed, the likelihood of problems increases exponentially with each package installed.

    --
    What's a sig?
  32. Re:BSD does it again by leftyunix · · Score: 1

    Ha! and RPMs aren't fragile? How many times have you installed an RPM that has broken dependencies? The argument you make here applies equally to RPMs.

    --
    -- you too can have an annoying sig!
  33. HelixCode package format by fredlwm · · Score: 1

    InstallShield for Linux should be their next work.

    --
    How to contact me - http://www.pervalidus.net/contact.html
    1. Re:HelixCode package format by Steeltoe · · Score: 1

      Personally I find the mindless clicking of Next during InstallShields execution an insult to my and others' intelligence. InstallShield is a dreadful program which offers no customization or flexibility for the users (both package provider and the people installing). As a developer you can of course edit the scripts, but oh, theres so few standard ways do to things other than the mandatory clicks. If you do it differently, people will scream bloody murder at you. Also, binary self-extraction is too platform-dependent for my tastes. If people want to click on an icon in KDE and GNOME, it's up to the makers of KDE and GNOME to recognize RPMs and other filetypes I think.

      On Linux, I think GnoRPM is sufficient, very intuitive and easy. It still lacks some functionality though, like being able to unpackage from other places than the CD-rom, but it's improving. It's lightyears ahead of InstallShield, but I hear Windows2000 comes with a more decent installer. I guess the borgs have learned their lesson about InstallShield.. Not that I use GnoRPM much myself. I'm dangling around in Windows-world too much to have to point-and-click in Linux too.

      - Steeltoe

  34. Re:Excellent suggestion by Rogain · · Score: 1

    Installing from source would not really break your system. If you say compiled the latest mozilla source, and did not install it in /usr/local (the ideal place for non-package managed software) THEN you decided to say install a netscape or mozilla deb, then you might have some problems, but then anyone who doesn't realize that should not be installing software, just using it.

    The hard part about that suggestion is to get the developer to document all of the potential problems in such a ports/autoconf/make system. Most RPMs and debs are made by maintainers, not the original developer, so someone else is cleaning up after the coders. Plus how much data must be maintained? When you multiply the number of packages, by the number of libs, by the number of distro's by the number of hardware platforms, by the kernel versions, by etc etc.. .. . .. . it could get pretty thick. O(n^n) or something close...

    If you think a prog will work without the demanded lib, you can always do a "forced" install, and try it out. Nothing except fear to keep you from giving it a whirl....

    --
    The current Slashdot moderation system is made by gay communists!
  35. Re:don't install at all by spitzak · · Score: 2
    "install" can just put a symbolic link into some directory pointing at the actual executable to run. Deleting the package will still successfully remove all the files, though it will leave a broken link. Still much preferrable to the existing shotgun "installation".

    But rather then trying to figure out how to break this excellent idea so it works with old tools, why not fix the old tools. What we want is the existence of a file to "install" it.

    For the shell: modify it (or the exec system call) so you can execute a "package" and run the application. Tell everybody to put ~/bin in their path. And then tell everybody that sticking the package in ~/bin will allow them to run it from the shell.

    For things like the Gnome start menu: fix gnome to look for packages in ~/bin and extract the necessary information (help, icon, etc) from it. Then again, putting the package there will suddenly make them appear on the menus.

    To "install" a package so all users can see it, become superuser, and move (or link) the package to /System/bin.

    To "uninstall" a package, just delete the file (modify rm so it does rm -R on them automatically).

    A package that has to change the system somehow (like install a service) will pop up a question box when run saying "do you want to install this". If the user says yes it then runs some kind of "install shell" program. This is a setuid program that asks for the root password in a pop-up window and if the user types in the correct thing it then runs the script. Cheap solution: user must put the "file" (jar/.app/whatever) into ~/bin to see it without installation (and their path must contain ~/bin). Making shells see the command is the same as making the Gnome command see the command or the Windows start menu see the command. Some thing needs to be done other than simply putting the file on the file system.

  36. Re:I'm astounded... by MochaMan · · Score: 1

    actually, this information isn't all that hidden. Try doing "man dpkg". You'll see that you can get a list of all packages by typing "dpkg -l" and a list of all files in a package with "dpkg -L ".

  37. Re:The root of the problem. by Amokscience · · Score: 2

    This was one of the key reasons I switched from Linux to FreeBSD. After trying to get things working on Debian, Redhat, and SuSE I tried FreeBSD and haven't looked back.

    I remember seeing something about a organization to standardize all the Linux file system layouts etc. but nothing seems to have come of it. Redhat was not a part of it and Slackware falt out refused to abide by any decisions that they made.

    It seems to me that Debian has it's act most together but has problems because it there are not standards.

    Contrast this with a *BSD OS (and perhaps others) which have a centralized system of source and/or binary (ports/package) installation using trusted files. Download, make, grab and install all dependencies, install, done. And everything is mantained by a group of people who make the latest greatest software buildable and runnable on *BDS. This is, of course, precisely because there is little fracturing in the origanizational structure of the overall OS. A weak point is trying to update a program to a newer version (I've seen ways to do this but it's not exactly simple).

    It won't happen untilthe Linux *distro leaders* decide to wake up and compromise on this key area of standardization. I know Linux users love to use the 'multiple choices' argument but at some point you have to start catering to the majority rather than the minority... (yeah yeah, sounds more and more like a commercial OS)

    Anyways, I don't mean to slam Linux but it's a key area of weakness. It's ironic that a great strong suit of Linux is also a major headache.

    --
    Fsck cluebie moderators. I'll say what I want, offtopic or not. And fsck having to qualify every bloody statement just
  38. Re:Standardise on deb! by Jeff+Licquia · · Score: 2

    By opening a socket to port 25, perhaps? Or by providing a /usr/sbin/sendmail that's option-compatible (as, I believe, most of the MTAs do)?

  39. Re:Possible Security issues... by Skapare · · Score: 2

    One of the things that annoys me greatly is packages that install stuff into my system configuration. I want total control over my system, including what services are started at boot time, and in what order.

    OTOH, I can understand someone else not understanding at all how the system starts up, and wants the package to take care of that (if its a service to be run). Part of the difficulty of all this is that we have not standardized on one kind of user.

    --
    now we need to go OSS in diesel cars
  40. Re:Some interesting ideas, but... by amorsen · · Score: 1

    Assume I am a user on a system that only has emacs and I really love xemacs. Then I install xemacs using my regular account, "amorsen".

    I discover that others need xemacs too, and that they have started using the one I installed. Then I grin evilly and change the xemacs executable to fork() a little X event watching program before it exec()'s the actual xemacs. This way I can gather passwords from unsuspecting users.

    Software installation must be done by trusted users, and noone else. Anything else would require an operating system that actually protected users from the programs they run. Such an OS would not be called Unix.

    Benny

    --
    Finally! A year of moderation! Ready for 2019?
  41. Interdependencies - warning, may be flame bait by Hard_Code · · Score: 3

    I am reposting this from a previous article because it makes more sense under this one.

    Ok, as only partially-initiated, I must ask, in spite of the simplicity of the philosophy of Unix, why oh why are there so many damn interdependencies in applications? Example: I install RedHat (yeah, shut up, it was the only thing that would install over DHCP on this old ThinkPad, after trying FreeBSD, Slackware, NetBSD, and TurboLinux), and choose the most minimal of configurations, and also choosing some small tools like cvs, etc. Well all of a sudden it is prompting me for all sorts of other dependent packages. I could not believe it when it told me I needed the entirety of KDE, and *then* also GNOME to satisfy dependencies! That is bullshit. Tk, Tcl, Python, Perl, Expect (!)...how the hell many things do I need to install? Am I the only one who thinks that backending GUI or administrative applications by Perl is just a god-awful abuse?

    Sure this is just one experience, but I've found the same general thing when installing other distributions. Is this just a commercial flaw? Or do other "non-commercial" distributions like Slackware and Debian not require this? I just boggle at the horrendous amount of crap that even the most trivial of applications is dependent upon.

    Ok, I'm putting on my asbestos trousers...

    --

    It's 10 PM. Do you know if you're un-American?
    1. Re:Interdependencies - warning, may be flame bait by YoungHack · · Score: 1

      In general, I have found Debian to be much more
      self-contained than you describe Red Hat to be.
      The dependencies tend to be less sweeping--more
      what I would expect they should be.

  42. My 2c on installing software on Linux/*BSD by rc · · Score: 2

    What I see most important in the short term is the complete lack of a standard installer (the likes of InstallShield) and a standard GUI for it in X and curses.

    1. It should be a binary installed on the local system and so separated from the packages it will be installing. (for security reasons as stated elsewhere in this thread)

    2. All packages should be digitally signed and this signature has to be validated before installation can commence. (be vary about M$ signatures ;-) Distribution maintainers should include trusted signer's keys in the distribution for convenience.

    3. Within the installation GUI it should be possible to get a clear view of what-goes-where in terms of files contained in the package

    3.1 For this sort of a major installation system overhaul to become reality there must be very good tools to create these new packages and utilies for converting existing .rpm/.dep/.tgz packages to whatever this new system will be.

    4. Also installation paths should be configurable and there should be a button for checking and updating the system path setup if needed -automatically. Also post copying/installation configuration should be available through the same GUI, so that one is able to install and configure software easily through a "wizard" in the beginning and then get down to 'vi' if tweaking is needed at a later time.

    5. The installer should have a decent help on LSB directory meanings and a FAQ of known best practices of software installation. (I use /opt for just about everything)

    6. The packaging format should be something like the .tgz package format *BSD's ports collection with automake/autoconf Makefiles for dependency checking and a way of automatically fullfilling these dependencies if needed á la the ports collection (It really works wonders - it is something we should adapt from our *BSD kinders)

    6.1 The packaging format should also support source compilation i.e. instead of being an "only binary" package the SW could be distributed in source form and the installation system will give the local machine optimisation flags to the Makefiles of the package to be compiled. Flag override should be also available in the package if the SW is known to malfunction with some optimisation flags i.e. it's not SMP safe or breaks with high optimisation parameters.

    6.2 There should also be a proper uninstall scripting in the installer and another handy feature would be the possibility of making an orphan check in the installer i.e. when a software is uninstalled no shared libraries should be removed (this semantics will leave orphaned libs hanging arround, but retain other SW operational if it hasn't been registered with the package system as using this library) Now with orphan detection root has direct control over what libs are to be removed as surplus and if something then breaks he will be able to reinstall what ever he just removed, instead of being left guessing what essential part was removed with software package ZYX.

    7. A new binary fileformat of the .jar like would be helpfull if one strives to minimize the directory count of the box, but at the same time it compromises control of individual files in a given software (think icons in KDE as part of a kde2.package - how can those be updated easily and conveniently?) Perhaps some kind of a hybrid system with a hierarhy of

    say /opt/kde2/kde2.package
    and /opt/kde2/conf/(config files)
    and /opt/kde2/icons/(icon files)

    8. At the same time we should try to rationalise the current confusing directory hierarchy system of /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin, /usr/share/bin, etc. as this becomes entirely uncontrollable after a while of mixing packages and/or source compilations from various sources on any given system.

    Nowadays it is complicated to get a grasp of what's installed on a system just after installation if using something like RH/Mandrake that stick every SW beneath the sun and their friends in a default installation. (even with the minimum/expert installation =(

    Hopefully someone with enough programming expertise to actually do something about these suggestions sees this post and finds some of it rational enough to try to implement a system like this on Linux/BSD.

    I'm looking forward to see the day it works,
    ++ Raymond

    1. Re:My 2c on installing software on Linux/*BSD by Toshio · · Score: 1

      In general I agree with all the points, but especialy I agree with point no. 6.

      6. The packaging format should be something like the .tgz package format *BSD's ports collection with automake/autoconf Makefiles for dependency checking and a way of automatically fullfilling these dependencies if needed á la the ports collection (It really works wonders - it is something we should adapt from our *BSD kinders)

      Even if everything else doesn't get implemented in step 0 [I don't want another mozilla project out there], combinig the inner workings of RPM packaging (I don't know the debian apt packages, so I can't compare or use the knowledge) with strengts of autoconf/automake automatic script and dependency generating, we should have decent enough installation system on our hands. Everything else can be built on this core at a different stage in development.

      I think even this minor (as it seems, but then again, what is minor) combination of functionalities together with move away from packages as monolithic namespace in direction of actually checking the files, should give the developers and users alike the power usualy reserved for real into-the-things-linux-users to prepare and install things across distributions and know everything will eventually work.

      The point in the article should be well taken, as it points out the right direction and it would enable even wider spread of free (as in speech) software among not-so-guru end users.

      My 2 cents

      --
      To boldly invent more hot water.
  43. EPM, at www.easysw.com, does this by Jeff+Licquia · · Score: 2

    You write up specs for a "meta-package" format, and EPM will build various packages for you. It supports RPM, .deb, Solaris packages, IRIX packages, and HP-UX packages, as well as a "tarball" format that installs with a setup program (user-supplied, or you can use theirs).

    It's GPL, and it's packaged for Debian (for woody, not for potato, unfortunately, although the woody package works on potato).

  44. Re:packaging applications == lexical closures by jetson123 · · Score: 2
    Your program outputs nothing. But you can demonstrate what I mean in Perl:

    sub make_package {
    my $library = "hello, world";
    my $program = sub { print $library,"\n"; }
    };
    # create the program/package
    $package = make_package();
    # change the environment incompatibly
    $library = "oops, wrong environment";
    # run the program
    $package->();

    This outputs "hello, world" in Perl. In the real world, it will output the wrong thing.

  45. RPM is best by em_tasol · · Score: 1

    if Linux is to standardise, RPM seems to be one of the most easy to use formats at this point

    --
    /* Linus is The One ... the Oracle told me so. */
    1. Re:RPM is best by skroz · · Score: 1
      OTOH, for someone like me that cares about what is installed, how it is installed, where it is installed, and the overall security of my server, I have found that RPM just gets in the way and increases the frustration. I'm personally dealing with details that RPM is supposed to help me avoid dealing with, because I need to deal with them, not avoid them. RPM is definitely NOT easy for everyone.
      I've heard this argument a million times before, but no one has EVER given a solid explanation as to just what in the hell they mean. Give me examples other than, "It's from RedHat, so it's underpowered and for newbies."
      --
      -- Minds are like parachutes... they work best when open.
    2. Re:RPM is best by p1nh3ad · · Score: 1

      Well, RPM is the nest package format for someone who want to know what the heck is installed on him system and where/what version. Like the post states , its the most easy to use for ppl new to unix-like OS's.... =* Thats no moon , its a space station *=

    3. Re:RPM is best by mechtoad · · Score: 1
      ...RPM seems to be one of the most easy to use formats at this point

      Easy to use is relative. I enjoy wielding tar. YOU may enjoy the suckage of rpm.
      "Redhat is bad."

    4. Re:RPM is best by Rogain · · Score: 2

      good, lose some of that weight chubby! BTW, .deb's are far better! Get a grip, get a life, get a deb.

      --
      The current Slashdot moderation system is made by gay communists!
  46. Why not just have some sort of header by AussiePenguin · · Score: 1

    Why not have some sort of header, like scripts have or use mime-types or something to call the package manager to install the package?

    Apart from that, I haven't had any problems with debian packages and half the things that the author of that article wanted aren't neccisary in Debian.


    AussiePenguin
    Melbourne, Australia
    ICQ 19255837

    --

    Jeremy
    Melbourne, Australia
    Jabber Australia

  47. ./configure --prefix=/usr/local/foo by Morgaine · · Score: 2

    Admittedly this applies only to tar'd source packages, but the autoconf system already allows you to structure your system that way: for a package foo, just configure it with

    ./configure --prefix=/usr/local/foo

    and then after the "make install" go to /usr/local/foo/bin and run

    for FILE in *; do ln -s `pwd`/$FILE /usr/local/bin/$FILE; done

    If the package provides dynamic libraries they you also need to change /etc/ld.so.conf, and if it provides man pages then ditto for /etc/man.config, but it's no great hardship.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
    1. Re:./configure --prefix=/usr/local/foo by RSevrinsky · · Score: 1
      Rather than roll your own linker, I suggest you look at the extremely useful GNU utility stow, which can intelligently link all bin, lib, and man files -- and, more importantly, remove the symbolic links when it's time to upgrade.

      I only wish that RPM was as sane....

      - Richie

    2. Re:./configure --prefix=/usr/local/foo by Raven667 · · Score: 2

      You are thinking of GNU Stow which does exactally this. While I wouldn't recommend this type of file layout for /usr, /usr/local and /opt are annother matter entirely and I would recommend Stow type packaging there.

      --
      -- Remember: Wherever you go, there you are!
    3. Re:./configure --prefix=/usr/local/foo by Raven667 · · Score: 1

      /usr is filled with the system binaries and libraries, not seperate, individual applications. Any large user application should be installed in /opt and any additional software installed after the system itself is installed should go into /usr/local. Having seperate directories for cat, awk, even perl with symlinks would not be efficient or usefull to a user since this is software that the user won't be installing/removing by themselves. I know this is a poor explanation but I am running out the door for lunch right now.

      --
      -- Remember: Wherever you go, there you are!
  48. RPMs for binaries tarballs for source by Compenguin · · Score: 1

    If you ask me, i think RPMS are best for compiled code but tarballs are best for source for source.

    -Compenguin

  49. The standard Linux USER by Skapare · · Score: 3

    Time and time again we hear the call for standardizing something. The common argument tossed out is that such and such standard is needed if Linux is to succeed. I say baloney! to that. Linux will survive, grow, and prosper, on the basis of what has made it do so, so far: its diversity and opportunity to try things in a different way.

    If we are going to standardize something, then maybe what we should standardize on first is a single type of user. Afterall, if we only have one type of user to have to deal with, then we don't have to deal with a diversity of needs and we can focus on exactly what this one type of user does need. Then we can have just one distribution, one filesystem layout, one package format, one window manager. Hell, we might even be able to narrow it down to just running a single application. Then Linux will RULE!.

    ... in your dreams!

    --
    now we need to go OSS in diesel cars
    1. Re:The standard Linux USER by Raven667 · · Score: 2

      There is no need for multiple, mutually incompatable systems for doing the same thing. Diversity is one thing but code reuse and compatability is more importent here. The tired old example of "What if everybody used a different, incompatable but similar network protocol stack" applies here.

      --
      -- Remember: Wherever you go, there you are!
  50. Re:don't install at all by jetson123 · · Score: 2

    Yes, if bundles are just big executable archive files or directory trees with a known structure, you don't need a database--you can just search through them in a more traditional UNIX shell style. A database approach would be another way, though, of letting both users and packages find the executables they really want (the "owned by..." was just another example--for example, for security reasons, I might not want to execute files owned by anybody else right now).

  51. per-user resolv.conf by Alexey+Nogin · · Score: 1
    We should have a way of overriding certain system config files locally, for example, resolv.conf, so that we have a per-user view of the system configuration

    I already asked RedHat to implement that some time ago - see this Bugzilla entry

  52. pffff... by fluxrad · · Score: 2

    slow news day eh?

    personally, i don't understand why cardboard boxes have been around for so long. I figure, if you order a washer/dryer combo from a store, the cardboard you purchase it in should be able to unpack the washer/dryer combo for you, set it all up, and do a complimentary load of laundry.

    my not-so-serious point is that tarballs and zips are the cardboard boxes of the computer world. They're meant to do one specific task, and they do it well. No one can say the tar command isn't pretty robust. But basically, do you care about the packaging something comes in? I sure as shit don't. I care what's in it. - *nix, generally being more hacker oriented has always had a do it yourself attitude. Personally, i don't want to see a single file that extracts, runs, and does your dishes all at the same time...that's just not what i switched up for.


    FluX
    After 16 years, MTV has finally completed its deevolution into the shiny things network

    --
    "It is seldom that liberty of any kind is lost all at once." -David Hume
    1. Re:pffff... by vicoder · · Score: 1

      I sort of agree but for my I use RPM's when I really don't feel like taking the time to tar zxvf a file and I want an instant install. Other times I may need to add options like ./configure --with etc...I still can't see RPM Kernels too weird unless it came w/ a configure script.

      --
      -The good humor man can be pushed only so far
    2. Re:pffff... by vixiejvc · · Score: 1
      When you can remove a program that came in a tarball without searching through three or four directories on the executable path (and in some cases all the library directories) and applying rm when you get lucky, I'll use tarballs. 'Till then, I like "apt-get remove" :)

      -Jo Hunter

      --

      If we do not change our direction we are likely to end up where we are headed.

    3. Re:pffff... by core_blimey · · Score: 1

      All well and good, just don't expect to take over the desktop market in any big way. It's hard enough getting the tech support around here to install Photoshop on someones computer, I'd hate to even think what would happen if I wanted them to put Disksuit on the Ultra 5's.

      Why do you think RPMS exist in the first place anyway? I mean a tarballs are all you need to get anything, RPMS and Solaris Packages and the likes makes the job easy enough for slightly computer savvy people to do it... a Windows Setup program means even your secretary can do (But not your boss.)

      --
      In democracy your vote counts. In feudalism your count votes.
  53. Check out the Loki installer by MEGASTeP · · Score: 1

    Loki Setup is doing much of what people are describing here, although it's not very good yet at dealing with all packaging systems.

    Setup is GPL, features an easy-to-use GTK+ UI, relies on XML files to describe the packages (and also the UI via libglade), generates uninstall scripts, handles RPM files, pre and post install scripts, etc... I also happen to be its co-author ;-)

    Most Loki products use it in conjunction with Makeself, which is included in setup, and enables programmers to make self-extractible program archives.

    Stéphane Peter

    --
    Stéphane Peter
    Codehost, Inc.
  54. Re:Possible Security issues... by danme · · Score: 1

    Only because you are doing the installation as root, you don't have to run the application as root...

  55. Some interesting ideas, but... by schon · · Score: 3

    A new package format that would combine the strengths of the current various is a good idea, but (and it's a big but) I hope the author isn't the guy to do it (he doesn't have a good grasp of security..)

    He mentions making the package self-extracting - "just do a chmod +x on it, and away you go"

    Sorry, but that's why "security" in Windows is so abysmal..

    Think about it - to install, you're running this file as ROOT - would you run a binary from an unknown source as root? (I don't even untar source as root!) - this is inherently a bad idea.

    Just my .02...

    1. Re:Some interesting ideas, but... by plastik55 · · Score: 1
      Assume I am a user on a system that only has emacs and I really love xemacs. Then I install xemacs using my regular account, "amorsen". I discover that others need xemacs too, and that they have started using the one I installed. Then I grin evilly and change the xemacs executable to fork() a little X event watching program before it exec()'s the actual xemacs. This way I can gather passwords from unsuspecting users.

      Software installed by untrusted users should be taken for what it is. In your example it is the other users' fault for using software residing in an unprotected directory, owned by an untrusted user; and it is their accounts which suffer.

      When I want to do a "make install" as non-root, I expect it to go somewhere specific to me (like /home/amorsen/bin...) and I should have that option, I think. What kind of fool would run a program in someone else's bin directory?

      There are tons of little arguments about why only root should be able to do this, or that, or the other thing. What it results in (for me) is the need to "su" and type my password every two minutes, whenever I want to use the computer to actually do something. This, I think is a BIG flaw. I find myself typing the root password automatically, the way my friend automatically types #include int main(void) {} every time he opens vi. I worry about echelon-style attacks; with me typing the password so much, the pact that I am typing it would be deducible from the keypress rhythm itself. It's not SAFE to have such a black-and-white security model. The entire security model needs to be thought out better. There needs to be a mechanism so that I can request access to the hardware and unless there's a good reason, I should get it.

      It may not be UNIX, but UNIX was developed for a time when the only thing that users needed was CPU time. This does not apply to PC's where there actually is a floppy disk/cdrom/interfaces which people need to be able to use.

      --

      I have a positive modifier on Troll. When I mod someone Troll their karma should go UP!

    2. Re:Some interesting ideas, but... by randombit · · Score: 1

      Think about it - to install, you're running this file as ROOT - would you run a binary from an unknown source as root? (I don't even untar source as root!) - this is inherently a bad idea.

      This seems kind of weird. After all, you're _installing_ binaries. Not to mention the fact that RPM (or configure/make) involve running binaries that you got from some unknown source (RPM runs shell scripts in the package both before and after the package is installed). In most cases, losing your user account from a rm -rf ~ in a makefile is almost as bad as losing the entire system (the exception being a machine run by several users, of course).

    3. Re:Some interesting ideas, but... by schon · · Score: 2

      When you do an 'rpm -Uvh my.rpm' or 'rpm -i my.rpm' what do you think is happening? Two scripts are being run as root, one before extractions and one after.

      This is a good point, but there are two issues wit it..

      First, a script is slightly different than a binary executable - I can look at the source of a script to see what it does before I run it.

      Second, _I_ never run either of the commands you specified, without first examining the source of the scripts; I use a utility to unpack the RPM, then look at what I'm installing.

      OK, so I may be a _bit_ paranoid :o) ... but then, when everybody's out to get you, paranoid is just good thinking.

    4. Re:Some interesting ideas, but... by Finni · · Score: 1

      First off, the authoer said he wasn't a competent enough programmer to do it. Second, he's a she.

    5. Re:Some interesting ideas, but... by ptbrown · · Score: 1

      Actually, you could probably do this with the MISC binary format. You define what a .tar.(gz|bz2) file is, and that those files should be "executed" with `tar xzvf $1`. This is how Java works.

      --
      Any sufficiently advanced civilization is indistinguishable from Gods.
    6. Re:Some interesting ideas, but... by plastik55 · · Score: 1
      I'm sure you thoroughly check the source for backdoors and buffer overflows too, for every package you compile.

      "But open source guarantees security!" someone says. "A thousand eyes looking at the code..."

      um, no. Uberhacker Ken Thompson says why.

      Seriously, if there were a backdoor in a stable piece of software (one that was well-programmed and never gave anyone trouble,) how soon would it be discovered? Backdoors can be hidden very well (see previous link.)

      What really needs to be done away with is the inability to install software as non-root. What *I* want is to be able to do "make install" as NON-root, and have it go into the appropriate directories. That, I think would be a reasonable level of security.

      --

      I have a positive modifier on Troll. When I mod someone Troll their karma should go UP!

    7. Re:Some interesting ideas, but... by import · · Score: 2

      When you do an 'rpm -Uvh my.rpm' or 'rpm -i my.rpm' what do you think is happening? Two scripts are being run as root, one before extractions and one after.

      I felt he had some good points. A dependency system that doesn't depend on itself being present in its dependencies *would* be cool.

  56. Packages are nice, but..... by ssd · · Score: 4

    Packages are nice, but really, if we want to see Linux make it in the Real World (TM) we need to advance to the 21st century and recognize that we must have a simple and easy means of installing new software. I propose that we follow Apple's lead in this area and move to Self Extracting Executables, ELF binaries that you run and will extract the software and install it for you, without the hassle of remembering arcane flags and what program you're supposed to use.

    Just look at it! The author of the article makes a very good point. How many of you really look over a binary before you install it? Do you just rpm a package and then run it? What do you have to lose from running this random binary? No more than if you downloaded the rpm and ran the binaries contained therein.

    What we as the Open Source community need to do is create a standard install tool, like what windows programmers have with the install shield software. The software could be customised, and could be written to reconize the directory structure, and install the files in the correct locations, maybe through the use of certain files that would be kept in a standard location, like /opt/local/lib/install/.

    So, whaddya think? Think we can get something whipped together? Even just a proof of concept done in a combination of perl and python? We certainly don't want to make the mistake OS/2 made and not at least keep up with what windows has had for years.

    -ssd

    1. Re:Packages are nice, but..... by PSC · · Score: 1

      How many of you really look over a binary before you install it? Do you just rpm a package and then run it? What do you have to lose from running this random binary? No more than if you downloaded the rpm and ran the binaries contained therein.

      Running a completely unknown, downloaded executable as root is plain stupid. While certainly not the non-plus-ultra in packaging software, with RPM you must install the package as root, but you can run/test the executables as a dummy user, so it won't do much damage.

      And don't even bother to tell me about the pre-/postinstall scripts - just use the --noscripts option, and do the stuff by hand (or check the scripts beforehand using -q --scripts).

      BTW, how do you uninstall self-extracted packages? Does every package have to provide its own uninstaller?

      --
      --- The light at the end of the tunnel is probably a burning truck.
    2. Re:Packages are nice, but..... by Glenn+R-P · · Score: 3

      How many of you really look over a binary before you install it? Do you just rpm a package and then run it? What do you have to lose from running this random binary?

      1) IMO, It's not a good point at all. It's correct that only a minority of ppl care, but that's no reason to remove the choice. It is very important to some people. If there is to be one single standard (god forbid) then it should cater for everyones needs, not just most peoples.


      Also, people who don't examine the source can take comfort from the fact that they are installing from a source that the public can examine for security problems.

    3. Re:Packages are nice, but..... by Gothmolly · · Score: 1

      Except some of us never use /opt.

      --
      I want to delete my account but Slashdot doesn't allow it.
    4. Re:Packages are nice, but..... by MartinG · · Score: 2

      >How many of you really look over a binary before >you install it? Do you just rpm a package and >then run it? What do you have to lose from >running this random binary?

      1) IMO, It's not a good point at all. It's correct that only a minority of ppl care, but that's no reason to remove the choice. It is very important to some people. If there is to be one single standard (god forbid) then it should cater for everyones needs, not just most peoples.

      2) Binaries are architecture specific. Linux is not.

      --
      -- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz .@adgimnoprstu
    5. Re:Packages are nice, but..... by Kickasso · · Score: 2
      Sandbox the installer properly, and whoops! -- your troll (it is a troll, right?) becomes just another perfectly valid opinion. For, you see, "list of places to install stuff" is just a very limited form of interpreted sandboxed code. The funny part is, it doesn't have to be limited or interpreted. Those are just the easiest means to have it sandboxed.

      In the end the installer just has to put stuff where it belongs, and probably modify some kind of registry (or setup files or whatever). If it needs to execute some code in order to determine what exactly to do, then so be it. Just don't let the executed code do any damage. This way we can have more robust, but still perfectly safe, installer.
      --

    6. Re:Packages are nice, but..... by Goonie · · Score: 2
      Packages are nice, but really, if we want to see Linux make it in the Real World (TM) we need to advance to the 21st century and recognize that we must have a simple and easy means of installing new software

      We do. We have several - they're called rpm, dpkg and the various front ends. If the user interface of these packages are too arcane, then *they* need work, rather than what you propose . . .

      I propose that we follow Apple's lead in this area and move to Self Extracting Executables, ELF binaries that you run and will extract the software and install it for you, without the hassle of remembering arcane flags and what program you're supposed to use.

      This is such a boneheaded idea that even Microsoft has largely given it up - IIRC, while each program contains its own installer,the actual work is now managed by the OS.

      I'm not denying that there are problems here, your solution has been demonstrated to be a Bad Thing. Making friendly interfaces to dpkg and rpm, and setting them up to make package installs off a CD easier, might help.

      --

      Any sufficiently advanced technology is indistinguishable from a rigged demo
      --Andy Finkel (J. Klass?)
    7. Re:Packages are nice, but..... by Kickasso · · Score: 1
      Sandboxed. Sandboxed, sandboxed. Sand-fucking-boxed.

      It's a pity I don't know who you are. I'd send you a dollar. Sandboxed.

      Oh, yes. I'm a complete fucking moron. Does it boost your sense of absolute moral superiority? Sandboxed. If not, let me know. I'll post some more. Sandboxed.
      --

  57. Re:Post-Install by lordsutch · · Score: 3
    A less flip response is that Debian has a standard menu system that is compatible with any window manager; you simply stick a file in /usr/lib/menu/[package], and update-menus in your post-install script does the rest. The user can also override these menu entries if she wants. I believe Debian has recommended menu entries for all interactive programs (i.e. ones that don't need command line options or a shell to do useful work) for a while (see policy section 3.6); packages that don't have menu entries usually get nasty bug reports filed against them ;-).

    GNOME and KDE also have a similar concept.

    --
    My Blog. Sela Ward can sell me long distanc
  58. Re:Directory Structure First by ptbrown · · Score: 2

    I've always despised the idea of hard-coded paths. What we need is symbolic path references. (Not to be confused with symbolic links, but I don't feel like flipping through my thesaurus.) Instead of putting a file in "/etc" or "/usr/local/etc" (not that packages should be allowed to touch /usr/local). But instead you copy it to, say, "$PKG_DIR_CONFIG" which can be whatever you want. Or better yet, taking a cue from autoconf, "$PKG_PREFIX/$PKG_DIR_CONFIG". And similar variables for binaries, libraries, data, and documentation. Then, not only could a single package be made for almost every distribution, but the installation method can be controlled by the user if the usual install paths aren't desired.

    --
    Any sufficiently advanced civilization is indistinguishable from Gods.
  59. Re:don't install at all by chris.bitmead · · Score: 1

    That idea's got a lot of merit, but sadly - that's just not the UNIX way. Take the PATH for example. If every application had its own directory or whatever, your PATH variable would be a million lines long. So you'd have to think of a whole new infrastructure for executing apps.

  60. Re:We already have a de-facto one. by erotus · · Score: 1

    Actually, I've used rpm and deb packages and like both. I heard a rumor, however, that debian wants to use a ports tree much like the *BSD's. I've used FreeBSD before and the scripts made installation and de-installation a breeze. "Make install" to install and "Make deinstall" to remove the packages. Does anyone know if this rumor is true about Debian and the ports tree?

  61. That would require seperate ports from each dist! by fuckface · · Score: 1

    The reason BSD ports works at all is because it's handled by one small group. Since we have X Linux distributions, we would need X small groups. And no doubt each of these small groups would do their ports differently than the others making them all re-incompatible.
    Beyond that _very_obvious_ problem, there's also the fact that a large number of (would-be) useful ports are completely broken requiring hand-massaging of the source. Go put yer head back up yer BackSideDoor and we'll call you when it's safe to view the world again.

  62. Re:packaging applications == lexical closures by Rogain · · Score: 1

    or just statically compile them, ban the lib!!!! down with /usr/lib. # find / -name "*.so" -exec rm {} \;

    Make the prog, no matter how big, to be just one file, put it in /usr/bin and give them one /etc/(progname).conf to config it. Sure, that'll work. That would simplify installing Xfree. We could even call it xfree.exe. And erase all those wacky /dev/ files, just make one file, let me see we could call it sys.config or something similarly wacky, that would list all of the devices and their drivers, cool!!!!

    no more /dev/hda just:

    device:=hdC:/
    device:=hdD:/usr/bin
    device:=mouse:/bin/gpm
    MSDEX:=hdE:/bin/atapi.exe

    cool, I think I'm on-to something here, I'll work on it and get back to everyone real soon.

    --
    The current Slashdot moderation system is made by gay communists!
  63. Dear Jackass, by fuckface · · Score: 1

    Install alien.

    1. Re:Dear Jackass, by greebly · · Score: 1

      I have, but alien doesn't always work right. Wonderful when it does though. Its a really good way to bridge packages between systems when it works. I DO like the ports collection system of BSD though. Especially since I can keep the whole collection synced via CVS daily, and always keep on top of the latest releases, EASILY

      --
      Do not meddle in the affairs of dragons, for you are crunchy, and taste good with ketchup.
  64. Re:More Standars but not yet... by Miou · · Score: 1

    > 7.Something like Novell Directory Services

    LDAP and the pam_ldap libraries are already headed in that direction.

    While ignoring whatever M$ is doing right now (I've given up on following what standard they are mauling today - regardless of what you think of the rest of their work, they have a habit of breaking standards that is inexcusable), LDAP is fast becoming the directory protocol of choice. Currently, one can use LDAP directory services for any Unix utilizing PAM (definately Linux and Solaris, possibly others?), Novell, Apache, Netscape Suitespot/Iplanet, and alledgedly NT 4.0 (with the netscape synch tool - I've never actually found anyone who got this to work, though).

    Right now, the worst problem I've seen with LDAP is the lack of a really good administrative interface - managing users, groups, etc., is a real pain with every interface I've had the mispleasure of using.

    But it's on it's way.

    --
    All operating systems suck. Some just suck less than others. (and some are virtual black holes)
  65. Re:Static linking necessary for linux on desktop by spitzak · · Score: 2
    I agree 100%.

    There is no reason for Linux to duplicate DLL hell from Windows.

    And everybody asks "what kind of interface is friendly for the user" and talks about installation wizards and other crap. What is "friendly" is when there is a little box in their file browser that is the "program" and they click on it to "run" it and they NEVER have to "install" it.

    Static linking will 100% allow this for programs that don't have to mess with system resources like drivers or continuously-running services. For programs that do have to mess with the system, I recommend that the program have compiled into it the ability to execute a setuid utility (that asks the user for the root password) that can run a script to "install" the program.

    And he did not mean static linking libc or Xlib or other things that are obviously part of the system, he was talking about static linking those hundreds of Gnome libraries that are making it almost impossible to get Gnome to work!

  66. Re:BSD does it again by rhavyn · · Score: 1

    I almost agree with you. When I first started using ports, I thought they were great. Then I wanted to upgrade GNOME. Oh, wait, there's no way to upgrade ports. So, I got to get a list of each and every package that seemed to have something to do with GNOME and delete them one by one, then go and reinstall the whole thing over again.

    And if they go back and do it again, an apt-get like system would be nice. Compiling is great, but for some large software systems (ala KDE/GNOME) it just takes too long to compile the whole thing.

    If they can fix those two problems, I'll agree that the ports system is the best out there. Until then, I'd have to say .deb's are the best.

  67. Re:Directory Structure First by QuoteMstr · · Score: 2

    So why not just keep statically-linked binaries in /boot/bin, /boot/lib, etc.?

  68. Re:don't install at all by QuoteMstr · · Score: 2

    Look at the gnu stow package --- It facilitates this.

  69. Removing an application by Camel+Pilot · · Score: 1

    It would be nice to remove an application you simply blow the directory away. This would sorta make complicated install programs and package managers obsolete.

    There is power in simplicity.

  70. Standards by Hard_Code · · Score: 2

    Perhaps I don't have my full dosage of clue, but, while the LSB is nice and all, I still would like to see broad standards to which all distributions conform. Linux, the net, and open source software in general is largely based on open specifications, standards, so that things can interoperate. I'd like a few things cleared up:

    /usr/*, /usr/local/* ?
    /var usage
    /opt usage
    /users, /usr/home, /home ?
    init scripts: System V, BSD ?
    name and format of configuration files (*.conf, *.rc, .*rc)

    Also I think there should be a unified package manager system. It seems to me package management needs to migrate to a standardized repository or database (dare I say "registry"?) of application information, indicating interdependences, and what is installed. Somebody mentioned OS X-like application package system. I don't think that is entirely feasible, because many packages consist of different components: applications, documentation, system components - these all need to be put in their correct place. We hate the windows registry because it is of some proprietary binary format that you need a tool to use, but what about a simple XML file, or micro-database, where information is stored centrally?

    You might even migrate various application configuration files into this, but that's pushing it, and for the most part, application-specific configuration files do the job just fine (I believe there is at least one effort to standardize application configuration files).

    Again if things are already being done, then fine, I'm not aware of them. Ideally one should be able to install any distribution, and immediately know where things are and how things work, having used any other distribution, and be able to install, configure and remove packages in a standardized way.

    --

    It's 10 PM. Do you know if you're un-American?
  71. Re:I'm astounded... by krmt · · Score: 1

    Why should you be limited to make files for this reason? Man pages often tell you exactly what files are related to a piece of software, and debian lets you tell exactly what files were installed where by what package. Plus, there's the added benefit of having all this nicely logged without having to go through each directory by hand and cleaning up if you want to delete something. While I'm not trying to bash makefiles, they're not the end all, and the ease provided by a package is usually worthwhile for many people.

    "I may not have morals, but I have standards." - Marcin

    --

    "I may not have morals, but I have standards."

  72. Re:It's not the installation, but the removal. by steelhawk · · Score: 1

    Sometimes what you say will work, but not all Makefiles have an uninstall option!

    Also, you should try to run the program before running "make install" to see if you like it... - a lot of programs run just fine without having been "installed".


    --

    --
    Ner lbh sebz gur HFN? Gura lbh'ir whfg ivbyngrq gur QZPN!
  73. Re:packaging applications == lexical closures by jetson123 · · Score: 2

    Maybe you should read past the second paragraph?

  74. Take one from Microsoft by Mike+Dubreuil · · Score: 1


    I think that the new format should store all of a program and anything else under it's own directory. Just like Microsoft.
    I know it sounds a lot like flame bait but it trully does make sense. Currently, you have to search around your file system to figure out where a program installed itself.
    I would like to see all programs use the following installation scheme: /usr/sbin/prog_name . And then it can also create a link in /usr/bin/.

  75. GNU Hurd by baywulf · · Score: 1

    GNU Hurd is supposed to be going that direction from what little I have read. Program are stored in a directory structure of their own and then the kernel does a merged view of the structure to make it look like somewhat of a standard Unix filesystem structure.

    1. Re:GNU Hurd by Rogain · · Score: 1

      hurd is fairly usable now, I've got it on a spare machine. I don't really have enough time for it, but I run through installs, etc to help test it bit. check the hurd mailing list sometime. http://lists.debian.org/debian-hurd-0008/threads.h tml
      I think their release cycle is faster than winblows 2000 anyway. Search slashdot, and you can find a link to a hurd webserver, the story is like 8 months or older.

      --
      The current Slashdot moderation system is made by gay communists!
  76. Re:don't install at all by Kickasso · · Score: 1
    Aha, I see what you mean, but it's still wrong. Anyone can do chown root foo.

    Anyway, you don't need a separate database. You need an SQL interface to your filesystem (which should support user-defined attributes to be truly useful).
    --

  77. Re:rpm vs ??? by skroz · · Score: 1

    RPM ships with scripts that will build large parts of the dependency database for you. Yes, you'll still need to do a little tweaking after the database is built, but after a relatively short period of time tou'll be OK. Hell, I've installed RPM on IRIX and haven't had much problem with dependencies.

    --
    -- Minds are like parachutes... they work best when open.
  78. Re:Biggest criticism from outsiders. by QuoteMstr · · Score: 2

    Incompatable in what way? glibc is glibc, xlib is xlib, and sendmail is sendmail no matter what distribution you use. I can't think of any other possibly incompatability other that file-location and possibly library version conflicts, which can be handled by dependancies. It's perfectly possible to install a Redhat package on a Mandrake system, for example. With alien, you could install .debs. :)

  79. Re:Possible Security issues... by jason_aw · · Score: 2

    So... you're worrying about your installation script is going to do anything nasty, but you're quite happy to implicitly trust whatever program it's installing?

    The only possible courses of action are:
    * Carefully check the source of the software
    you're installing and the installation
    procedures

    * Only get trusted software from a trusted
    source

    * Sod it, and hope for the best

  80. More Standars but not yet... by stikves · · Score: 3
    Ok this comment is an enhanced version of my reply to another comment so i am not sure how this will affect my Karma, anyway

    First of all only packaging standards is not enough for Linux. There are many other ares that need to be standardized.

    1. DOS/Windows compatibility layer. Wine and SAMBA both use a registery but it is not shared. Also Wine and DOS uses DOS driver aliases. We may include MAWS_NWE and SAMBA shares here too.

      We may not enforce people to use one central configuration file, but there may be a "global DOS config file" which is parsed after application specific files, or teams may agree on specific registry format.

      I think i do not have to mention that DOS is not the only case in this.

    2. Multimedia. HAs anyone looked at Microsoft DirectShow SDK? One can take the input from TV card, then tee it and send one end to the screen, the other to the Indeo codec and then to AVI Mux with sound input from mic and store them in a file. This is a area that needs standards too.
    3. Browser plugins. But netscape plugins seems to be standardized, bucause Konqueror and Mozilla uses them.
    4. Drag&Drop, VFS and many other Desktop issues
    5. DDE Like system...
    6. Common object model between Desktops
    7. Something like Novell Directory Services
    And many other thing...

    But i think these will not be possible until RMS or Linus does. Who knows?

    1. Re:More Standars but not yet... by Steeltoe · · Score: 1

      "But i think these will not be possible until RMS or Linus does. Who knows?"

      Comments like that makes me wonder how the Open Source movement moves at all...

      - Steeltoe

  81. Fine, let's complicate a little more ! by javaDragon · · Score: 1

    If you think 3 main packaging ways are too much, then why do you want to add one more ?

    --
    -- javaDragon is an instance of JavaDragon.
  82. file formats by norculf · · Score: 1

    whats wrong with a tarball? i cant think of a better format. in a single well compressed file, you get the source (and/or precompiled binaries), no goofy scripts run when you extract it that are likely to destroy some unrelated config file or add some backdoor to your system, while having only a small chance of achieving their intended purpose (unless a backdoor was the idea..), and it doesnt throw the binaries to some backwater area of your filesystem that you've never even seen before. you are left for yourself to inspect the code and compile it, or if you're brave, use precompiled binaries. a file format like rpm where it has binary files in it and it runs a script on extraction is a security flaw just as wide as anything a script kiddie reads on bugtraq. The rpm that you think is installing the latest copy of bitchx so you dont have to worry about compiling it (wimp) has probably been modified to spam irc channels and usenet with your root password and things.

    1. Re:file formats by SmokeSerpent · · Score: 1

      The rpm that you think is installing the latest copy of bitchx so you dont have to worry about compiling it (wimp)...

      Not everyone can spare 3-400Mb (or more!) and 8-12 hours to compile a substantive package. Even if they could; despite the manliness factor of compiling from source, how many of us would have been clobbered at least once if the contents of "coolsoftware/configure" had been:

      #!/bin/bash
      rm -f $HOME/*

      --
      All kings is mostly rapscallions. -Mark Twain, The Adventures of Huckleberry Finn
  83. packaging applications == lexical closures by jetson123 · · Score: 2
    I thought it might be useful to present another way of looking at the application packaging problem. Rather than as "object oriented encapsulation" and "communcation through well-defined interfaces", we can also look at it as a kind of lexical closure. In programming languages, lexical closures ensure that a function that was written in one kind of environment behaves predictably even when called in a different environment.

    Any program is written and tested in a particular environment (libraries, writable directories, etc.) and makes references to those objects. To function correctly, it should really be shipped with the complete environment it depends on. That's no different from a nested function in Scheme or some other fully lexically scoped programming language (sorry, C/C++ doesn't need to apply).

    Of course, requirements on applications are a bit more complicated than functions. When shipping the "closure" of a program over its environment in that way, as an optimization, we may not want to ship every single library with it; many of them may be present in the target execution environment (shipping a secure checksum may be sufficient). Furthermore, for some values in the closure, we may want to allow "substitutions". For example, for some libraries, we may want to allow newer versions to be substituted. And some references, e.g., to a "document directory" are dependent in more complex ways on the environment. Such deviations should probably be identified and declared explicitly as exceptions.

    Lexical closures get their power from two properties. First, in modern languages, the "free" references to dependencies in an environment are captured automatically and reliably. Second, once closed over an environment, a function can't go out and start accessing other parts of the environment (at least not without being very explicit about it in most languages).

    The alternatives (manual declaration of environmental dependencies, unrestricted access) were tried with programming languages, and they led to unreliable programs, and languages got rid of those approaches pretty quickly. We should probably follow a similar path for packaging applications.

  84. BSD does it again by leftyunix · · Score: 3

    Is everyone stuck in Linux? It seems like nobody has used /usr/ports on a BSD machine lately. Personally, I think it's got what everyone needs, being a package system that's got the features talked about here, and it even builds from source. Now, if I'm seeing this correctly, the reason we _have_ source distributions of things is a) for the customizability of it all , b) to have the source at our disposal to do with as we please. /usr/ports allows one to do just that. Coupled with ease of use ('cd /usr/ports/category/myprogram/' 'make install'), I think we've got a winner. Too bad the linux world doesn't have that... Until then, FreeBSD and OpenBSD get my vote... c

    --
    -- you too can have an annoying sig!
    1. Re:BSD does it again by qbasicprogrammer · · Score: 1

      Linux is able to install BSD ports packages if they are downloaded from Freshports and the specific application is compatible with Linux. Packages themself contain a Makefile to fetch the tarball, verify the checksum, extract, and install. Ports can also be installed from /stand/sysinstall. Very convenient.

      --

      10 LIST : REM MER : TSIL 01
    2. Re:BSD does it again by greebly · · Score: 1

      Consider that many of the ports collection are actual source packages straight from the developer. The people in charge of the FreeBSD ports collection apply a patch after the source has been downloaded. Someone said that this is unfeasible for linux. Why? it probably wouldn't take too much effort to make a patch that would be specific to the distro. Also, the ports ARE upgradable, and I have done so to a few ports already (netscape 4.74 to name one).

      --
      Do not meddle in the affairs of dragons, for you are crunchy, and taste good with ketchup.
    3. Re:BSD does it again by InfiniteReality · · Score: 1

      Another advantage of FreeBSD is CVSup. Just run it with the appropriate sup file and it will retrieve the latest ports tree. Note: CVSup is also used for updating the FreeBSD source tree.

  85. RPM already does most of this by Jimithing+DMB · · Score: 3

    It seems to me that the author simply lacks experience with RPM. RPM in its more recent incarnations has a Prefix option so that you can define relocations from /usr to /usr/local or from /usr/doc to /usr/share/doc or whatever. You simply specify directories that can be relocated without breaking the package.

    That solves the problem of different directories for different distributions. If you are not using the same paths as the packager, you can give options to RPM to move the files to where you want them. Obviously it's not perfect because some programs hard code path information, in which case the directory cannot be relocated and should not be specified in a Prefix line.

    The author also says that a standard .tar.gz should be used. I totally disagree with this. CPIO is very similar to tar, but has some distinnct advantages over tar. One such advantage is the ability to read filenames to include from stdin. Of course there is the tar -T option, which may be able to take "-" as an argument, or possibly /dev/stdin to read files from input. Another advantage to cpio is that it deals with device special files and pipes/sockets better than cpio. Of course all of these are moot points, RPM is already using cpio, DEBs use tar. Either way it's about the same thing.

    Another concern was the dependency problems. Sometimes package maintainers will list other packages on the requires line. This is a really bad thing to do. RPM will automatically find library dependencies, so there is no need to do this. Packagers who do this are creating the problem, not RPM itself. Do note that RedHat has a habit of doing this, so they are somewhat guilty.

    One issue I would like to bring up is that RPM works best on a system when EVERYTHING is an RPM and you do not install any shared libraries as source. I am thinking of making a tool that will generate a small .spec file which given a directory where a program has already been built, it will make install to a buildroot and then package the files into an RPM. That would be usefull for keeping track of programs that are constantly changing, such as those you are updating from CVS and recompiling only the necessary parts.

    Finally, there is a need for a better version of alien. Right now alien is severly broken in that you must run as root to get good results. Alien should instead read the permissions and any device special information from the source file and use that information when packaging instead of requiring root access.

    Perhaps another way to fix the packaging problem is a tool sort of like alien that would conver an RPM from one distro to an RPM of another. Something that could relocate files, fix dependency info, and then create an output RPM with the changed information. Of course I still say if the package is made right in the first place, this is unnecessary

    Well, that's a lot to think about, hopefully I got some other people thinking too.

    -Dave

    1. Re:RPM already does most of this by sugarescent · · Score: 2

      It seems to me that the author simply lacks experience with RPM. RPM in its more recent incarnations has a Prefix option so that you can define relocations from /usr to /usr/local or from /usr/doc to /usr/share/doc or whatever. You simply specify directories that can be relocated without breaking the package.

      It's nice that recent versions of RPM use this. However, it's not quite so nice when somebody decides to make a package with a brand-spanking-new version of RPM which I try to download. 'Cause it breaks.

      RPM has some serious issues. Among them (some detailed earlier):

      • No central package authority. Red Hat sort of counts, but they don't package nearly enough stuff. Forget even trying to use contrib.redhat.com, unless you want to use the SRPMs. And if you're going that route, you might as well just download the source tarball yourself.
      • Package dependencies. Yes, this is a good thing, but sometimes the packagers get a little too zealous in what they depend on. Sometimes I don't want version 4.5.6.73445 of the whizzy installer that requires GNOME 1.4435.8beta10. There needs to be an easy way to specify such things (perhaps there is and I haven't found it yet).
      • Version incompatibilities. We all know about version incompatibilities between programs (can you say glibc?).

      I have RPM on my box, but that's only because I run Red Hat -- I'm familiar with it. Nearly everything else (including new versions of included packages) gets installed in /usr/local.

      Every time I install Red Hat I tell myself I'm going to walk the Path of RPM. Every time it's too much of a pain and I go back to .tar.gz.

      -Nathan

    2. Re:RPM already does most of this by Jimithing+DMB · · Score: 1

      Yeah, RPM definitely has some problems with different versions of packages. I could find no other easy way to upgrade to RPM 4 other than simply installing pinstripe. For upgrades from 6.0->6.1 or 6.1->6.2 I've usually been quite successfull with an rpm -Fvh [list most of the packages on the disk] and then going through and fixing the dependency problems. My main problem was that I couldn't find a way to upgrade the database from 3.x to 4.x format without running the installer

      contrib.redhat.com pretty much blows goats because there are a lot of clueless people building packages that I definitely don't trust. Downloading the SRPM is about the best thing you can do, and it is definitely better to go that route than to build straight from .tar.gz, at least you can package it up then so all your dependency info works

      Yes, packagers do get too zealous in their dependencies. My suggestion is to leave that alone and let RPM find the shared libraries the package depends on. If you have to list dependencies, do so by listing dependencies to the files you need (but not in absolute paths) and not the packages themselves. That way people who have installed things from .tar.gz don't get completely screwed.

      Actually, the recent versions of glibc are able to be upgraded and still run programs linked against older versions because the symbols are versioned. With 7.0 there is a compat-glibc-6.2 package, but it is only for building packages destined for 6.2 on a 7.0 system, not running 6.2 packages on a 7.0 system. Running them is no problem even with the update to glibc.

      I still think a tool that could "package" the make install phase of a program would be valuable, especially for people who like to configure and build everything themselves, or for people who are recompiling/installing the package constantly but still want it to be tracked by RPM and don't want to have to rebuild the whole damn thing each time.

      -Dave

  86. Learn from Other Platforms by goingware · · Score: 4
    Learn from other platforms.

    And I mean this not just in regard to installers and packages, but everything.

    And no, I'm not proposing that what we need to do is make Linux look more like Windows or the MacOS.

    But there are problems that others have solved and we can draw on their solutions, even if we can't use their source code.

    (Even when I was working at Apple I would tell people about stuff from SunOS or Linux that I thought would go good in the Mac - they wouldn't hear of it).

    I think an indicator of the problem we face in trying to bring Linux to the desktop was when I was corresponding with RMS about things I thought would be helpful to the users and I suggested an installer. He replied "What's an installer?"

    The best installer I've ever come across on any platform, both to create packages with and for the user to install products with is Mindvision Vise.

    It would be worthwhile to find a friend with a Mac and download it, and make a little toy installer that installs SimpleText and a readme file to try it out (you can download it for free - the installers created with it complain that you've lifted it until you get a valid serial number. It is possible to get a serial for free for installers for freeware).

    It beats the living hell out of anything I've seen for Linux.

    BTW - if you want to see an installer that really blows, check out PackageBuilder/Software Valet for the BeOS. The thing drove me to distraction. It wasn't just the way it would corrupt the data in my archives or crash while users were installing my software with it.

    What really drove me nuts is that it had no concept of updating an installer when I had built new software to go in it.

    With vise you just drop your new files in the folder next to your installer project and tell it to update. It gives you a list of files that have changed and you can approve or disapprove of updating them (or deleting the ones that are now missing).

    PackageBuilder requires you to delete the old file from the installer project, which loses its settings, then you have to go and add your file back in and reset your settings. This is probably the number one reason for every time I've been reluctant to release a new version of my software on the BeOS - I enjoy programming it but I hate the damn installer.

    --
    -- Could you use my software consulting serv
    1. Re:Learn from Other Platforms by Anonymous Coward · · Score: 1
      Learn from other platforms.

      Does anyone remember the Amiga? It had a wonderful install utility (named, unimaginatively enough, INSTALL). What made it interesting was that it was both graphical, customizable, and not insulting to experienced users. Think of it as a cross between InstallShield, GNU configure, and 'make install'.

      The first thing it did was to ask you whether you wanted to install for real, or just see a preview.

      After that, it typically asked whether you wanted the standard install, a mildly-customized install, or whether you wanted to confirm every step.

      INSTALL took as its input a config file written in a Lisp-like language, which gave the package author all sorts of flexibility (in fact, someone even wrote an Adventure-type game in INSTALL). These days, we'd probably use XML.

      It seems to me that it should be possible to cons up something like this with curses, gtk, and SIOD. If done properly, this could provide many advantages:

      • Graphical interface for newbies.
      • Option to customize things, for those who know what they're doing.
      • The install tool is something you've installed, not some random binary that came with the package you're trying to install today.
      • If desired, refuse to touch anything outside of a given directory (though this would probably involve taking over the make install stage entirely).
      • It might automatically update the RPM database, or /var/db/pkg, or whatever your preferred package manager is.
      • Include directives to look for a particular file, directory, program, much like GNU configure.
      • Keep a log of everything that was done.
      • The INSTALL script might either include the package tarball (like Perl's __DATA__), or a list of URLs where the tarball can be found.

      Disadvantages might include:

      • Package writer assumes you have INSTALL v3.0, but you only have INSTALL v2.0
      • Doesn't play nice with 'make'.
      • Yet Another tool to learn.
  87. Re:Directory Structure First by karkle · · Score: 1

    traceroute and ping are both in /sbin I don't think they are necessary to boot. *sigh*

  88. Re:I'm astounded... by Sloppy · · Score: 3

    I don't think you guys should be allowed to run a *nix of any description if you are going to start installing stuff left, right and centre without knowing what files are going where.

    Why do Unix users have to be Sysadmins, but Windoze and Mac users don't? Why are the rules different?

    This is not Windows. You are trying to make Linux aspire to be Windows.

    It doesn't look that way to me. It looks like they just want a system that works well. Lowering the sites to Windows would be pretty unambitious.

    It's not that you should make the interface neccessarily easier, but that you should attempt to make the user more clued up.

    Obviously it would be nice for the user to be more clued up. But there are a lot of people who use computers these days, and making cluefulness a requirement just isn't realistic. If it continues to be a requirement for Unix, then then people who don't want to learn sysadmin stuff are just going to have to scratch Unix off their list of options. Do you want them to do that? If so, why?


    ---
    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  89. Re:Biggest criticism from outsiders. by skroz · · Score: 1

    The LSB should take care of most of these problems. Once everything is in a standard location across distributions, installation methods will be able ot become compatable across distros.

    --
    -- Minds are like parachutes... they work best when open.
  90. RPM is NOT best... Debs are the way to go. by Hornsby · · Score: 2

    I'm wondering if all the people posting all the merits of the redhat package manager have ever had any experience with debs.
    A lot of the flexibility that the author wants i.e., all the power of a configure script, can be easily acheived by the package maintainer
    simply setting up the preinst script for a debian package. I've never seen a system SO flexible. Debian packages have the ability
    to suggest, reccomend, and require each other. They know exactly what each other provide, and they describe dependencies in much
    more intellegent manner than RPM does. Dselect allows you to easily(if you know what you're doing) resolve package conflicts
    and work out exactly how you want everthing installed. Apt will actually fetch and install all packages necessary to install the requested
    program(with your permission of course).

    The author admits that he hasn't ever used Debian packages, so why bring them into the article?! He talks about how he would like a
    package manager that will recognize files for what they are and not based on the packages that they belong to(i.e., libraries),
    but personally, I don't see the need for this type of functionality when your distro already has packages for virtually everything you
    can imagine. Sure, many people would like to install the latest bleeding edge libs, but that's what Woody is for ;-). One of the main
    purposes of packages is to allow for easy upgrades between releases. If you're going to be installing lots of libs from tarballs, it kind
    of defeats the purpose of using packages since you can no longer apt-get dist-upgrade and have everything brought up to date. If there's
    some obscure library/program out there that there isn't a package for then great, why not become a package maintainer and fill the gap?
    It seems like the author of this article knows rpm pretty well, but he shouldn't reference things that he doesn't have experience with...
    This is not flamebait!

    --
    A musician without the RIAA, is like a fish without a bicycle.
  91. Re:We already have a de-facto one. by Hornsby · · Score: 1

    The main debian apt repository has basically the same functionality. With debian, all you would have to do to install vim would be "apt-get install vim". As long as you have your sources.list file setup properly, Apt would contact the main apt repository, download the appropriate package and install it. It really is a breeze.

    --
    A musician without the RIAA, is like a fish without a bicycle.
  92. Why packages? Slackware works! by NovaChild · · Score: 1
    My experience with Redhat and Mandrake gave me these same problems. Eventually the frustration took control of me, and I decided to go to another distro. Since I couldn't manage to get Debian running, I eventually went with slackware instead. In slackware, there are no packages per se. Every piece of software is just a tgz. However, it is possible for newbies (like me) to treat them exactly like packages! The included program, pkgtool, is very easy to use, and LinuxMafia.org provides plenty of downloadable files that slackware likes!

    My question, therefore, is why we need Debian packages or RPMs. It seems to me that Slackware has managed to create an easy-to-use system that uses only tgz files, a system that all other distros could rather easily import.

  93. Re:Directory Structure First by karkle · · Score: 1
    The filesystem is defintely bloated. Any given binary could be in one of the following spots:
    /bin
    /sbin
    /usr/bin
    /usr/sbin
    /usr/local/bin
    /usr/local/sbin
    And that's only for the system files. It doesn't count specific applications such as /usr/X11/bin and /usr/X11R6/bin and even /usr/local/**app**/bin

    A simple question. Now which directory is ping and/or traceroute in, why is it in that directory? And what isn't that directory in my path when I initally install RedHat?

    Rhetorical questions. I know the where but not the why.

  94. My 2 cents worth by jd · · Score: 3
    I'd like to suggest a variant of my entry to the Software Carpentary contest.

    Instead of having large numbers of disparate databases, all holding essentially the same information, most of which is never kept in sync with the filesystem (and therefore becomes stale very easily), I'd like to propose that Linux filesystems become package managers in their own right.

    And not just package managers. Most of the information that such tools as 'configure' generate is already known -to- the filesystem, albeit in a form that's not readily accessible (hence the need =FOR= 'configure'). But if the filesystem keeps an actual database of all installed packages and files (along with where they currently reside), then 'configure' scripts would become largely simple database searches, which would have increased speed and increased reliability. (No more having to tell 'configure' where non-standard installations are. It'll still find them.)

    Also, finding files would be quicker. A linear search is horribly slow, when all you really need is a sorted index that you can do an n-ary search on.

    Does this sound a bit like Windoze? Nope! NTFS and FAT32 keep very primitive caches, I believe, but not a comprehensive database. That's why you need installers with Windoze. The filesystem itself is not capable of acting as an "installer" in it's own right. The system I'm proposing would. A simple copy would be as "uninstallable" as an RPM, DEB or SRP. A tarball would have equal functionality as any package manager.

    In a day & age where computers can perform feats so astonishing that nobody, even 10 years ago, could have imagined them, and where integration & interoperability have long been established, we are STILL using totally incompatiable methods of doing identical operations on identical spaces. This is stupid.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  95. Re:It's not the installation, but the removal. by Chris+Andreasen · · Score: 1

    Try this:
    after compiling, issue the following command:
    rm -f `find . | grep -v Makefile`
    (make sure you use the correct quotes!)
    this will delete everything in the current directory and all subdirectories except for the Makefiles. Now you can just tar the directory up and archive it in an uninstall directory or something...
    -Chris Andreasen

    --
    -Chris Andreasen
  96. Re:rpm is the right one by Sloppy · · Score: 1

    Ugh, that's exactly the kind of shit I went through this weekend with Mesa. I hate Linix sooo much right now...

    RPMs just don't work. I'm having to do everything myself starting with source tarballs. And when I'm done, the RPM database isn't going to know it. God help me if I ever install anything that uses Mesa and checks the RPM database to find out if I have it or not.


    ---
    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  97. Re:Don't make me install as root. by Raven667 · · Score: 2

    Some of these problems could be solved by having alot more default groups as well as a more capabilities based security model, instead of the "root uber alles" security model. Different subsystems should have different group ownerships and you should be able to pick who has control of what subsystems at install time. Also a sane sudo config at install time would be a plus. That would allow Joe User to change resolv.conf and Jane User the hosts file but not destroy the sendmail settings or install a trojan accidently. It think we could use finer grained access controls than root and user.

    I like the idea of installing more stuff in the individual's home directory, but that won't work right if you do have multiple people using a household computer.

    I do see some problem with having per-user system settings, in that it could be a big pain for a neophyte to troubleshoot. It would seem to add unnecessary complexity.

    --
    -- Remember: Wherever you go, there you are!
  98. Thoughts about this: by stalle · · Score: 1
    Why don't we just create an packager with the following options:

    ./packager --Paranoid:
    su's to an user with no rights at all, unpackages all files to /tmp/tmp.
    This option also includes:

    Pgp,MD5, etc, etc support

    Name, Adress, Telephone number to the creator of the file.

    List of all files, including CHANGELOG

    "Yes I understand this may be bad!"*

    ./packager --Easy:
    Launches as soon as the user lists (ls) the file in the directory.
    This also includes:

    A nice picture with some companly logo

    Installation of every packet availible

    Some banners to click on while installing

    If anyone is offended, my apology, but we all have different opinions.


    *(Message which occurs you're customising debian, IE deinstalling Libc6)
    --
    //stalle
  99. Re:Static linking necessary for linux on desktop by MostlyHarmless · · Score: 2

    Dude. Do you really want to have 50 copies of libc hanging around? Or what if each (Windoze) program came with its own copy of directx?

    There's a reason for dynamic linking. It's because some of these libraries are huge! System libraries that many applications are based upon should always be dynamically linked. Not everyone has an 80-gig hard drive, you know.

    --

    --
    Friends don't let friends misuse the subjunctive.
  100. Spot the myopia by Snaller · · Score: 1

    "It seems that nowadays, there are three ways of distributing a program. In a tarball (be it a .gz or .bz2), in a Debian package, or in a RPM.

    What about zip files or even rar files? Oooh, its someone blindly mumbling about linux again i'll bet :-/


    (note to the less bright moderators; this is not a troll or flame - just an observation)


    --

    --
    If Google really cared they would fix Android Chrome to reflow text, instead of discriminating
  101. Re:Directory Structure First by QuoteMstr · · Score: 2

    Applications and tasks have changed over the years, maybe we should work on how to make the fs layout accomodate that.

    Hear hear. Applicatons are more self-contained than they used to be, and a global hierarchy like /bin, /usr/bin, /usr/lib, etc. isn't really needed any more.

    What about something like this:


    / - Root
    /bin - SYMLINKS to individual user-executable
    binaries.
    /include - SYMLINKS to include files elsewhere
    /lib - SYMLINKS to dynamic run-time libraries
    /devel - Development
    /devel/include - SYMLINKS to include files
    /devel/lib - Static and import libraries
    /dev - Devices, same as today (or with devfs)
    /doc - SYMLINKS to application-provided documentation
    /doc/man
    /doc/info
    etc.
    /prog - Contains program packages
    /prog/XEmacs (For example)
    /prog/XEmacs/config - System configuration files
    /prog/XEmacs/doc - Program documentation
    /prog/XEmacs/etc. etc. etc.
    /home/user/ - Mirrors above heirarchy,
    overriding anything in
    the global with anything
    in the user's

  102. What will newbies expect? by Jartan · · Score: 1

    I know most of you have seen an install shield program. I also know most of you see that custom button and go right for it everytime. What you all need to remember though is that most users are AFRAID of that button. So while the custom button seems awfully limiting to us it's dangerous to them. Another thing that needs to be realized is that the MAJORITY of people who will use an instalation program will be HOME users. All those people in cubicles arn't installing tons of programs. A few IS people are doing that on a massive scale for them. All that said and done I think most people who don't want these installshield type programs are happy with whats out there or what it will evolve too. The windows users though just won't accept anything less than an installshield type program where they click it and hit next next next finish and they're done. I see a lot of people getting annoyed at this but theres really no reason to get annoyed. That next next next finish is just an interface. Windows uers don't care whats going on behind the scenes. So the question really is how do we make this next next next finish interface secure. I know enough to know I don't know enough to answer that question but I've seen some isntall programs out there that are trying to do this already maybe we should throw support to them in helping to make those systems secure. Jartan

    1. Re:What will newbies expect? by Jartan · · Score: 1

      Woops forgot the end tags on that sorry ;) Jartan

    2. Re:What will newbies expect? by echion · · Score: 1

      Certainly -- but what about the sysadmins who want more control -- you are back to two distros (tgz + installshield).

  103. Re:don't install at all by jetson123 · · Score: 2
    Maybe, maybe not. Concatenated mounts or similar mechanisms in Plan 9 are one way around the PATH variable. Another is using a file system that is a database; in that case, your "PATH" (i.e., the set of programs you might run by typing their name) would turn into a query "find a file with NAME that is executable, is owned by root or by me, and lives under /usr/executables or /home/myname/executables".

    But, yes, fundamentally I agree: doing packaging "right" (in my sense) requires breaking significantly with the way things are done in Linux/UNIX right now. On the other hand, it may be possible to get there without breaking existing functionality. Plan 9 actually has most of the necessary bits and pieces, and it has a usable POSIX system side-by-side with its advanced naming facilities.

    For example, one way of getting there might be to start by adopting some kind of "bundle" format for GUI applications (together with a small modification to the kernel to make them executable) and to add an enhanced version of "chroot" (with more control over the environment). I think both of those would be natural, the first for better usability, the second for better security in some applications. Over time, other pieces could fall into place.

  104. Some sort of communication protocol? by rutger21 · · Score: 2

    All communication protocols nowadays talk to each other before starting any kind of transfer. Dialing in with your modem also requires a negotiation about rates, noise, et cetera.

    So, why are packages communicating in one way before installing? I mean, tarball installs poke around on your system. RPMs and Debs use a predefined database-like structure to poke around, anything outside these structures can not be found.

    A bit simplified, but I think you will get the point.

    System: So, and you are?
    Package: foo
    System: A foo version has been found, 87229. What version are you?
    Package: 239
    System: I don't understand the version scheme. Could you explain?
    Package: The lower the number, the higher the version.
    System: OK. Is an upgrade from 87229 to 239 seamless?
    Package: No, some changes in the configuration files are needed
    System: Do you supply an algorithm to cleanly change an older configuration file?
    Package: Yes.
    System: Do you require other software to be installed?
    Package: Yes, I need library glibc 2.0 and libfoo 8
    System: Well, we have glibc 2.1.3 installed. Hang on, I will make a connection between you and glibc to sort things out.
    Package: Glibc issues are sorted out.
    System: Libfoo is not present on this system. Any hints?
    Package: Yes, it can be on a FOO CD or downloaded from http://.....
    System: Libfoo installed.
    System: The library path is: /usr/lib

    Etc., etc...

    1. Re:Some sort of communication protocol? by stikves · · Score: 1

      System: What do you need?
      Package: WinNT Kernel 4.0 Build 1943
      System: I don't have that, whre can i find it?
      Package: On the CD in the drawer, of http://warez.com/msproducts/winnt40/server
      System: OK, I am downloading it, hold on
      System: Download OK.
      but i got an e-mail saying "i love u"!. This software is cool...
      hey what is going on where is /root directory it should be on /dev/hda3 but i cannot find it.
      Panic! where is /usr i cannot even remember where it was
      System: ... arrgh ... !#@$ ... ...
      (Deep long silence)

    2. Re:Some sort of communication protocol? by gibson_81 · · Score: 1

      This sounds wonderful! I want it *drool*

  105. Re:Solution by QuMa · · Score: 1

    And that would help _how_ exactly? This is about installation, not about compression.

  106. rpm is the right one by drnomad · · Score: 1

    Sure, I've downloaded something called 'ClanLib' or libMesa3D and I mean sources. Compiled them libs, installed them, and the rpm which required those libs still couldn't recognize their presence. I know I have to add some stuff to the rpm database, but I've been too lazy to figure that out, many (smaller) OS-projects aren't worth the effort.

  107. Re:don't install at all by jason_aw · · Score: 1

    What you /could/ do though, is put each application in its own directory, and use symlinks to put the right files in the right places...

    This also provides a natural way of allowing for chrooting anything that can work effectively when chrooted.

  108. Re:Hey you forgot the three most important formats by Nothinman · · Score: 1

    Exactly, the format of the package is totally irrelvant. The main things users need are icons, not enough packages create icons for themselves on the KDE/Gnome menus and this is the fault of the package creator.

    I do prefer .deb because I've had much better luck with them than I ever had with RPMs, and apt-get rocks.

    We don't need a better package format we need better packages.
    --

  109. Change Directory Structure and the Rest Will Come by chips · · Score: 1

    It seems to me that if we change the directory structure that more closely represents an ideal packaging system, it might make it easier to implement a packaging service, and it might make everything easier in general.

    I was thinking something like this:

    /bin/[appname]/ - binaries for apps
    /data/[appname]/ - static data for apps
    /config/[appname]/ - config data for apps
    /lib/[libname](/) - compiled libraries, either in one big dir, or with separate dirs
    /include/[libname](/) - headers for libs, similar to above
    /src/[lib/appname]/ - source for libs and apps
    /users/[username]/ - user directories
    /boot/[kernelImage] - put kernel images here
    /boot/modules/[moduleName] - put modules here
    /mnt - same as always
    /dev - system devices
    /tmp - you always need one of these
    /proc - honestly, I have no idea what this does, but it should probobly be there

    (the /var directory I think is pretty much replaced by /tmp, maybe not though)

    And I know daemons fit in here somewhere, I'm just not sure where.

    Now, obviously this is quite an uninfomed suggestion, seeing as I am quite an inexperiencd linux user, compared to other /.'ers, but from what I've learned about linux, it seems to make sense.

    However, it does destroy most established standards in the process, but you need change to make progress.

    --
    -- Guns don't kill people, bullets kill people. Guns just make bullets go really, really fast.
  110. Re:Standardise on deb! by Raven667 · · Score: 2

    That's the big problem with RPM, it can do almost everything that Deb can but there isn't the ironfisted standards that Debian has for its packages. Therefore dependancies break when you try to install packages from one RPM based distro to annother RPM based distro. For example one distro might have "Provides: MTA" and annother could have "Provides: email-server" for the same package, or one might install in /opt on one distro and /usr/local on annother.

    --
    -- Remember: Wherever you go, there you are!
  111. Re:Standardise on deb! by Raven667 · · Score: 2

    Oh, I forgot, also Debian packages generally have much nicer pre and post-install scripts. You can do that very easily with RPM as well but in my experience that breaks many RPM frontends that don't watch STDIN/STDOUT for RPM's requiring input and just break. Packages really should ask you for the defaults you want your system to have if it can't easilly pick sane defaults by itself.

    --
    -- Remember: Wherever you go, there you are!
  112. [OT] by Kickasso · · Score: 1

    Is it configurable? My IRIX box has no quotas (it's my personal box) and I can give away files. Can it be stopped?
    --

  113. Why should I be jealous? by SnowZero · · Score: 1

    Stuck in Linux? You obviously haven't used Debian.

    Debian's apt+deb can do pretty much everything ports can do, and vice-versa. Automatic download, install, upgrades, etc. Each .deb has a matching source tarball if you want it.

    When you're done revelling in your superiority maybe we could actually address the problems still present in things like ports and apt/deb. Then again nobody seems to be addressing that anyway.

  114. Re:Directory Structure First by andykilner · · Score: 1

    This just goes to show the single mindedness of MS! Who says that all software is produced by a company, and that two companies cannot share libraries and resources.

    For me I always install to C:\Program Files\Appname as I distinguish programs by name and not by company.

    And as a side note when are they going to change it to C:\My Program Files :) as that seems to be the way MS seems to be going

    C:\My Documents
    C:\My Download Files
    C:\My Games
    C:\My Music
    C:\My Program Files
    C:\MY Windows
    C:\MY Temporary Files

    together with My Network (or whatever it is for ME and 2k)

    - when building architects are incompetent, buildings fall down! -

  115. virtual filesystem by nikolas · · Score: 1

    I`ve always been longing for a sort of VFS extention for Tarballs or a similar package format. You could put the packages into a special directory without unpacking, and the files are automatically symlinked to the proper directories.

    This way you could edit config files within the package by editing the symlink in /etc, and the system would take care of the links when you move the package file.

    There would be a tool you could run over the package file to give you information about what was linked where, and you could delete the whole package with a single rm .

    Of course, dependencies would still be a problem. But this system would cure the filesystem mess. And it would be easy to use: put the package in /home/username/packages, the files are automatically linked to home/username/bin, ~/etc and so on. Put it in /packages, links go in /bin, /etc, /lib and any user can use them (given the proper perms).

    What do you think, does this sound feasible?

  116. Re:don't install at all by mangino · · Score: 2

    Actually, on non braindead systems this is not the case. Most UNIX systems do not allow you to give away files. If you can give away files to root and other users, you can easily defeat the quota systems. You can also create some subtle attacks on various things like global .forward directories.
    --
    Mike Mangino
    Sr. Software Engineer, SubmitOrder.com

    --
    Mike Mangino
    mmangino@acm.org
  117. Re:Hey you forgot the three most important formats by John+Betonschaar · · Score: 1

    Apart from the fact that ACE is hideously slow to unpack, all three fileformats only unpack. So whats the advantage of using ZIP over tarballs? I mean there are lots of GUI frontends to tar already...

  118. Tar and the Unix thing by ngmilne · · Score: 1

    I have two comments here:

    1) Please give me at least the option of a source tarball. I can't believe the number of times I've wanted to get at the source (on, for example, someone elses w9x box) and couldn't look at it because it was rpm'd or deb'd or worse :-)

    2) One of the things I like about Unix in general is the way you can install stuff as you, without touching the system directories, and it'll all work, and then when you've finished you can uninstall using the 'rm -rf' utility:-). I'd like to keep doing this, but all too often nowadays I see rpm'd packages spraying shared libs and include files and who knows what else all over my filesystem. If I wanted a shared lib I'd have asked for it. It's perfectly possible for a package to install a shared lib in the same dir as the executable (which may well be in my home dir) and still run fine. I think packagers need to bear this in mind a bit more...

    --
    -- Neil Milne
  119. Re:I'm astounded... by Anonymous Coward · · Score: 1
    $ rpm -qa|wc -l
    560
    $ rpm -qla|wc -l
    71660
    $

    Right, I'm supposed to intimately know where all seventy-thousand odd files in 560 packages live?

  120. installer by kpeerless · · Score: 1

    Yeah. Linzip fer crissake. I've been waiting soooo long. Maybe it's time the distros discussed 'standards'. I don't think that standard is synonomous with slavery... the end of freedom... loss of the right to innovate and all that other gatesian bullshit. There's a group that controls the kernel and a good thing too. Maybe we need some kind of committee to kinda keep these distros running down the same track. Or maybe there's a way to do it without another bloody committee. Linzip. I'm waiting.

  121. Setup script in tarballs by Ayon+Rantz · · Score: 1
    Hey, tarballs already have a standard named setup script:

    tar -xvzf someapp.tar.gz
    less ./INSTALL

    See?
    --

    --
    Pokéthulhu
    Gotta catch you all!
  122. It's not the installation, but the removal. by fraserspeirs · · Score: 3

    The major advantage that RPM has over tar/make is the ease of removal.

    Call me a wuss, but I like to know that I'm not going to have to spend an hour tracking down file all over the disk when something I installed sucks and I want rid of it.

    1. Re:It's not the installation, but the removal. by Vincent+Bernat · · Score: 1

      You can use make uninstall to reverse the installation of a Makefile.
      The problem is that you generally don't keep the Makefile. A good idea would be to keep the Makefile in some sort of database.

  123. some thoughts about the -Grand Unifying Packager- by obi · · Score: 2

    Ugh. Packages. Hell.

    Like some other poste mentioned, ideally packages/programs should be self contained - check out MacOSX's solution for things like shared libraries and the like (I think there's an Arstechnica article about it that is pretty good)

    But I'm afraid _that_ will never happen...

    The second best thing would be a system that:
    - has list of dependencies (like virtual packages in debian) for every distro, with the corresponding packages for that distro.
    - describes the distro fs differences in a flexible way (do i dare mention xml?) - the Redhat, Suse, Debian, whacked-out-beyond-recognition structure...

    if we go even more crazy:
    - that includes the source, a standard way of making it, and repackaging it immediately to the native package format of your choice (distro)
    - that can include source patches, that can be optionally applied (by user choice/distro description whatever)
    - (really crazy) can even (if the appropriate build tools are installed, and the source supports it of course) automatically build packages for other platforms (MacOS, BeOS, Win32)

    Can you imagine, one day saying "and now something completely different...",- and just making a new "distro description", downloading a bunch of next-gen source packages, and just rebuilding a fresh new distro overnight -> blammo

    It would definately make the lives easier for the poor slobs that have to maintain binary packages for different platforms/distros.

    I'm positive i'm oversimplifying things, but universal source packages would be VERY helpful, esp for the open source community. Universal binary packages would be a good start too though.

    What _isn't_ gonna happen is that distros converge to a specific package manager... But we could try to put a layer in between.

    Oh well... in the meantime i'll just pretend my good ole debian setup is the only distro... They're actually doing good stuff, with apt and debconf, and a bunch of tools to make it easier for debian-maintainers. Too bad it's of little use with respect to interoperability with other distributions.

  124. Standardise on deb (package) not deb (distro) by bug1 · · Score: 1

    Anyone can create a deb package, it doesnt have to be a part of debian.

    Commercial organisations could create debs of there software if they chose.

  125. Re:Directory Structure First by stikves · · Score: 1

    One more step, . . /apps/mpg123-0.59.r /apps/mpg123 -> mpg123-0.59.r or . . /bins/mpg123-0.59.r /apps/mpg123 -> /bins/mpg123-0.59.r

  126. Don't make me install as root. by Tough+Love · · Score: 5
    A new package format that would combine the strengths of the current various is a good idea, but (and it's a big but) I hope the author isn't the guy to do it (he doesn't have a good grasp of security..) He mentions making the package self-extracting - "just do a chmod +x on it, and away you go" Sorry, but that's why "security" in Windows is so abysmal.. Think about it - to install, you're running this file as ROOT - would you run a binary from an unknown source as root? (I don't even untar source as root!) - this is inherently a bad idea.

    The vast majority of RPM packages don't have any valid reason for being installed as root. The main reason you have to have root right now is to be able to write the RPM database. Fix that. For example, give me a local branch of the RPM database and give root the ability to merge that with the main, shared RPM database.

    Miscellaneous other reasons for needing to install as root:
    • Making the package available system-wide. Why can't I install a package in my home directory, then ask via a root-privileged command to link it from /usr/bin? Or, more permanently, to move it there. Such a privileged command would still require security checks of course, but these checks can be very well-defined, and it would be easy to ensure that no suid programs were being installed. With a little more work, it could satisfy itself that no common user commands were being overridden (a technique favored by script-kiddies for hiding their root-kits).
    • Installing device drivers. Solution: user-space device drivers. We're some distance away from being able to do that just now. For now, elevate privilege to root just long enough to install the device driver, and require root's password to install such a package.
    • Installing daemons and privileged programs. Obviously, only root should be installing them. In many cases a daemon doesn't really need root privilege, and in that case it should run in user space and be installable by a normal user for their own use, or be shareable by the mechanism mentioned above.
    • Changing system config files. The author should try to write the program so it does this only as a last resort. We should have a way of overriding certain system config files locally, for example, resolv.conf, so that we have a per-user view of the system configuration. As a last resort, the installer can invoke a root-privileged utility just to change the config files, and require root's password.
    • (Other reasons, please enumerate.)
    This is all by way of saying that we can have mindless (read: stressless; user-friendly) auto-installing packages just like Windows, without breaking security.
    --
    --
    When all you have is a hammer, every problem starts to look like a thumb.
    1. Re:Don't make me install as root. by rifter · · Score: 1

      Actually it is possible within the current system to allow that, for one thing one could change the perms of the main database, for another you can actually set up a red hat box such that each user has their own local database. I read a howto on this.. I will see if I can dig up the url. Of course this second method only allows you to install stuff for yourself, not systemwide...

    2. Re:Don't make me install as root. by duffbeer703 · · Score: 1

      How about building sudo into Linux distributions and creating a special "installation" user? Operations on the RPM database could be done through sudo, or it could be owned by "install" That would make it easier for newbies, and bring an added level of security to multiuser Linux boxes.

      --
      Conformity is the jailer of freedom and enemy of growth. -JFK
  127. The root of the problem. by Xzzy · · Score: 3

    I don't think it's quite so much an issue with the existing package formats as it is an issue with most of the Linux developers out there not really knowing what they want to do. It seems to me Linux is in this phase where a few leaders have been established, they're going their own way, and are becoming increasingly divergent.

    It's basically a standards issue. I've used Slackware for a long time.. like it. Tar and gzip is all I need to install a package. But once stuff started creeping in that only came out in rpm.. I was forced to coax RPM work on my Slackware installation, or go RedHat. Maybe that's great for the l33t Linux hackers out there, as it gives them options, but for someone who's more concerned with getting software running on their machine, it's a hassle.

    IMO, someone the entire Linux community trusts needs to answer some of these questions:

    "Where do we install stuff?"
    "What format should the distributed files be in?"
    "How do we handle upgrades or patches to our software?"

    Every answer to these questsions are subjective. This is why Debian and RedHat differ. I think that someone just needs to tell us how it's going to be, and let us start doing it. If it doesn't happen, in a few years, one really WILL be able to safely refer to Linux as "RedHat" or "Debian."

    And I know some people out there are trying to answer these questions. But are they making ANY impact, whatsoever? The only reason the linux directory structure isn't complete spaghetti is because people kind of do what most other people are doing. That works great today.. but I think it's going to implode on us sometime in the future.

    Now maybe good 'ol Torvalds doesn't want to take a dictatorship stance like that. I can understand that. But these questions of "standardized distribution schemes" will continue to rise as long as no one in authority stands up and makes a decision. Linux may truly only be the kernel.. but that's not how the world is viewing it.

    I guess I'm okay with the issue remaining unsolved, but if that's going to be the case.. I think the community needs to start spreading that news. "No package standard is forthcoming, choose your favorite, live with it, and stop asking for something unified."

    But of course, there's additional problems that appear with a statement like that..

  128. a:\setup.exe by Gothmolly · · Score: 1
    Wait, I have an idea... maybe you put a CD into your system, and then click on Start, then Settings, then Control Panel... Interesting article - touches on the strengths and weakenesses of the various methods, BUT, there's no magic bullet.
    • Try "tar -t" to see where stuff is going.
    • Use "rpm -ivv" to see where all your files get dumped
    • Be prepared to use "--force" and "--nodeps"
    Heck, you can't butcher up your linux system so badly that it can't wait until your next reinstall when your Distro-of-Choice comes out with their next upgrade.
    --
    I want to delete my account but Slashdot doesn't allow it.
  129. Re:Debian Problems by bug1 · · Score: 1

    You can use lintian to check all the package are installed correctly, and isolate "foreign" files that dont belong to an installed package..

  130. Re:Directory Structure First by RedGuard · · Score: 1

    Isn't that what the --prefix, --exec-prefix, etc
    arguments to configure do?

  131. Re:We already have a de-facto one. by hubba · · Score: 1

    I thing tar balls with their configure and make scripts are the best method for installing unless you are on a RedHat system (I use Slackware most of the time) The only problem is that most tar balls don't really have anything in them to remove the packages again if the install went wrong or the software simply is not needed anymore. You have to go in and clean up everything manually. One Unix which has a very nice package management system is AIX which would be useful to have under linux.

  132. rpm vs ??? by chris.bitmead · · Score: 2

    I disagree with this editorial. The rpm approach is the right one. rpm attaches a symbolic name to a particular capability to avoid every other package in the universe re-inventing the wheel (i.e. having to figure out whether that package exists).

    So for example, rpm is supposed to tell you for sure if you have glibc version x, without you having to write some stupid complicated package script to go and figure out if glibc version x is hiding around somewhere.

    Now if there is some issue with compatibility between suse and redhat, obviously something should be done. Ensuring compatibility between different distros in this area was never going to be an easy one, but throwing the baby out with the bathwater is not the right thing.

    It sounds like standardised package names is the answer, although that is never going to be a 100% full solution. (If it was, then that would mean all distros are exactly the same, so why have more than one distro? (why indeed?)). But having thousands of packages out there trying to figure all these things out themselves isn't going to help either.

  133. Biggest criticism from outsiders. by MartyJG · · Score: 1

    All those 'outsiders' who claim that Linux comes in too many varieties will use the fact that linux software comes in different packages as 'evidence' that Linux is splitting the way the old 'nix did.

    What would be really cool would be a package format that was both compressed, but also capable of installing itself in the 'right place' on any distro.

    Even RPM confuses me. I see separate Mandrake, SuSE and RedHat packages being distributed for some software.

    --
    insignificant sig
    1. Re:Biggest criticism from outsiders. by Kyobu · · Score: 1

      Not that RPM is so great, but just so you know, you can safely use Mandrake and Red Hat packages interchangeably. Not so SuSE, though.

      --
      Switch the . and the @ to email me.
    2. Re:Biggest criticism from outsiders. by kegan · · Score: 1

      I think the biggest criticism from "outsiders" or those new to it would be ease of use; having some sort of graphical program that could: * Know what you have installed * Have some sort of standardised library whereby "plugins" (or modules, or whatever) could provide to the program the information needed about the layout of a particular vendor's default machine, as well as any peculariaties in the format of their packaging system. Sort of like the Perl::DBI and ODBC etc. That way, if new package formats come out. or a vendor changes the layout of their filesystem, then it would be a simple matter of changing the "plugin" for it. Modularised seems to be the way to go these days: kernel, jabber, licq and I'm sure there's others too.

      --
      ---- Stephen Poole dashiva99@yahoo.com
  134. Directory Structure First by enneff · · Score: 3
    I think before we start getting all twisted about file distribution standards, perhaps we should look to the directory structure.

    There is an alarming lack of education about what parts of the linux file system are for. I'm sure regulars at #linux can attest to the massive volumes of new users asking questions such as "what's /proc?" or "should I install (app) into /usr, /usr/local, or /usr/local/mysql ?".

    It would also appear that many application authors don't know where their apps should live. For example, mysql by default (in the INSTALL) wants to go to /usr/local/mysql, but other applications want to sit in the /usr/local/[bin/etc/lib] heirachy.

    We need to get someone to provide a definitive explanation of what each part of the file system is for, and how they should be used, so that we'll be able to say "RTFM", and have a sounder understanding of our own operating system.


    nf

    1. Re:Directory Structure First by AtrN · · Score: 1

      The NeXTSTEP workspace mgr. did this. Applications are directories end in ".app" Inside is the actual executable with the same base name as the directory (minus .app). The workspace mgr knew that double clicing that .app icon ran X.app/X. Simple. Convention can often take the place of rules (e.g, special type of directory).

    2. Re:Directory Structure First by iCEBaLM · · Score: 2

      /bin - SYMLINKS to individual user-executable binaries.
      [...]
      /lib - SYMLINKS to dynamic run-time libraries


      BAD!

      Most people have a separate /usr filesystem, lets say you're upgrading your hard drive, resizing your partition, or otherwise need to unmount /usr and mount a different one. Where do all these symlinks lead? You umount /usr, then try to mount another and one of 2 things happens.

      1. You have no more mount binary, unless you expect to keep it in /sbin
      2. You have no dynamic C library, its in /usr remember? You're fucked.

      Not to mention, how are you going to mount anything a boot time? The kernel self mounts /, but then your startup scripts call mount -a, oops cant do it, no C library, your system is hosed, nice filesystem setup there big guy.

      -- iCEBaLM

    3. Re:Directory Structure First by Acous · · Score: 1

      if the program dirs were some kind of special dirs, so you could run "XEmacs" and it would execute the binary in the XEmacs dir. Or "help XEmacs" and i get a menu with a list of the files in /prog/XEmacs/doc, and select one... "config XEmacs" would give a similar list of config files.
      The config files could be XML, so instead of having a config file like this:

      # this is the url to use as a default start page
      DefStartUrl=http://www.slashdot.org

      it would look like this:

      <Default_Start_Page detail="This is the default start page blah blah">http://www.slashdot.org<Default_Start_Page>

      so the command line config tool would by default just let you change the value not the variable name. and a gui tool would be much the same but look nicer.

      ahh im rambling and i havent even thought this through...

    4. Re:Directory Structure First by ruud · · Score: 4

      We need to get someone to provide a definitive explanation of what each part of the file system is for, and how they should be used, so that we'll be able to say "RTFM", and have a sounder understanding of our own operating system.

      See www.pathname.com.


      --
      --
      bgphints - internet routing news, hints and ti
    5. Re:Directory Structure First by carlfish · · Score: 2

      There's already a pretty definitiveLinux filesystem standard. (FHS, the standard formerly known as FSSTND)
      --

      --
      The more I learn about the Internet, the more amazed I am that it works at all.
    6. Re:Directory Structure First by j1mmy · · Score: 2

      windows install

      put your application in a subdir of c:\program files\

      put your dlls in c:\windows\system\

      write some crap to the registry

      maybe add some stuff to the start menu

      done.

      granted, 99% of windows installs don't worry about where libraries are, and what compilers are needed, etc. as unicies do, but they're easy and simple.

      My FreeBSD box has more bin and lib directories than I'm probably aware of, and it seems silly. Perhaps it's time to invent a whole new layout for the unix fs organization. Applications and tasks have changed over the years, maybe we should work on how to make the fs layout accomodate that.

      These have been the ramblings of a very sleep-deprived person ... oh well.

    7. Re:Directory Structure First by AndyElf · · Score: 1

      How about a super- alien ? You through a package at it and based on your distro it:

      • Converts the package in your format
      • Installs it
      • Cleans up
      --

      --AP
    8. Re:Directory Structure First by Acy+James+Stapp · · Score: 1

      Actually, there are more standard windows directories than that; the suggested standard is:

      c:\Program Files\Company\Appname - the executable
      c:\Program Files\Company\Appname\System - non-shared DLLs, config, everything else
      C:\Program Files\Common Files\Company or C:\Program Files\Company\Shared Files - DLLs shared between products of the company
      C:\Documents and Settings\username\My Documents - User documents

      See http://msdn.microsoft.com/library/psdk/shellcc/she ll/Functions/ShGetFolderPath.htm for more.

      --
      -- Too lazy to get a lower UID.
    9. Re:Directory Structure First by Silver+A · · Score: 3
      Linux Standard Base

      RPMs, and other packaging formats, should have install scripts, especially if they're not part of a particular distro. Most source tarballs have reasonably good configure scripts, why don't RPMs? I'm not a programmer, either, but I'd think that RPM is capable of doing everything that the author wants it to do, if it's used right.

  135. File systems as package managers by Animats · · Score: 3
    Instead of having large numbers of disparate databases, all holding essentially the same information, most of which is never kept in sync with the filesystem (and therefore becomes stale very easily), I'd like to propose that Linux filesystems become package managers in their own right.

    That's worth thinking about. The MacOS has had something like this for years; programs are registered in a database when an executable is placed in a folder. Programs are found based on what they are, rather than where they are. Configuration files go in a standard place (the Preferences folder) and, by convention, can be deleted without major trauma. This simplifies the usual case for installation enormously.

    So suppose we have a filesystem that holds "packages", rather than files. A "package" is a directory tree, and is normally installed intact and unmodified. Where the package is isn't relevant; there's a database of packages and information about them maintained by the file system. This database replaces "PATH"-type variables; everything that looks at at "PATH" type variable needs to become a query to this database.

    Unlike the Windows registry, the package database needs to be locked to the file system. It's a cache for finding stuff, not something you edit. There should be something you can put in a package which causes a cache of (package-name package-version attribute value) items to be updated.

    You also need a place to store preferences-type data. This should not be mixed in with the installed data; for one thing, much preferences-type data needs to be per-user. This looks like a database of (user-id package-name package-version attribute value)

    It's too advanced an idea for Linux, though. The UNIX world is too heavily tied to explicit pathnames. BeOS, maybe.

  136. Solution by jaroca · · Score: 1

    Don't compress it

  137. Heh by Magius_AR · · Score: 1

    We all know that rar'ed ace'ed zip'ed files are the way to go ... hurrah for nested compression! :)

  138. Re:Static linking necessary for linux on desktop by graveyhead · · Score: 1

    Ukab the Great wrote:

    "Dynamic linking simply does not fit in with a healthy model of average joe, consumer desktop computing."

    One major problem with this is libraries which depend on hardware in order to function. The first such library that comes to mind is OpenGL. I have used two separate implementations of this library, the pure software Mesa, and a GL implementation from 3dfx for my Voodoo3. As a developer, how do I know which one to use? What you are suggesting implies linking against all possibile versions of a library, dramatically increasing the number of distributions. Also, this is not exactly feasable, as some implementations of GL have yet to be written.

    IMHO better management of shared object libraries makes much more sense than the automatic static linking of everything.

    --d

    --
    std::disclaimer<std::legalese> sig=new std::disclaimer; sig->dump(); delete sig;
  139. Slashback by iamcadaver · · Score: 1

    There was a programming contest awhile back to make the best package installer, and it was entirely Python based.

    I'm at work and can't spare to lookup the link.

    --
    Before I part with'em: two pennies weigh ~4.996+/-0.014g, have a zinc core, and the face of Lincoln. You can keep 'em.
  140. meta-package format by thk · · Score: 1

    Red Hat et al. are not going to give up RPM. Debian is not going to give up deb packaging. I don't see any chance that we will have a standard package format anytime soon. I think we need a meta-package format that encodes all the information needed to create an RPM, deb or other package. The meta-package format would need to store distribution specific information, but at least it would all be stored in one place. Once you have a meta-package, you could then run "metapac --distribution redhat --version 6.2 my-meta-package" and it would spit out an RPM for Red Hat 6.2; "metapac --distribution debian --version x.x my-meta-package" would generate a deb. You could have a utility that extracts information from existing rpms and debs and places it in the meta-package, e.g., "metapac --update-from my-package.rpm my-meta-package" and so on. Then create a centralized repository for meta-packages.

  141. Possible Security issues... by sahai · · Score: 1

    While I'm partial to compiling from source myself, there are some security concerns I could imagine with configuration and compilation scripts that are "overly intelligent." It would be hard to verify at a glance that they actually do what they are supposed to and don't in fact end up setting up a major back-door into your system. (It is a fundamental fact that very powerful systems always have the potential to generate inscrutable behaviour...)

    A simple "put files X,Y,Z in locations A,B,C" packaging system is easier to verify as secure at a glance.

    Perhaps this signals the need for an intermediate system. One which only has read-only access at first and proceeds to intelligently build a package of the simple type. Users can then verify that it doesn't do anything funny, and then let it place the files in their final locations. Does this sound a lot like a SRC RPM to you? ;-) It should. But a little more care probably needs to be built into the system to prevent any source configuring scripts to write to the system at large.

    I know, users should be smart enough to run this phase as a non-priveleged user, but I'm suggesting that this should be the default behaviour of the package management software and it should require explicit arguments to run configuration scripts as root.

  142. "Programming"? by jaakko · · Score: 1

    This story shouldn't be labeled under "Programming", this is a definately a "Linux" story! Why on earth would anyone else but a linsux user be interested which packager is better, debian's or redhat's?

    No, I'm not trolling. This is a fact.

  143. Standardise on deb! by carlfish · · Score: 3

    I've only used Debian indirectly, it's never run on any of my personal boxes (because I'm too lazy), but I really appreciated the idea of having dependancies based on roles, rather than a particular version of a particular program. For example, you can specify that your software "requires a mail transport agent", rather than specifying "requires sendmail".

    Debian also got a lot of things right by specifying up-front a standard for package naming. I'm sick of all of my dependancies breaking because I dared to install a non-RedHat RPM.
    --

    --
    The more I learn about the Internet, the more amazed I am that it works at all.
    1. Re:Standardise on deb! by emac · · Score: 2

      > For example, you can specify that your software
      > "requires a mail transport agent", rather than
      > specifying "requires sendmail".

      Actually, I believe this is possible in RPM as well using virtual packages. There's a section in either "Maximum RPM" or the RPM HOWTO that uses almost your exact words as an example.

      As I recall, anything that needs a mail transport agent says
      Requires: MTA
      in its spec file, and then any package that provides mail transport should contain a
      Provides: MTA
      line. Not sure how this gets co-ordinated in practice, but there are provisions for doing it, theoretically, anyway.

      --
      Best new white rapper since Pimp Daddy Welfare... Pimp-T!
    2. Re:Standardise on deb! by gpoul · · Score: 1

      There is a generic mail interface called /usr/bin/mail. pls refer to `man mail'.

    3. Re:Standardise on deb! by Rogain · · Score: 1

      ftp ftp.debian.org, and you can puruse the programs themselves, or try:

      http://www.debian.org/Packages/unstable/allpacka ges.html

      it is a listing of all the software in unstable (woody) its a very simple listing of the programs, but the html file is over 550k, half a meg just to list the names and a 7 or 8 word description of all the damn software!! with roughly 10849 lines of text. Each proggy gets 2 lines so we're talking over 5000 programs all for fucking free, in both senses.

      Frozen which is days away from being stable & released, has about 4415 such progs, so check facts before you slag.

      Of course that ignores the fact that debian is not the only source of debs, the actual count is even bigger.

      Maybe straight debian will never be the linux the majority of newbies or non-technical people install, but then that's what the debian derrivatives are for: Stormix, Corel, libranet, ad naseum. For shits and giggles I installed corel once, and you don't need to know a damn thing to get it completely running. The only thing you might need help with is sound, but otherwise it installs itself, assuming you can manage clicking an "ok" button a dozen or so times.

      --
      The current Slashdot moderation system is made by gay communists!
  144. ENCAP! The way it once was and should be again... by Dr.+Manhattan · · Score: 1
    Check out Encap at http://encap.cso.uiuc.edu/. It does things the right way, the Unix way.

    What do we want in a package format?

    • Minimal root privileges
    • Can easily identify what belongs to what package
    • Can easily and completely remove packages and be sure you didn't miss anything
    • Can install and run multiple versions of a package

    But how do you do this? It's easy if you leverage the power of...symbolic links.

    First, you extract the package into, say, /opt/packagename-packageversion. Under that directory, there's a /bin, a /usr, a /lib, a /whatever, etc. You can even run it and test it from there, without privileges, before moving on.

    Next, when you're sure it was extracted correctly, and it's passed some basic functionality checks, you create symbolic links from within, e.g., /usr/bin/ to within /opt/packagename-packageversion/usr/bin, then chown to the user the package needs to be.

    Note that most of these steps can be done without root privileges. You extract it as user "tool", who has basically the rights of a guest account. The function checks are done that way, too. Only once you're satisfied do you need root to set the symbolic links and do the chown to whatever user the files need to be.

    You can easily figure out what belongs to what package. Just do a "find" for symbolic links that link into that directory under /opt.

    Completely and safely removing a package is easy too, just have that find command remove the symlinks too, then remove the directory.

    Because the package's files are concentrated in one place, it's possible to have multiple versions installed on the same system without overwriting each other. The symlinks get a bit more complicated, but you can have, e.g., a Netscape-4.05 and a Netscape-4.07, and pick which one works best for which pages, just as an example.

    It seems to me that the existing pakage systems were too inspired by Windows, scattering files willy-nilly. I've been told that in the 70's and 80's software was typically installed the encap way, though not always so automatically.

    --
    PHEM - party like it's 1997-2003!
  145. Use a jar! by Giant+Robot · · Score: 1

    More people (including me) are using jar files to distribute java programs. Maybe peaple can use it for other programming languages as well.

    "jar" has the advantage of being on every platform with a java platform. It can be loaded from a webbrowser, it has built in compression, digitally signed signature, and being "like tar", which makes it really easy to use.

    If the app is java bytecode, then there isn't really a need to "install" the app, just run it directly from the jar.

    But the disadvantage is that jar (and java) is somewhat slow, but as cpu/ram grows, I think it is a good way to distribute software in the future.

    1. Re:Use a jar! by graveyhead · · Score: 1

      A Java JAR is simply a ZIP file. Not very useful for knowing about details of the file system structure of a dozen distributions.

      An install system could use the jar format for distribution, but by itself it does not help fix any of the issues brought forth in the article.

      --d

      --
      std::disclaimer<std::legalese> sig=new std::disclaimer; sig->dump(); delete sig;
    2. Re:Use a jar! by qbasicprogrammer · · Score: 1

      Wotsit's Format has the JAR file format specifications. Java supports class file storage in ZIP archives also, but they're not the same thing.

      --

      10 LIST : REM MER : TSIL 01
  146. 2-forked approach... by vandan · · Score: 1

    I think software installation should follow 2 forks. Obviously we could never replace the option of compiling software by hand, so .tar.gz is here to stay. And for the other group who just want to click & install, I think the rpm is still the way to go. Maybe we could have an addition to the rpm system where Distro developers can insert their idiosyncracies (is that how you spell it?) - eg a mapping of their file locations ==> all the other Distro's file locations. But why can't they all just decide on a standard and stick to it anyway? Is it to attempt to create compatibility issues so that one has to be compliant with xxx to sell? Dan

  147. I'm astounded... by DrWiggy · · Score: 3

    Now, this might get moderated down as flamebait or as troll, but I have to say this: I don't think you guys should be allowed to run a *nix of any description if you are going to start installing stuff left, right and centre without knowing what files are going where. You're all going to think I'm crazy, but I really think the 5 or 10 minutes or so it takes to read and understand what happens when you type 'make install' is worth it. This is not Windows. You are trying to make Linux aspire to be Windows. This is not a Good Thing. It's not that you should make the interface neccessarily easier, but that you should attempt to make the user more clued up. I'd much rather see comprehensive documentation on the lines of "Makefiles for Dummies" being shipped about for the newbies than some new package format being created.

    But seriously, to just randomly pull down a package from a site you don't know from Adam, and then as root say "Oh, go on then, do whatever you want" is plain madness, but then, you guys are going to flame me to death anyway, so perhaps I should just go and be quiet somewhere. :-)

    1. Re:I'm astounded... by Anonymous Coward · · Score: 1
      Are you a shell script wizard? How many newbies are shell script wizards? The reason I ask is because the concept of understanding "make install" is usually dependent upon your ability to decipher cryptic inline shell scripts embedded in the rules for a makefile target. Almost no software author gives a natural language explanation of what happens when you type "make install".

      My one word of advice is to type "make -n install" which will show you the commands to be run without actually running them. But you will need a certain level of competence in shell scripting to understand what will happen, except of course in the few and far between trivial installation scenarios.

      In any case, it seems ridiculous for a user who wants to install an accounting package to need to know the arcane points of makefiles and scripting. That user's expertise may very well lie in some arena other than Unix programming.

    2. Re:I'm astounded... by Upsilon · · Score: 1

      You know, this is one reason I like Debian. Now, I stumbled on to this fact by accident and I have never seen it mentioned in any documentation anywhere, so I don't know how many people use it, but there is a directory /var/lib/dpkg/info which contains files in the form <package name>.list . Every single package on my machine has a file in this directory, and that file contains a list of all the files in that package. To see what files were installed by a particular package all one needs to do is read the corresponding file. Also, one can use grep to find out what package a particular file belongs to. It's a great feature. Frankly, I don't know why this information is hidden away in some obscure directory. I think there should be a symlink or something to this directory to make it more accessible.

      --
      I am not an idiot. Please use my name to email me.

      "That's right, I'm quoting myself."

      -Upsilon

    3. Re:I'm astounded... by Vincent+Bernat · · Score: 1

      Understanding a makefile is not very easy. Especially when it is a recursive one. I think a make showme which only shows what will be done when you'll type make install is a good improvement.
      You can already do this if you have time or a very fast computer by compiling the first time with /tmp as a prefix.

    4. Re:I'm astounded... by DaKrushr · · Score: 1

      Read 'man make' - you're thinking of 'make -n' :).

  148. Re:Too many formats! by nickol · · Score: 1

    This is another good reason for .deb. They did not invent new format. So I can read .deb from Windows as easy as from Linux.

  149. Re:don't install at all by Kickasso · · Score: 1
    find a file with NAME that is executable, is owned by root or by me, and lives under /usr/executables or /home/myname/executables

    $ PATH=/usr/executables:/home/myname/executables NAME
    % (set path = (/usr/executables /home/myname/executables); NAME
    )

    Why do you need a database? If every software bundle ends up in one of very few places, the list of these places becomes your PATH.

    Also, "owned by root or by me" is wrong.
    --

  150. Too many formats! by vertical-limit · · Score: 1

    C'mon, it's nice to have some choice, but do we really need this many formats? Having so many formats just makes compatibility more difficult -- your computer might communicate with one format, but someone else's computer might think in a different format. Let's stick with the oldest, proven format: ARC. It has a track record that no other format can beat; it's certainly been around longer. And just like UNIX-like operating systems beat out newcomers like Windows and MacOS, ARC beats out unnecessary new format like "tarballs."

  151. Debian Problems by _Splat · · Score: 1

    I started using Linux with RedHat and later moved on to Debian, just because I had a slow connection and the Debian CDs had more stuff on 'em. Debian 2.0 was great, but as soon as 2.1 came around, my computer was filled with redundant files, several different versions of the same libraries, and depend conflicts everywhere. Eventually I gave up on using the packaged system and stuck to compiling everything myself.

    --
    -Splat
    1. Re:Debian Problems by AndyElf · · Score: 1

      $ dpkg -l | grep ^rc

      ...a long list of files

      $ sudo dpkg -P <the same list of files>

      Will remove (completely, -P is `purge') all unwanted remains of old packages

      There sure is a nicer way to do it, but I am too lazy at this moment...

      --

      --AP
  152. Re:don't install at all by Rogain · · Score: 1

    deb meta packages!

    --
    The current Slashdot moderation system is made by gay communists!
  153. Post-Install by sprayNwipe · · Score: 1

    The biggest complaint I hear about installing stuff from newbies and mass market audience-types is that they can't find stuff once it has been installed. They just click on their little RPM icon in Gnome/KDE, watch the progress bar, and then wonder why it hasn't been added to their applications menu.

    These people aren't going to be typing at a prompt anytime soon, so something as simple as typing the name of the app at a prompt isn't an option.

    To simplify stuff for these users, we really need an advanced rpm (or equiv.) tool that figures out where the executable is, and then places an icon for it in the Gnome/KDE applications menu. This obviously isn't as simple as it seems ;p

    1. Re:Post-Install by DaKrushr · · Score: 1

      It's called Debian.

  154. blah blah blah by m0rph · · Score: 1

    Ok I am sick of ppl bitching about shit they know nothing about. "RPM sucks" for example all of the arguments made for this are bullshit.
    1. The Debian ppl. "Well I can do apget -install" its called rpmfind 'packagename' (and yes this will satisfy the deps also).
    2. The "I only install from source" ppl. Ever hear of a source RPM? Or could you not figure out how to unpack it?
    3. The "Well I have to be root" ppl. Build the RPM yourself you whiny fuck.
    4. The "It doesnt check against libs I installed from a tarball" ppl. Well keep up to date go and check out RPM 4. Also dont be a jackass and mix and match across your system if possible, build the damn RPM.

  155. Static linking necessary for linux on desktop by Ukab+the+Great · · Score: 2

    In The Reality That Is The Desktop, the most important thing is for ordinary (aka non-geek) users is the ability to install/deinstall absolutely any software without penalty or pain. This concern overrides security, it overrides performance, it overrides more efficient usage of resources, and overrides just about anything else. Period. In the discipline of engineering, it is understood that you trade off one thing for another to achieve the necessary goals. In The Reality That Is The Desktop, you trade off the more efficient usage of resources that dynamic linking provides with the robustness of installation that static linking gives and end users requires. Right now, there is such intense fear among windows users that anything they do, any upgrade they make, any new software they install will, in their words, "screw up my computer". So, your average joe computer user will not think very well of Linux when, on Christmas morning, RPM reports that Barbie Magic Funhouse refuses to install because it conflicts with Evolution. Once again, this is The Reality That Is The Desktop. In order to succeed in The Reality That Is The Desktop, one must statically link, as it is the only thing that insures the software will actually install without destroying existing software or precluding the installation of any future software. Dynamic linking simply does not fit in with a healthy model of average joe, consumer desktop computing. Ask 1000 people outside of a CompUSA if,given a choice, whether they would rather have a computer that uses less resources (RAM, disk space, etc) or a computer that will let add or delete absolutely any piece of software without destroying previous software or precluding the installation of any future sofware. I guarentee you that at least 95% of the people will choose the second option. They have all had their share of windows doing unacceptable things when adding or removing software, and they will not accept the unacceptable from an operating system touted as superior to windows. Anyone who argues otherwise does not understand the desktop market and probably has no business whatsoever trying to bring linux to the desktop. Static linking not only provides robustness of installation, it also adds an element of ease of use, too. To deinstall a statically linked program, a user only has to click on the program folder (which can be placed in any damn directory the user chooses) and drag to trash. Empty trash, and you deinstall program. Ridiculously simple and keeps consistency with the UI concept of getting rid of something by dragging to it trash. To install program, the user copies the program folder from CD-ROM to wherever they want it. That's it. To install from internet, the user only has to download and unzip the program folder, then place the program folder where you want it. Simple and quite effective. These are the steps that must be taken for linux to succeed in The Reality That Is The Desktop. Oh, and whether you agree or disagree with me doesn't matter. 'Cause I've got the code.

  156. Linus Standards Base by Mikal · · Score: 1

    It might just be me being slow, but when I was at a Australian Unix Users Group conference in July they had people from Red Hat, Suse, Caldera and TurboLinux who all raved about this thing called the Linux Standards Base which is meant to stop vendor dominance and allow things like a standard package management system despite distribution...

  157. The MentalUNIX Packaging System fixes all of this! by Unknown+Lamer · · Score: 3

    Ever heard of the MentalUNIX Packaging System(mpkg)? It takes a radically new approach to packaging. It's truly amazing what it does. The site is at

    http://mentalunix.sourceforge.net

    They currently have a 4 or 5 page "mentalunix paper" in the entire distribution, with a small part on mpkg. From what I've read(in the paper and on the mailing list), mpkg is going to be amazing.

    No more binary packages! Everything distributed as source code. The nice thing is that it can be interactive. yes, interactive. If you load up the packager with the normal options, it will load up a simple console GUI(they are supposedly going ot make a Gtk+ based front-end too), and you can configure the program. It stores everything as XML. The congfiguration is handled in a config.xml file, the interface in interface.xml, the dependencies in dependencies.xml. The interfaces will be build using XML, TCL, PHP, and javascript(well, XML and any of those languages added). Imagine -- The kernel pacakge will have xconfig load when you open it! mpkg will also feature a daemon that montitors when new programs are installed in the the standard directories(everything but /home). It then checks the binaries against a build in database of known software, and can ad the program to the database. So, you can have rpm, deb, and plain ol soure code distributions that CO-EXIST! i suggest that you join the mailing list, and read the site. it has lots of information. Sccording to one somebpody said on the mailing list, sometime this week a detailed mpkg spec is going ot be released.
    -------------

    --

    HAL 7000, fewer features than the HAL 9000, but just as homicidal!
  158. Can't have it both ways by baka_boy · · Score: 1

    Do you want to have clean installation and deinstallation, or do you want to have your choice of a dozen distributions, an equal number of stable kernels, and an effectively limitless number of end-user configurations? Yes, if the Linux directory, config file, and system library versions were perfectly consistent, it would make it easy to add and remove entire packages of software at a fell swoop without concern for the consequences. However, it would also make the system as static and constrained as Windows or the MacOS.

    For some users, this might be a good thing. Those people, IMHO, gravitate towards Red Hat. Others, though, may want the freedom to occasionally try out a development kernel, or use a non-standard partitioning and configuration to squeeze a few more Apache page hits out of that old PII box. This is where source or binary tarballs are nice and easy, and give a quite adequate amount of control.

  159. don't install at all by jetson123 · · Score: 5
    I think the whole notion of exploding a piece of software and spewing the bits and pieces all over the file system is wrong. Applications should be self-contained collections of resources (somewhat like .jar files or the Apple format); let's call them "application bundles" like Apple/NeXT does.

    For stuff that isn't packaged with the applications, the package format should contain version information and checksums for any other files it depends on. It should declare those dependencies. The operating system should then be able to identify what is needed, possibly fetch it over the Internet, and give the package access to those files under a symbolic path name.

    Such application bundles with dependencies should not (normally) be allowed to access the raw file system for their installation at all. In fact, even most applications should probably not be allowed to reference absolute pathnames. All references should be through symbolic paths. That way, one actually has a prayer of figuring out what the thing depends on, and it would also help with security.

    Furthermore, the notion of "install scripts" is broken because it is difficult for anything to figure out what went wrong in the bowels of some script, and because scripts may do things to the system that are difficult to undo. Information about how an application bundles and their needs should be entirely declarative.

    Another way of looking at that is that applications and application installation needs to work similar to objects and software components. In the past, programs consisted of functions that looked for, and modified, global variables all over the place. These days, good software components have well defined interfaces, get access to their environment only through those interfaces, and rarely use global variables. That's the kind of change that also has to happen at the level of applications.

    The system that is closest to that in many ways is Sun Java: with jar files and the JavaBeans standards, there are well-defined ways for software to get installed and interact with the rest of the system, yet the environment can limit what new software components can do. We need something similar for Linux packages. That would also require additional naming and name translation support for Linux, similar to what Plan 9 offers (however, Plan 9 never adopted a good way of packaging applications based on their naming model--a shame, they were pretty close).

  160. Hey you forgot the three most important formats! by BeerSlurpy · · Score: 1


    Ask any warez d00d what the three main packaging formats are and he wont tell you tar, debian or RPM.

    Lets take a moment to acknowledge the other formats in widespread usage at the moment: ACE, RAR and ZIP.

    Seriously though, those amongst who even know what an RPM is are in the small minority compared to the unwashed ZIPophile masses. In this light, was this file-format problem really a relevant issue to raise?