Slashdot Mirror


Manage Packages Using Stow

dW writes "This article is about Stow, a software installation management utility for Linux that offers a number of advantages over the tried-and-true Red Hat and Debian package management systems. With Stow, you can package applications in standard tar files and keep application binaries logically arranged for easy access."

213 comments

  1. Stow isn't Perfect, alas... by dkf · · Score: 5, Informative

    We (the Tcl core developers) have had problems in the past with Stow, mainly because it relies on being able to specify the installation process at 'make-install' time instead of normal 'make' time, leading to messed up baked-in paths... :^/

    --
    "Little does he know, but there is no 'I' in 'Idiot'!"
    1. Re:Stow isn't Perfect, alas... by Anonymous Coward · · Score: 5, Informative

      try encap. predates stow.

      http://encap.cso.uiuc.edu

    2. Re:Stow isn't Perfect, alas... by virtual_mps · · Score: 4, Informative
      We (the Tcl core developers) have had problems in the past with Stow, mainly because it relies on being able to specify the installation process at 'make-install' time instead of normal 'make' time, leading to messed up baked-in paths...


      I'm not exactly sure what you're unhappy with, but it sounds like a build problem rather than a stow problem, IMHO. With stow you can build the program to expect either the "real" path, or the "stowed" path, depending on your purposes. (Using the "real" path means that multiple versions can be installed in the stow tree and used simultaneously with an explicit path, while using the "stowed" path means that things like config files are in an expected location like "/usr/local/etc".)
    3. Re:Stow isn't Perfect, alas... by Uerige · · Score: 3, Insightful
      We (the Tcl core developers) have had problems in the past with Stow, mainly because it relies on being able to specify the installation process at 'make-install' time instead of normal 'make' time, leading to messed up baked-in paths....
      Why is this a problem with stow? You probably shouldn't hardcode paths into the binary, as that may lead to problems like this.
    4. Re:Stow isn't Perfect, alas... by StormCrow · · Score: 5, Interesting

      A quote from http://cr.yp.to/slashpackage/finding.html

      ``Software should never ever assume it knows where to get files from,'' someone once wrote. (He says I'm taking his quote out of context, so I won't identify him here.)
      Here was my sarcastic response:

      Yes, that's a very important principle!

      Let's take, for example, csh, which uses /etc/csh.cshrc and /dev/log and /bin/sh and many other files. The reason that all those filenames are listed in /etc/csh.conf is so that they can be changed.

      Now, some people want to move /etc/csh.conf itself. That's why csh looks for the /etc/csh.conf filename in a hashed /etc/registry.db file.

      Of course, on some machines, we need to move /etc/registry.db. That's why the registry filename is listed in a COMPILEDFREGISTRY environment variable.

      There's still the possibility of conflict with previous uses of the COMPILEDFREGISTRY variable. That's why the name of that variable is listed in /etc/fregistry_variable_name.txt.

      You say you want to move /etc/fregistry_variable_name.txt? You fool! We have billions of programs that /etc/fregistry_variable_name.txt at the top of main(). Everything _else_ has to be configurable, obviously, but /etc/fregistry_variable_name.txt isn't going anywhere.

    5. Re:Stow isn't Perfect, alas... by treat · · Score: 1
      mainly because it relies on being able to specify the installation process at 'make-install' time instead of normal 'make' time,

      Nonsense. This may be the suggested usage in the documentation, but the documentation is wrong. It almost always works to specify the path at configure time. I have installed hundreds of packages (on thousands of machines) this way. The only package that has ever given me trouble is pkgconfig, because other packages put files underneath its structure - some one-time tweaking of the links fixed this for good.

    6. Re:Stow isn't Perfect, alas... by dkf · · Score: 1

      Well, all I can say for sure is that we had (and probably still have - I don't remember that one being closed) a bug in our bugdb on this matter. IIRC, the consensus opinion was that what Stow was up to was blecherous, but that might just be my memory playing up...

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    7. Re:Stow isn't Perfect, alas... by Anonymous Coward · · Score: 0

      A "fix" in 8.3.5 and the 8.4* series makes it difficult to use stow, but a few lines of special configure options and one patch to undo said "fix" makes it work. The problem being fixed was that a shell variable ended up in the tclConfig file

      The "fix" that must be removed is:

      # libdir must be a fully qualified path and (not ${exec_prefix}/lib)
      eval libdir="$libdir"

      Getting rid of this leaves us with the original bug in the tclConfile file, bet we don't have a problem with that.

    8. Re:Stow isn't Perfect, alas... by buttahead · · Score: 1

      The quote is right, you OTOH... Well, lets just say that is why most apps let you specify files via a command line argument. The ones that don't allow this should take the 5 minutes to put it in.

    9. Re:Stow isn't Perfect, alas... by PapaZit · · Score: 1

      We (the sysadmins) have had problems in the past with Tcl, mainly because it relies on being able to build stuff at "make install" time instead of normal "make" time, leading to messed up baked-in paths... :^/

      --
      Forward, retransmit, or republish anything I say here. Just don't misquote me.
    10. Re:Stow isn't Perfect, alas... by Anonymous Coward · · Score: 0

      Fixing the Tcl makefiles would go a long way towards improving stow, Donal ;^)

      I build and install several hundred packages each year using stow, and Tcl is one of the half-dozen things that defeat it by having brain-damaged configure and make files.

      calling

      make prefix=/some/other/path install

      should not change configuration data, it should just change the base for installation of files. Tcl generates it's configuration files during 'make install' instead of during 'make', and that is where things go bad.

      Note that when you use 'make prefix=/some/other/path install' Tcl also fails to make the links from tclsh8.X to tclsh in the install bin directory.

      It used to be worse. somebody at Ajuba went about half way to fixing it. It really is not trivial to fix, so I can understand why it has not happened ;^)

    11. Re:Stow isn't Perfect, alas... by JonMartin · · Score: 1
      We (the Tcl core developers) have had problems in the past with Stow, mainly because it relies on being able to specify the installation process at 'make-install' time instead of normal 'make' time, leading to messed up baked-in paths

      No. Bad coders, no biscuit.

      'configure' (or something else) should decide where things are going to live.
      'make' should build things based on what 'configure' did.
      'make install' should install things WITHOUT CHANGING THEM.

      Anything else is BAD coding by developers. We user stow religously where I work and nothing is more annoying than dumbass software that compiles stuff during a 'make install'. I should be able to configure+make something so that it thinks it is going to live in /usr/local. I should then be able to install it into /usr/local/stow/foo-1.2 and stow it. As far as the program is concerned it actually does live in /usr/local. There is no reason why this cannot be done and in all the years (4? 5?) I having been using stow on several OSes (5?) I have never seen stow break anything. I know what I am doing when I do a 'make install prefix=/usr/local/stow/foo-1.2'. Assume that I have a very good reason for changing the target dir and don't build/change anything.

      To sum up: 'make' should build but never install, 'make install' should install but never build.

      --
      Serve Gonk.
  2. well... by virtual_mps · · Score: 4, Informative

    stow is not at all a "package management utility for linux". It's a perl script and runs on almost anything. I've used it to manage local packages on IRIX, Solaris, and various flavors of Linux. IMO, the great strength of stow is exactly local packages--it's a great way to manage a shared /usr/local or such. I suggest thinking of stow as a powerful complement to your native package management scheme.

  3. Re:Linux? by dkf · · Score: 1

    There's a difference between package managers and compression algorithms. Packaging is ever so much more than compressing the files in a hierarchy into one lump...

    --
    "Little does he know, but there is no 'I' in 'Idiot'!"
  4. Unix Directory Structures by Boss,+Pointy+Haired · · Score: 2, Interesting

    Whilst this is some way towards making Linux more user friendly (and ultimately gaining acceptance on the corporate desktop), what are the chances of anything being done about the crazy directory layout of a *nix system?

    If the answer is nothing, then a suitable GUI for Linux that has the objective to gain corporate desktop acceptance really has to isolate the [l]user from this - i.e. with something like "My Documents".

    I like using Linux, but even as a seasoned IT pro, the directory structure and "what goes where" of a *nix system still bugs me.

    1. Re:Unix Directory Structures by 42forty-two42 · · Score: 3, Insightful

      "My Documents"? Ever heard of /home/$username?

    2. Re:Unix Directory Structures by Sh0t · · Score: 3, Interesting

      You have it backwards friends. It's not a crazy scheme it's a STANDARD and LOGICAL scheme. Programs installed to certain restrictive locations so you KNOW without trying to guess, where certain binaries go, where config files go and so on. It's a standardization and it works very well YOu just aren't used to it. IF you aren't installl from a system package you can put whatever you want, wherever you want, but to keep things orderly you should follow the scheme windows does the same things actually when you use installshield or msi, some files go to program files/program name, some go to /windows some go to a temp dir for settings, some entries go into the registry etc. I think the standard unix method is much tidyer overall, but it may be a bit confusing at first to those who are migrating.

    3. Re:Unix Directory Structures by Anonymous Coward · · Score: 0

      "My Documents" is analoguous to the "Documents" subdir of the home directory that KDE+GNOME use. The windoze analogue of "/home/" is
      "%systemroot%\Documents and Settings\"

    4. Re:Unix Directory Structures by cyb97 · · Score: 2, Informative

      Or as everybody else refers to it... ~

    5. Re:Unix Directory Structures by xA40D · · Score: 1

      with something like "My Documents".

      ~username (tilde username) works for me.

      I like using Linux, but even as a seasoned IT pro, the directory structure and "what goes where" of a *nix system still bugs me.

      You could aways port the hier(7) manpage from a FreeBSD system - then insist that Linux (solaris, irix, etc., etc.) crowd follow the standard.

      --
      Do you mind, your karma has just run over my dogma.
    6. Re:Unix Directory Structures by mgv · · Score: 1

      I think the standard unix method is much tidyer overall, but it may be a bit confusing at first to those who are migrating.

      Perhaps its just familarity, but the windows system is easier to me. Your stuff goes into the program files directory, the dlls go into windows directory, and your registry gets lots of hard to spot entries.

      Its ugly but easy enough to understand.

      I cant really understand the unix system, at least on red hat linux, because everone seems to use it differently.

      Some things end up in /opt, some in /usr/bin, some in /usr/apps, and so on.

      Personally, i would just put everything a program needs into one directory. Yes, even the replicated library code. You want to use lib_some_code.so in your program? Then copy that library also. Sure, it wastes hard drive space. But the alternative seems to be dependency hell.

      Windows now has turned full circle, and the OS can track and substitute different dll versions called by different programs. Frankly, it would have been easier if we had never gone there in the first place. I'm not short of space on my hard drives, and few of us are these days, and the problems caused by incompatible versions of the same shared code just dont seem to justify the disk space savings.

      Just define your core functions (kernel, x-windowing, or desktop environment). Everything on top of that gets its own copy in the same folder as the main code. You test once on the library that you want to code with, and that is that (hopefully).

      New versions of the shared code don't change your program, because your program doen't use the newer versions unless you feel that it needs them and then you recode it at the developer level.

      Just my 2c worth, probably too simple a solution to work of course.

      Michael

      --
      There is no cryptographic solution to the problem where the intended receiver and the attacker are the same entity.
    7. Re:Unix Directory Structures by IamTheRealMike · · Score: 1
      I like using Linux, but even as a seasoned IT pro, the directory structure and "what goes where" of a *nix system still bugs me.

      Agreed. The FHS is a laughably weak standard, with multiple potentially correct interpretations for parts of it.

      Note that I don't have any real problem with names like usr, etc, opt - they are essentially meaningless except to programmers, which is how it should be, for users localised VFS systems which abstract and represent the data in the filestore are the way forward IMO.

      Of course, that's assuming good old Hans Reiser doesn't tip the whole thing on its head with ReiserFS, right? ;)

    8. Re:Unix Directory Structures by Atzanteol · · Score: 1

      *rofl*

      Great troll!

      Stupid statements like the one about "My Documents" is sure to keep this flame burning.

      --
      "Ignorance more frequently begets confidence than does knowledge"

      - Charles Darwin
    9. Re:Unix Directory Structures by IWannaBeAnAC · · Score: 1

      The problem with having multiple identical copies of shared objects lying around is that these multiple copies will end up loaded into memory, not just on disk. With a few applications running, it really does have a big effect on RAM. Also, if a library is updated (say to fix a security flaw) then you don't want to have to check every single app to see if it uses this library or not. And even then, if the application and library do not play nicely together, you will still have the problem that the library upgrade might break the app. In the case of a security fix, this is a serious problem. Some of these problems, of multiple copies of the library floating around, can (and are) fixed on *nix systems, using symlinks and hard links. But since you talk about using up hard disk space, I assume you are not talking about links? I don't think there is a magic solution to this. The Debian system perhaps works the best, with quite rigorous management of dependencies, but it is too labour-intensive to be used universally. It really comes down do discipline of library and application writers: library writers need to ensure that their lib is well specified, future releases are versioned properly, and minor releases don't break the interface. Application writers need to be careful to code against the interface, and not depend on some detail of the implementation. This is hard to do, but throwing multiple copies of libraries around is no fix either.

    10. Re:Unix Directory Structures by Permission+Denied · · Score: 2, Interesting
      You must be trolling.

      Take any file on a modern Linux system. Any file at all. Explain to me its purpose and I'll tell you where you'll find it in the filesystem. A keyboard map? /usr/share. A subprogram to be executed by a program, not by the user? /usr/libexec.

      Take any file on a modern Linux system and tell me its full path. I'll tell you what it does, and I'll probably be able to tell you what package it comes from. I can also tell you if you need it or if you can get rid of it. /usr/X11R6/lib/X11/rgb.txt? Rgb color database to define textual names for colors, from XFree86. /usr/local/share/automake/elisp-comp? Support file for automake to integrate with emacs, installed by user after system installation time, from GNU automake. /usr/local/lib/libjpeg.so? Jpeg image library, installed after system installation time, from the JPEG group.

      Take any file on a modern Windows system, and you won't be able to do anything with it. C:\winnt\keyacc32.exe? Does that come from MS or from a third party and what is it used for? C:\winnt\system32\getstart.gif? An image that says "Get started with Beta 2" in the Microsoft Arial font. Is this a remnant from a win2k beta and if so, why is still here in a production post-sp3 win2k pro system? Or does it come from some third party? Try figuring out what files are necessary on a Windows system and what's cruft. You certainly won't be able to get a Windows install to fit in less than ten megs because all these files are spread out and undocumented - however, you know it's possible to get a Windows image in only a few megs because Microsoft does it (miniwindows during Windows installation). Getting a FreeBSD install to fit in only a few megs is not a problem - just did it for a compact-flash-based system and it's not hard.

      Anyway, this scheme that stow uses is very useful. Djb also has something like this in mind, but his way of doing it is not very elegant IMHO. I've been using something like stow for all my machines for the past three years or so, but it was just a 50-line shell script. Keep all software installed in /opt. Like /opt/emacs/emacs-21.1 with a symlink /opt/emacs/default which points to "current" version (that way, upgrades can be done with just changing a symlink, and downgrades are also just changing a symlink - you don't have to learn some tool's syntax, and, more importantly, the admin that replaces me won't have to learn some esoteric system because you can figure out my system in 30 seconds). All that my shell script does is make symlinks from the /opt/cvs/default/bin to /usr/local/bin, from /opt/python/default/lib to /usr/local/lib, etc. This way, when you run a poorly-written autoconf script, it will always find the requisite packages (because people always assume the required package is in /usr/local) and my users don't have to deal with $PATH. In addition, I can run this:

      find /usr/local -type f -print
      And this tells shows me all the stuff that I've written locally for the particular system (anything in /usr/local that's not a symlink must have been written by me).

      Never run into any dependency problems, upgrades are "ln -s," uninstalls are "rm -rf."

    11. Re:Unix Directory Structures by mgv · · Score: 1

      Also, if a library is updated (say to fix a security flaw) then you don't want to have to check every single app to see if it uses this library or not.

      Thanks for your reply - it does explain why people are reluctant to do this.

      I must admit that bug fixes would be an issue, although I don't see that searching your hard drive (or at least the program folders) for every copy of a library would be a problem if you had an updated version. It doesn't take that long to search a hard drive (esp. if indexed, but even if not).

      The issue of taking up alot of ram is more of an issue. Of course, that only becomes a problem when the program is running, and even RAM isn't that expensive these days.

      I'm ignorant of system architecture, but is there any reason why the code and data portions of shared libraries can't be managed separately? Ie., if you have invoked two identical programs, why not just issue memory twice for the data in the program, but keep one copy of the code? And if the versions are different, well, isnt' that the whole idea of what I am suggesting?

      Ok, its probably still a silly idea, but just a thought?

      Michael

      --
      There is no cryptographic solution to the problem where the intended receiver and the attacker are the same entity.
    12. Re:Unix Directory Structures by den_erpel · · Score: 1

      I like using Linux, but even as a seasoned IT pro, the directory structure and "what goes where" of a *nix system still bugs me.

      The *n*x directory structure makes much more sense to me that the directory structure (?) you are referring to, although the one you are referring to is moving towards the *n*x structure IMHO.

      My Documents -> /home

      There is one big difference though, and that's that application configurations are put there too and the preferences of one user is contained to /home (and not to some messy reg).

      # rm -rf /home/user and deluser user removes any trace of the user from the system /bin /usr/bin -> user apps /sbin /usr/sbin -> system apps /usr/local -> not managed by packaging systems

      It has been a while, so correct me if I'm wrong but
      c:\windows\system32 -> one big mess
      c:\Program Files -> lots of duplications and a strange concept of shared libs, there is hardly any difference between system and user programs.

      As for 'what goes where', I solve this mainly this way if there is no package available (if there is, there is not really a problem):
      $ tar xvfz my-package.tar.gz
      $ cd my-package
      $ dh_make
      $ fakeroot dpkg-buildpackage
      $ su -p
      # dpkg -i ../my-package*.deb

      programs like tcpdump, groupdel, ... seem logical to bin in a sbin directory to me, since you need to be root to use them anyway...

      Furthermore, it sounds to me that, if you use anything more than a bare boned system, you'll find someone that tags it as a mess, no mather waht package management (be it rpm, deb, stow or even W32).

      Anyway, structure is, I guess, a matter of perspective, but how someone comes up with the W32 directory structure as being logical (or structure for that matter) beats me...

      --
      Genius doesn't work on an assembly line basis. You can't simply say, "Today I will be brilliant."
    13. Re:Unix Directory Structures by jmauro · · Score: 1

      I'm ignorant of system architecture, but is there any reason why the code and data portions of shared libraries can't be managed separately? Ie., if you have invoked two identical programs, why not just issue memory twice for the data in the program, but keep one copy of the code? And if the versions are different, well, isnt' that the whole idea of what I am suggesting?

      For normal libraries this is what happens. The only piece of memory they share is their instruction memory (which don't change at all.)

    14. Re:Unix Directory Structures by treat · · Score: 1
      KNOW without trying to guess, where certain binaries go, where config files go and so on. It's a standardization and it works very well

      OK, on a system with hundreds of packages installed, how do you remove or upgrade one, without remembeing what files belong to what package?

      Stow solves this problem.

      And this is not a new idea with stow. Intelligent administrators have been doing this forever. Otherwise /usr/local turns into an unmanagable mess.

    15. Re:Unix Directory Structures by IWannaBeAnAC · · Score: 1
      In fact, code and data segments are managed separately. Running multiple instances of a program will result in only one copy of the code in memory.

      But in the case of multiple, identical copies of a shared library scattered around a hard drive, it would take some sophistication for the operating system to 'notice' that they are the same, and only load a single copy. In fact, you probably don't want to do this, because a better solution is just use a link of some sort, so that all of the copies refer to the same physical library. This is especially an issue on unix architectures, which tend to be quite modular, with lots of daemon processes that are always running.

      Of course, if the versions are different then you cannot avoid having multiple copies on disk as well as (potentially) in RAM.

      But even if you did give each application its own copy of the shared libraries, it only shifts the problem somewhere else, you still have the problem of what to do when the library is updated, and do you use the new version or the old version of the library. True, it would give you finer grained control as you could selectively update the library for some apps but not others. But this is already handled in Linux (and some other *nix) by versioning. The filename of a shared object is something like

      mylib.so.1.5.0

      with some links
      mylib.so.1.5 -> mylib.so.1.5.0
      mylib.so.1 -> mylib.so.1.5
      mylib.so -> mylib.so.1

      In the usual case, you would link your app against mylib.so.1, and it will use the most recent minor version. If you really depend on a feature of version 1.5, then you link against mylib.so.1.5. And if you really depend on a feature of a particular patch level, you link against mylib.so.1.5.0. This last case is (ir should be) very rare. In theory, you can drop in a new version of the library, update the appropriate links, and everything "just works". In practice of course it doesn't happen that way and often something does break. But the theory itself is sound, it just takes discipline and communication to enforce it.

    16. Re:Unix Directory Structures by Anonymous Coward · · Score: 0
      Take any file on a modern Linux system and tell me its full path. I'll tell you what it does, and I'll probably be able to tell you what package it comes from.

      You want to get out more.

    17. Re:Unix Directory Structures by Anonymous Coward · · Score: 0

      OK, on a system with hundreds of packages installed, how do you remove or upgrade one, without remembeing what files belong to what package?

      sudo apt-get remove foo

    18. Re:Unix Directory Structures by dulinor · · Score: 1
      And this is not a new idea with stow. Intelligent administrators have been doing this forever. Otherwise /usr/local turns into an unmanagable mess.
      Indeed, I've been using stow to do this for years. Stow isn't sexy, but it works and works well. It's a great solution for people who want to compile their own stuff and still do basic package management. That said when I was doing this a lot, we had to write our own wrappers for the various CPAN modules, and certain programs that expected append to shared .info files were SOL in a stow universe but those could all be configured away in a very small amount of time.
    19. Re:Unix Directory Structures by 42forty-two42 · · Score: 1

      True, but that wouldn't get me +4 informative, now would it?

    20. Re:Unix Directory Structures by TheOrquithVagrant · · Score: 2, Informative

      I'd say it's definitely just familiarity.

      For anyone confused about the "what goes where" in a Linux system, I warmly recommend taking a look at:

      http://www.pathname.com/fhs/

      which describes the Filesystem Hierarchy Standard, part of the Linux Standards Base. It should clear things up.

    21. Re:Unix Directory Structures by ADRA · · Score: 1

      "Take any file on a modern Windows system, and you won't be able to do anything with it."

      Being a *nix admin, YOU may not be able to do anything with windows, but people who know what they are doign on windows do. Just cause you can spout off every frigging lib on your linux install, that doesn't mean anyone else can. In conclusion, Windows sucks because you don't understand it, so it must be bad.

      I hate windows, but mostly for unimportant political reasons :-)

      As for small installs, Windows never bothered with fitting production windows on small footprints which is why they created Windows CE, or windows XP embedded.

      --
      Bye!
    22. Re:Unix Directory Structures by phoenix_rizzen · · Score: 1

      The problem is with Linux distributions -- there is no standard for Linux. Sure, there's the FHS, but there are so many optional bits to the LSB that none of the distros have changed their layout, and they are all "FHS-compliant".

      You need to find a real OS that uses a real standard FS layout. Something like the BSDs. :) For instance, on FreeBSD:

      / is for the operating system itself /usr is for third-party apps bundled with the OS /usr/local is for all locally installed apps /etc is for system-wide configuration files /usr/local/etc is for local app configuration files /var is for all logs, spools, and the like

      Each of the following directories exist under /, /usr, and /usr/local:
      bin/ is for user binaries
      sbin/ is for system binaries
      lib/ is for libraries
      share/ is for shared data

      So, you know exactly where everything is.

      Install a new app? Then the config is /usr/local/etc/ and the binaries are in /usr/local/bin and/or /usr/local/sbin. Nothing else changes.

      Update to a newer version of the OS? Then the files in / and /usr are changed, but everything under /usr/local stays the same.

      Now, your PATH statement is just: /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr /local/bin

      Works like a charm. :) If only Windows would do something as logical and organised as that. I mean, why does installing Office update my Windows system DLLs?? Why does installing a day-planner put files into the OS directory? Why does updating my web browser upate the OS itself?? Seriously!

    23. Re:Unix Directory Structures by Osiris+Ani · · Score: 1
      "I must admit that bug fixes would be an issue, although I don't see that searching your hard drive (or at least the program folders) for every copy of a library would be a problem if you had an updated version. It doesn't take that long to search a hard drive (esp. if indexed, but even if not)."
      How much work do you do with systems, data storage, and applications at the enterprise level? I mean, I don't want to just presume that you're completely unaware of why it would be a really bad idea to actively search terabytes (or even gigabytes) worth of disks attached to active, mission-critical systems each and every time you want to upgrade an app or apply a simple bug fix, but....
    24. Re:Unix Directory Structures by Anonymous Coward · · Score: 0

      dpkg -S $filename
      That tells you which package installed any particular file. I'm sure rpm has an equivalent.

    25. Re:Unix Directory Structures by shellbeach · · Score: 1
      Perhaps its just familarity, but the windows system is easier to me. Your stuff goes into the program files directory, the dlls go into windows directory, and your registry gets lots of hard to spot entries.

      Perhaps its just familarity, but the *nix system is easier to me. Your stuff goes into the /bin directory, the libraries go into /lib directory, and your home folder .config file gets lots of hard to spot entries.

      Sorry, but it had to be done ... :)

      btw - I've never seen anything ever be installed into /opt without the user requesting it. That's what /opt is there for, after all!! And the only software I know that installs to /usr/apps is rox - which, although it's a wonderful piece of software, leaves a lot to be desired in terms of its method of compiling and installing.

      I do understand what you're saying about /usr/bin, /usr/local/bin, etc, but have you actually read the article we're supposedly discussing?? That's exactly what stow tries to prevent - each application, when using stow, gets its own directory in /usr/local/stow (you could just as easily use /Program_files, though :) and symlinks are created in /usr/local/bin and /usr/local/lib. It keeps the ease of having central /bin and /lib directories, while making the control of which apps and files are intalled on your system just as simple.

    26. Re:Unix Directory Structures by spitzak · · Score: 1
      Couldn't the system crc-hash all memory-mapped read-only pages and use this to find identical ones and reuse the mapping? Automatically all matchine shared libraries and executables would reuse memory. Also I would suspect that, due to aligment restrictions, even statically-linked binaries would find matching pages and share them.

      The only problem I see with this is that is may be slow to do the crc every time a new page is introduced. But if it is faster than reading the disk it seems this should work.

      I'm not sure if patching libraries is that much of a problem. The real libraries that have bugs and need patching are the central system ones. The problem shared libraries are things like the giant Gnome library set, where there really isn't a "patch", instead all the libraries *and* all the programs are replaced at once. In these cases the shared libraries are there simply to reduce program size, and with this crc idea (plus perhaps a similar idea for disk file systems and compressed packages) the programs could in fact all be statically linked with all of Gnome.

    27. Re:Unix Directory Structures by mgv · · Score: 1

      btw - I've never seen anything ever be installed into /opt without the user requesting it.

      Codeweavers Crossover office. Its at least the default. I can't remember if it asked me or not now - but I wouldn't have chosen /opt for it spontaneously.

      Michael

      --
      There is no cryptographic solution to the problem where the intended receiver and the attacker are the same entity.
  5. Have you tried Gentoo's Emerge by salimfadhley · · Score: 5, Interesting

    One of the reasons I switched from Redhat 8.1 / 7.3 to Gentoo Linux (Beta) was the amazing Emerge package management tool. It combines simple Tar based package files with cool scripts called eBuilds, that automagically fetch and compile all the components I need.

    Of course Gentoo is not for everybody... it takes longer to install than Debian (and that is before you have compiled the entire OS from scratch), but for those who are interested in that sort of thing it can be a refreshing alternative.

    1. Re:Have you tried Gentoo's Emerge by Anonymous Coward · · Score: 0

      Is it possible to get Oracle to run on Gentoo? This is a serious question - I'll switch to Gentoo if the answer is yes.

    2. Re:Have you tried Gentoo's Emerge by Imran · · Score: 5, Informative

      Flamebait disclaimer: I have been running Gentoo on all of my machines for over a year now, so don't take this as an anti-Gentoo comment.

      stow and ebuilds aren't really operating in the same space.

      rpm,deb,portage = full blown package managers, controlling everything under /usr. These can start with source (or pre-compiled binaries), and handle everything from installation to dependency-handling, etc (with varying degrees of efficiency).

      stow = simple symlink manager, providing an easy way to maintain order within /usr/local, for those apps I compile and install manually (and, for whatever reason, don't want to repackage as an ebuild/rpm/whatever)

      There are times when one does create one's own ebuilds (v simple) or rpms (slightly more involved). For all other occasions, stow is a helpful tool :)

    3. Re:Have you tried Gentoo's Emerge by nautical9 · · Score: 2, Interesting
      I agree, Gentoo's portage is the best package management I've come across. Not only doe it make ANY package a one-line command that will automatically "download, untar, [patch], configure, make, make test, make install", but it uses system global optimizations for compiles, takes care of all dependencies, and places binaries, libraries, config files and startup scripts all in standard locations. And their "gentoo-sources" version of the kernel has over 70 high-performance patches it includes to the vanilla kernel.org tree (but of course, you don't have to use them if you don't want to, but why not?)

      It even has a great /etc/env system for managing environment variables (both bash and csh flavors), so if it needs to install binaries in a non-standard location, you "PATH" is automatically updated to include it.

      I don't use Gentoo as a desktop platform, so I can't comment on its X/KDE/Gnome setups, but I'm sure they're just as complete and easy. And although Gentoo may be rather intimidating for a n00b initially, it does have excellent documentation and a great support community at their site.

      Keeping a system up-to-date with the latest and greatest has never been this easy!

    4. Re:Have you tried Gentoo's Emerge by kisielk · · Score: 1

      A quick search through the Gentoo forums revealed this thread. It would appear the quick answer is "yes". Give it a read if you are still interested.

    5. Re:Have you tried Gentoo's Emerge by virtual_mps · · Score: 1, Funny

      Why did this article need a "use gentoo" comment?

    6. Re:Have you tried Gentoo's Emerge by TobiasSodergren · · Score: 1

      A nice and insightsful comment. I'd certainly mod you up if I had any points.

    7. Re:Have you tried Gentoo's Emerge by Billly+Gates · · Score: 1

      Agreed ports rock.

      One of the reasons I prefer FreeBSD over Linux is because of better package managment. Gentoo is the only thing that comes close.

      There are so many different distro's and versions of different distro's that is impossible to build an rpm that will not bring dependancy hell.

      I wish there was a unix equilivant to installshield for windows. It would be great to have a self extracting executable with the dependancy .so or other programs already in it. It should be the job of the os or package installer and not the user to take care of this. The problem with an automatic dependancy installer like ports or portage is that it may automatically update some dependencies that use different scripts then the older versions you are using. This can cause problems not to mention the latest and greatest may have compatibilities issues. For example I hate redhat 8x because of the perl 5.8 packages. I use perl 5.6 and I can not downgrade without corrupting hundreds of packages that require 5.8.

      What a pain.

    8. Re:Have you tried Gentoo's Emerge by Anonymous Coward · · Score: 0

      It WOULD be a great way to manage packages if I didn't receive so many errors trying to 'emerge sync' and md5 mismatches. I tried building Gentoo 1.4_rc3 just this week on my crapped out Linux box as I'm looking to switch to a more 'power user' distro than Mandrake, but after numerous failed attempts, I just threw Debian on it instead. So far, Debian is up and running, and apt-get, dselect, and other package management tools that Debian uses seem to be far more reliable than RPM's or the Gentoo Portage system.

    9. Re:Have you tried Gentoo's Emerge by Ed+Avis · · Score: 3, Insightful
      I don't understand why many people seem to assume 'tar good, rpm/dpkg bad'. For example, the article says:
      Although some Linux flavors such as Red Hat and Debian come with their own package management utilities (rpm and apt-get, respectively) that are as efficient as Stow, they work only on specific packaging formats (.rpm and .deb, respectively). When it comes to managing applications simply packaged in .tar files, Stow is the best bet.

      Why is a tar file any more 'simple' than an RPM or Debian package? If you are just storing a bunch of files, then yes. But what about metadata? That is, the information on dependencies (what libraries the package needs), where to get the source code, who the packager was, which version of the software these files represent, whether this packge conflicts with any other packages that might be installed, and all the other things that a decent package manager keeps track of automatically so you don't have to check them by hand, or get nasty surprises when you've installed a package and only later find a necessary library is the wrong version.

      If you use tar files then you'd need to have an extra metadata file inside storing this information: then you need to decide a format for that file and write a tool to parse it. And you've then reinvented rpm or dpkg, only with the spurious 'improvement' that people on other systems can unpack the archive if they have tar installed. As if anyone running a different system would need to unpack someone else's binary packages.

      Perhaps you could argue it would have been better for rpm to be based around tar.gz format, with the package details stored in the tarball as a script of some kind. But then it would become much slower to query a large directory of packages. Maybe that is important, maybe not. Also you have digital signatures to worry about, it's not clear how to do those with a tar archive (unless you have one tarball containing another tarball plus its PGP signature). Perhaps things could have been done differently, but the mere fact that the rpm and dpkg developers chose to make their own format rather than use tar is not an excuse for committing much more serious wheel-reinvention in making a kewl Yet Another packaging format.

      I'm not meaning to knock Gentoo here, that distribution really does do something new (building everything from source), and they perhaps had good reason to make a new packaging format. (Although it might have been worthwhile to investigate whether building from source could fit in with rpm or Debian source packages.) And Slackware has used tgz packages since the beginning, and doesn't seem that bothered about automatically tracking dependencies.

      But for most uses, I just don't see why 'simple packaging with tar' is particularly simple in the long run or much of an advantage. It sounds like those Freshmeat projects which say 'this is yet another MP3 player but it has the advantage that it doesn't use GTK or Qt but implements its own user interface code instead'.

      --
      -- Ed Avis ed@membled.com
    10. Re:Have you tried Gentoo's Emerge by sammy+baby · · Score: 1
      I wish there was a unix equilivant to installshield for windows.


      There is a Unix equivalent to InstallShield. It's called InstallShield.
    11. Re:Have you tried Gentoo's Emerge by Ed+Avis · · Score: 1
      It would be great to have a self extracting executable with the dependancy .so or other programs already in it. It should be the job of the os or package installer and not the user to take care of this.
      I partly agree - but would add, it should be the job of the OS or package manager, not the user *and not the application being packaged* to take care of this. That means that there should _not_ be extra .so files for dependencies in the package. That way lies Windows-style DLL hell where every app includes slightly different versions of libraries and they get scattered across different places. The app should just say 'I require libfoo version 2.3' and the package manager will make sure that 2.3 or a later 2.x release is installed. This is what packaging systems like rpm and dpkg provide; unfortunately if you run them directly from the command line they will only tell you what needs to be done, not do it themselves. Tools like apt or Mandrake's urpmi will take care of downloading and installing the necessary dependencies as well.

      About your problem with downgrading to perl 5.6: what's really needed, I think, is a package manager which downloads dependencies and rebuilds from source if necessary. So when you say to rpm 'please replace perl 5.8 with 5.6', it should look at all the packages which currently depend on 5.8, get their source packages, recompile for 5.6 and then in one fell swoop replace perl 5.8 and all packages that use it with the older version. If there is some application which requires perl 5.8 or later, you would obviously have to uninstall that before downgrading to the earlier perl version.

      --
      -- Ed Avis ed@membled.com
    12. Re:Have you tried Gentoo's Emerge by Surak · · Score: 1

      Well, first off, the parent poster was talking about Gentoo's portage package system. Gentoo's package system, while it *can* handle binary packages, isn't geared around that. It's a source-based package system -- an .ebuild file contains the commands needed to fetch the tarball, extract it, compile the source and install the resulting binaries.

      The .ebuild file also lists what other packages the package depends on. The Perl scripts that make Gentoo's portage, such as emerge, check these dependencies and then go out and grab and install those packages, if necessary, prior to installing the requested .ebuild.

      Also, there is a facility for adding global 'make' parameters so that you can add things like CPU-specific optimizations to the make commands portage executes. This gives you a system that feels like it's optimized for the hardware that its running on, much like Solaris on Sparc -- because it *is*.

      So gentoo's package system is much more than a 'simple packaging with tar'. It's a system for building and installing stuff that is packaged with tar. :)

    13. Re:Have you tried Gentoo's Emerge by Ari+Rahikkala · · Score: 2, Funny

      Because we're everywhere. You can't escape the horde of the Gentoo users. Just give up and in - one day you, too, shall love Gentoo... why not start today?

      -revision-

      We are Locutus of Gentoo. Binary distribution is futile. Your sources will be assimilated.

      -revision-

      In A.D. 2003
      Distro-War was beginning.
      Red Hat: What happen ?
      Mandrake: Somebody set up us the shiznit
      Debian: We get signal
      Red Hat: What !
      Debian: Main irssi screen turn on
      Red Hat: It's You !!
      Gentoo: How are you gentlemen !!
      Gentoo: All your sources are belong to Portage
      Gentoo: You are on the way to irrelevancy
      Red Hat: What you say !!
      Gentoo: You have no chance to survive make your time
      Gentoo: HA HA HA HA ....
      Red Hat: Take off every 'rpm'
      Red Hat: You know what you doing
      Red Hat: mv 'rpm'
      Red Hat: For great justice

    14. Re:Have you tried Gentoo's Emerge by cowbutt · · Score: 1

      [flame mode="high"]
      I've seen an increasing tendency for folks to use Gentoo, and I've also seen a rise in a set of problems; firstly, that even if we're both nominally running the same set of packages, it's not always possible to support each other as the packages in question (and the libraries they depend upon) may have been compiled with different options. Secondly, some Gentoo users are switching on all sorts of optimization flags ("because anything compiled with -O6 will run faster!!!") without being aware of the problems that can be caused by mis-compilation (buggy gcc or buggy application, I don't care).

      Just as I learnt my chops using an early version of Slackware, it probably is worthwhile to play around with Gentoo at some point. But unless you're prepared to manage the complexity (and most Gentoo users I've run across aren't) then I can't see how it can be recommended for general purpose use.
      [/flame]
      --

    15. Re:Have you tried Gentoo's Emerge by einhverfr · · Score: 1

      Why did this article need a "use gentoo" comment?

      you are right-- this comment belonged the Perl vs Python flamewar on slashback. Especially when we are talking about packages and use statements ;-)

      Speaking, I can't find any gentoo package in Perl, so use gentoo gives me errors in my scripts ;-)

      --

      LedgerSMB: Open source Accounting/ERP
    16. Re:Have you tried Gentoo's Emerge by Balther · · Score: 1

      I agree, one of the hardest things about gentoo is second-guessing the options used to configure and compile packages - a simple document with the defaults would help.

    17. Re:Have you tried Gentoo's Emerge by dattaway · · Score: 2, Interesting

      The perceived problems of customized building of an entire may be a strong advantage. It requires all software to be of highest quality or the bugs will show. A community that encounters problems encourages debugging or switching to higher quality packages and not sweeping problems under the rug.

    18. Re:Have you tried Gentoo's Emerge by supergiovane · · Score: 2, Informative
      To be more general, an ebuild is a file containing the description of the operations needed to have an app installed.

      1) It checks dependancies. If dependancies are satisfied it goes to step 2, else it launches the installation of needed packages.

      2) It retrieves the app (either sources or binary package, in any format). Some times the portage system simply cannot automatically retrieve the app through the network (apps with required registration or license agreement acceptance requirement). In this case it stops asking the user to manually retrieve the package files, then it continues with the installation.

      3) It prepares the app for installation (compiling sources or simply extracting in a temp dir the precompiled binaries (obviously it can deal with every package format)).

      4) It installs the app, updating config files.

      This way of working simply separates the actual app (source or any other package) from the metadata (contained in the ebuild script). So Gentoo can handle a lot of packets written for other distros (acting as a wrapper), simply trashing the original metadata and substituting it with its own. As a matter of fact writing an ebuild is easier than packaging an rpm.

      --
      Signatures are for stupids.
    19. Re:Have you tried Gentoo's Emerge by cowbutt · · Score: 1

      Oh, indeed - I'm not denying the usefulness of Gentoo in a sociological way (along with Debian in particular, but Red Hat and SuSE too in some areas). What I'm protesting is the rash of "midbies" banging on about how l33t they are for building their distro from scratch, but then wasting everyone's time trying to get dialup PPP working using some GUI that's unique to their system and that they haven't integrated properly (for example).

      --

    20. Re:Have you tried Gentoo's Emerge by xchino · · Score: 1

      Portage is thegreatest package management system IMHO. It's exactly what I always wanted, a powerful version of ports for Linux. Also, running an optimized distro is worth the extra effort it takes to build from a stage 1. All my Gentoo boxes outperform equivalent boxes with binary distros. I can definately see Gentoo becoming a big player in the Linux industry. If they make the install more user friendly, perhaps make some consolidated management tools, Gentoo could easily switch from being an "elitist" distro to a "newbie" distro, because portage really is that easy.

      --
      Everyone is entitled to their own opinion. It's just that yours is stupid.
    21. Re:Have you tried Gentoo's Emerge by intermodal · · Score: 1

      i run into the exact opposite problem. I just installed Gentoo 1.4 rc3 on my ThinkPad and finished last night. I have had nothing but smooth sailings. However, two nights ago, my wife installed Woody and it was nothing but errors and issues.

      --
      In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
    22. Re:Have you tried Gentoo's Emerge by pyros · · Score: 2, Funny
      my wife installed Woody and it was nothing but errors and issues.


      i'll say. I installed Woody for my wife and in the end it just core dumped.

    23. Re:Have you tried Gentoo's Emerge by intermodal · · Score: 1

      I'm not honestly sure how that was ment, but either way i'm amused as hell ^_^

      --
      In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
    24. Re:Have you tried Gentoo's Emerge by Anonymous Coward · · Score: 0

      So stow is similar to Debian's /etc/alternative (update-alternative) symlink manager?

  6. What about dependencies? by jointm1k · · Score: 5, Interesting

    The article does not mention anything about dependencies. In my opinion dependencies are almost as important as keeping track of which file belongs to what application. Maybe they should do some more homework and take a look at Gentoo's Portagepackaging system. This system not only compiles a tar/tar.gz/tar.bz2 package, but also retrieves the needed packages (including the dependencies) from their homepages.

    --
    You know it makes sense, a little reminder from jointm1k.
    1. Re:What about dependencies? by virtual_mps · · Score: 2, Informative
      The article does not mention anything about dependencies. In my opinion dependencies are almost as important as keeping track of which file belongs to what application.


      Stow doesn't do dependencies. IMO, that's fine for local package management, where dependency handling is often more trouble than it's worth. (A local package will typically be run on a know configuration, and can target that configuration.)

      Maybe they should do some more homework and take a look at Gentoo's Portagepackaging system.


      Do some homework? You are aware that stow has been around since 1996, right? It's amazing how many gentoo fanboys don't know what else is out there.
  7. How does Stow handle dependencies? by Max+Romantschuk · · Score: 2, Interesting

    I've got some experience with Debian's package management system, and while hard to use for a novice and somewhat complex there is one great benefit: conflict and dependency handling.

    Based on the article I didn't quite understand if Stow provides similar services. There were some hints on this, but could someone with experience shed some light on the subject?

    --
    .: Max Romantschuk :: http://max.romantschuk.fi/
    1. Re:How does Stow handle dependencies? by Dr.+Manhattan · · Score: 1

      Well, there's Encap, which handles dependencies but currently only among other Encap packages. It's similar in putting files in one directory and using symlinks.

      --
      PHEM - party like it's 1997-2003!
    2. Re:How does Stow handle dependencies? by Anonymous Coward · · Score: 4, Informative

      Stow does not handle dependencies. All it does is use symbolic links so that your packages may install in one directory (completely) and then have symbolic links to a shared directory tree. This was once a standard technique that was manually performed by several system administrators. More recently packaging systems have gained widespread acceptance by people so tools like stow have not been as amazingly handy.

      Stow still has importance, though. For example, some people would prefer to build their own application distribution area. This is of particular utility when you have a network of machines and want the same applications available everywhere. Pick a machine and have it NFS share the applications. In these situations Stow still is important. Maybe the stock packaged Perl is not good enough, maybe you want the multithreaded options and a few extra modules from CPAN. Then creating a new Perl directory and stowing it somewhere else is handy.

      Stow is not perfect. I have found that it is a bit buggy with its delete operation. I usually erase the directory with the given software and then look for symbolic links that are broken:

      ls -lL > /dev/null 2> /tmp/T
      rm `sed s/:.*$//g`

  8. Wow? by j1mmy · · Score: 4, Interesting

    This has about as much flexibility as distributing binaries in a tarball. You can't include installation/uninstallation scripts (what if my application needs to install a cron job?). Everything is forced into /usr/local/stow/PACKAGEDIR and a mess of symbolic links are used to bump everything into the corresponding bin, lib, include, whatever directories. While it may be easier for the software to manage, it creates countless unnecessary files on your drive.

    I don't see the benefit.

    1. Re:Wow? by virtual_mps · · Score: 1

      Think of a typical /usr/local on a multiuser system. These are not typically managed by the native package management system, and have a whole mess of binaries dropped into /usr/local/bin. If you're the unfortunate sysadmin who has to figure out what package a particular binary is from, you're in for a lot of guesswork. With stow all the binaries are symlinks to descriptive package directories, so it's easy to know what files are related. If you want to get rid of something you don't have to go on a research expedition. If you do an upgrade you can simply unlink the old version and link in the new version, then quickly put it back if something breaks. This is good.

      The other alternative is to build all your local compiles as rpm's (or sysv packages or whatever), but that's usually more work than just "./configure --prefix=/usr/local/stow/foo-1.2; make; make install" Getting your junior sysadmin to build things into stow repositories is usually easier than trying to get them to handcraft solaris packages for every little program somebody wants installed.

    2. Re:Wow? by Anonymous Coward · · Score: 0

      The real problem with stow is it doesn't do dependencies. It's fine for programs that use static binding, But if say I need 8 libraries and they have to be a certain version, stow can't handle it. Now for something like mozilla or openoffice.org which bring all their own libraries with them and depend little on external libraries, then stow is fine. One thing people new to linux don't realize is that with a good package system that finds dependecies, say urpmi is that a developer of a program can have their ftp site added to the sources list and when the person runs software update it will install any new versions you release. Many applications write code in there applications to check for latest versions, with urpmi you don't have to do that just add your own sources link for urpmi to check.

    3. Re:Wow? by virtual_mps · · Score: 1
      The real problem with stow is it doesn't do dependencies. It's fine for programs that use static binding

      It's also fine for a network environment when you have control over the machine configs. As I mentioned elsewhere, think of it as a way of managing /usr/local hell. If you are responsible for admining a bunch of machines you probably want a standard config. ("All machines will have the following libraries installed:...") So the stuff you're stow managing doesn't have to worry about that. Where stow shines is keeping all those little local packages organized.

      a developer of a program can have their ftp site added to the sources list and when the person runs software update it will install any new versions you release

      Not only is that scary in a business environment, it's completely unrelated to the problems stow is trying to solve.
  9. Why can't it be more like Windows? by esanbock · · Score: 5, Interesting

    In windows, I double-click setup.exe, a GUI pops up, I pick the destination and off it goes. Why can't someone make something like this for Linux? It would greatly improve the user experience in Linux. Instead of having to edit 8 configuration files, the user just starts setup.sh or something and the setup asks questions. This is why I like apt-get - one line setup. But every time I download something that's not part of Debian it turn into a horrible experience I wish I would have never had.

    1. Re:Why can't it be more like Windows? by dirbinhas · · Score: 0

      You don't have to edit config files in Windows, because there isn't much to configure with Windows -- another reason to use Linux. I think what you are looking for is Gentoo. It's a bear to install the OS, but installing packages is a no brainer.

    2. Re:Why can't it be more like Windows? by termos · · Score: 1

      Fuck sake, I wrote a really long reply and then my Mozilla crashed! Anyway:

      If Linux and other GNU systems should have something like that it would have to be some kind of standard for all software. Like most Windows programs have the Vice installer or whatever it is called.
      GNU systems has something similar. It is called autoconf and automake which work almost the same way (just that for example Linux don't have a registry), it places files in the correct locations.
      On the side you also have APT, Emerge and RPM which does the same thing, but they don't have a graphical front-end (at least not by default, could find some for at least Apt and RPM on freshmeat.net I believe). To just change the standard most GNU systems already are using it would be a huge step both for the user and the developer IMO.

      --
      Note to self: get smarter troll to guard door.
    3. Re:Why can't it be more like Windows? by pubjames · · Score: 1

      In windows, I double-click setup.exe, a GUI pops up, I pick the destination and off it goes.

      Absolutely. This type of thing is essential for Linux if it is going to gain widespread desktop use.

      I know it's complicated. But it just has to be made simpler for the end user, no excuses.

      Like everything in the OSS world, there are loads of different projects taking different approaches. Whilst this isn't a bad thing, eventually a standard needs to emerge, and the sooner the better. I think more people should help out with Autopackage, which seems to be taking the right approach.

    4. Re:Why can't it be more like Windows? by IamTheRealMike · · Score: 4, Insightful
      In windows, I double-click setup.exe, a GUI pops up, I pick the destination and off it goes. Why can't someone make something like this for Linux?

      A few reasons. Firstly, these programs are tremendously complex under the hood. Almost all generic ones (even light ones like NSIS) include their own scripting language. InstallShield 6 and up has used DCOM to provide remote procedure calls between the install script and the engine (ikernel.exe if you've ever wondered what that is). They do a lot of messing around under the hood in order to make things just work.

      Even then, they are too primitive for Linux. For instance, they have only basic concepts of dependancies. The lack of proper dependancy management almost brought Windows to its knees in the mid-nineties. Simply packaging every dependancy inside one self-extracting archive is simply not possible on Linux in any scalable fashion, so we have to build dependancy resolvers like apt. Windows installers tend to be GUI only. And so on.

      Now, systems like apt are pretty cool. When they work, they work really well. The problem is, that they tend to be built by distro projects, and then they are relatively tied to that distro. Apt as used on Debian for instance, is not the same as apt4rpm. URPMI is Mandrake, and emerge is basically tied to Gentoo, though I'm sure it could be generalised.

      So, the real solution is not to build Windows style setup.exe files. The real solution is to make something like apt, but that can be easily used by everybody, so you rarely if ever come across software that doesn't use it.

      There are two approaches to solving that problem. We're trying both at once. The first is to invent a new system, independant of the existing ones. See my sig. The second is to try and standardise key interfaces in a standards body, so that apt/urpmi/emerge and others can interoperate, and so you can plug distro-neutral packages into that framework. See here. Note - most of the activity so far related to that group has been off-list, hopefully there will be action starting in a few days.

    5. Re:Why can't it be more like Windows? by Darth+Yoshi · · Score: 2, Interesting
      In windows, I double-click setup.exe, a GUI pops up, I pick the destination and off it goes. Why can't someone make something like this for Linux?

      Didn't Loki write a graphical installer for Linux? I can't access the Loki site from work to check because it's blocked by websense (ha).

      --
      // TODO: fix sig
    6. Re:Why can't it be more like Windows? by Billly+Gates · · Score: 1

      My guess is some people do not want to download huge files. If you want to upgrade the latest kdevelop a whole QT, and KDE would come with that download. It would be well over a 100 megs this way.

      While this was important in 1995 when everyone still used 14.4's on the internet and only had 50-70 packages at the most, its extremely inefficiant today with linux distros with 3k+ packages.

      Also in Windows only runtime dlls that are dependencies are updated in a setup.exe program and not whole software packages. For example in a typical Windows setup.exe program usually a vb runtime .dll is included, an updated mfc.dll and maybe some activex.dll's for an outdated system still using ole 2.0 . It does not install Visual Basic, all of the mfc classes and a new win32api, a Windows based sdk for activex. Only the required dlls to run it.

      For example the win32 version of gimp has a 6 meg install .exe and an 8 meg .exe. Because I did not want to lool for gtk++ for Windows I just downloaded the 8 meg version.

      Same should be true of linux. 2 options one lite for massochists and one bloated for everyone else.

    7. Re:Why can't it be more like Windows? by horza · · Score: 1

      Most of the apps I install under Linux these days are far simpler to do than under Windows. As I use Gentoo, I just type "emerge {name}" and everything is done for me automatically. If I want to use the original sources, I normally type ./configure && make && make install and everything just works. You can type ./configure on its own to see a list of options but the default normally works for me.

      Phillip.

    8. Re:Why can't it be more like Windows? by Ed+Avis · · Score: 1

      But in many Linux distributions, can't you just double-click an RPM or dpkg file, press 'OK' and off it goes?

      'Every time I download something that's not part of Debian' - this is the problem. It needs to be made much easier for developers to provide Debian packages (or RPMs, etc) of their software. Ideally there should be some way to make Debian packages without needing Debian installed.

      --
      -- Ed Avis ed@membled.com
    9. Re:Why can't it be more like Windows? by Beautyon · · Score: 1

      IBM should really understtand this, after having worked on OS2 for so long.

      They also have the bucks to put a team of developers on the case to create just such an installation system, so no excuse there.

      I was expecting something completely different when I surfed to that site, but instead, got a taste of yet another geek only tool; admirable, but really not boundary breaking stuff.

      They should at least take the lead from Ximian, and build something that a total computer illiterate can use. [asbestos] Whilst there can never be enough command line tools [/asbestos] someone, somewhere is going to have to bite the bullet and create this badly needed system, and its going to be someone with money.

      Look how everyone has benefitted from Nautilus; the same thing has to happen with installers.

      --
      ATH0 Bitcoin: 1DnwFLXczVZV8kLJbMYoheUrpqHesjxrSi
    10. Re:Why can't it be more like Windows? by Niggle · · Score: 2, Informative

      In windows, I double-click setup.exe, a GUI pops up, I pick the destination and off it goes.

      In Mandrake, I single-click an RPM and the package manager start installing it. Is that easy enough?

      Some notes on Windows and Linux package/program installation:

      1) Windows setups handle dependancies by basically not handling them. They almost always include a bunch of system DLLs and OCXs that might not be on a user's system or which might be outdated. This obviously leads to much larger packages which for a large part contain stuff that is already on the system. It would be relatively easy on Linux to make every package include every package it depends on. These don't have to be statically linked, you could include the packages for the shared libraries within the main package and have these install automatically. I think the bloat problem would be worse on Linux than Windows, because my feeling is that open source programs tend to use a much wider variety of shared libraries than their proprietary equivalents (where everybody re-invents the wheel on a daily basis because they can't use somebody else's design).

      2) Different languages are handled in many cases on Windows by having several setup programs. The main setup.exe in these cases is just a shell that selects which one to run. This adds to package bloat. Linux fares slightly better on this, because (IMHO) i18n is easier on the programmer here.

      3) Windows only needs to consider one architecture. If it had several to worry about, we'd probably see a situation much like we have with languages.

      4) Configuration at install time on Windows is mostly just choosing which optional extras to install. Most configuration is done within the program itself. This is more-or-less true on Linux as well (for desktop programs at least).

      To get close to the Windows installation experience under Linux, what we need to do would be to make every package include every sub-package it depends on and sub-packages for every architecture, disro and langauge. Then you could just download the single file, click it and get everything installed. That package would be enormous however.

      Tools like apt-get and urpmi give a very similar experience without the overhead of downloading a bunch of stuff you already have. So long as you stick with stuff that is packaged for you distro, they are painless.

      --
      - Blah blah blah, missing scientist. Blah blah blah, atomic bomb. -
    11. Re:Why can't it be more like Windows? by CrayzyJ · · Score: 1

      ' But in many Linux distributions, can't you just double-click an RPM or dpkg file, press 'OK' and off it goes?'

      Not always. I think this is the point of the parent. Typically, when installing a decent size package (let's say upgrading to the new KDE) it's one missing dependency after another. This becomes very frustrating. Having an install program that recogzided dependencies and downloaded for you would be great. Didn't BSD have something like this?

      --
      Holy s-, it's Jesus!
    12. Re:Why can't it be more like Windows? by Ed+Avis · · Score: 1

      But many distros do come with an install program that recognizes and downloads dependencies. For example apt (Debian and Conectiva) or urpmi (Mandrake). It just needs these to be more smoothly integrated with third-party software.

      Already some developers are saying 'add these two lines to your apt.sources and then you will be able to install my package with all dependencies automatically'. That is a smooth, automated install process, it just isn't graphical enough. If there is a one-click way to add a new apt package repository, perhaps containing one or two packages for some program you're interested in, that would solve the problem.

      --
      -- Ed Avis ed@membled.com
    13. Re:Why can't it be more like Windows? by Samrobb · · Score: 1
      Even then, they are too primitive for Linux. For instance, they have only basic concepts of dependancies.

      Or, perhaps, Linux dependencies are too complex? I've lost track of the number of times I've had to do the "upgrade tango" and install a dozen different packages just to satisfy the dependencies for a program I needed. More often than not, I've decided that a stable system was more valuable than trying to figure out what an upgrade to libfoo-2.11a would break.

      Windows has "DLL Hell"; Linux has "Dependency Hell". I'd rather see a general solution to the problem of overly complex dependencies on Linux than yet another package manager. Hiding complexity is well and good, when you have no other choice; hiding complexity because solving the problem the Right Way (whatever that is) is just putting bandage on a more serious problem.

      --
      "Great men are not always wise: neither do the aged understand judgement." Job 32:9
    14. Re:Why can't it be more like Windows? by Chacham · · Score: 2
      In windows, I double-click setup.exe, a GUI pops up, I pick the destination and off it goes.

      There are differences

      • Windows gives more choices.
      • Windows does not have a central installer.
      • Most Windows programmers have no clue as to how to install.
      • The Installer is a third party program.


      Windows gives more choices.

      On a general install, Windows asks where to install it. Linux follows the Un*x scheme, and gives less choices here. Also, Windows programs are larger, and thus there is an issue with how much to install. Linux binaries tend to be small, and so they don't bother asking what type of install you'd like. Finally, Windows programs are usually closed source, so the package lives in it's own little world. Linux packages are generally open source, so when you install a package it is an implicit choice. For example, a front-end, or a data file. With Windows it all comes in one closed package. In Linux they are separate packages, so choosing the package is like choosing an option.

      Windows does not have a central installer.

      This has changed recently with the Windows Installer, but it is not yet that popular. And things such as the uninstaller rely on the person programming the installer to put the appropriate entry in the registry. If they don't (and many don't) Windows has no record of it. So, each program needs it's own installation program. Linux distributions have a general installer that keeps track of everything. You can always query the rpm database, or the dpkg cache.

      Most Windows programmers have no clue as to how to install.

      You'll have to trust me on this one. I worked for WISE, and dealt with emails during my 20 or so months there. I proably answered over 20,000 emails (At least 30 emails a day), so I have a general idea. I also dealt with the newsgroups, but those people were vastly more intelligent.

      For example. One person has a CD with tens of thousands of images on it and wanted to know how to make a link to *each* image in the start menu. I warned the person how this will use up much space due to the cluster size, and they agreed to only make links to the folders. Then there was that guy who after making temp files (instead of letting the installer handle them with its own feature) would delete *everything* in the temp folder. I warned him a well. Oh, there were people who just assumed the Windows directory was "C:\Windows", and people who hadn't the slightest idea as to what the registry was. And, these people wrote programs to run on your computer!

      Thus, luckily, there are install programs for Windows. Linux does not seem to have these issues.

      The Installer is a third party program.

      Usually InstallShield, WISE, or InstallVise. So, they need frills to sell. In Linux all people care about is a packager, so it just isn't needed.

      To sum that all up, Windows is a more complicated install with space issues, that relies on programs to register themselves, with programs written by the cluless, and has third part programs charge for their use to install. Thus, there are installers, with choices, and frills.

      Linux has no need for all of that. So, the GUI just was never required.

      Why can't someone make something like this for Linux? It would greatly improve the user experience in Linux. Instead of having to edit 8 configuration files, the user just starts setup.sh or something and the setup asks questions.

      Those programs that need editing, give you a great many more choices then the Windows programs. Though, many Windows programs have it in their "options" or "preferences", the draw back being that you *require* a GUI to get to those, which makes editing harder, slower, more limited, and not easily distributable to other computers.

      This is why I like apt-get - one line setup. But every time I download something that's not part of Debian it turn into a horrible experience I wish I would have never had.

      That's what unoffical sources are for, and what /usr/local is for.
    15. Re:Why can't it be more like Windows? by HiThere · · Score: 1

      I suspect that a truely general solution is impossible. As a half-measure Linux has all these .so. files with version numbers and sub-numbers and revision numbers.

      The problem is that the different pieces are written by different people at different times. If your software works on version 5 revision 6 of a library, it will probably work on revision 7, 8, 9 ... also. But maybe not. And it is likely to not work on version 6, but it might.

      One solution is static linking. That EATS disk space, but sometimes it's the best answer. If you can do it. But you often only find out that you needed to do it because with the new libraries installed, something important doesn't work any more.

      kde uses compatibility libs. A frequent choice is to keep older versions of libraries around. But how do you know that you need to? You guess! You (i.e., the dependancy management software) makes the best guess that it can with the available information. And it's usually right. But sometimes not. (E.g., on Red Hat systems I've had a lot of trouble with FOX installs. It wants a library that conflicts with another library that is used by many system routines. You can override this is the install, but then some of the features that I want it for aren't available. Strangely, an "install everything" bypasses this problem. Most recently I'm trying "install everything" followed by select individual packages, and then removing things I know I don't want. I haven't seen how well that works yet.)

      Then there are abandoned libraries. On windows such are just left to die. On Linux, some programs may depend on them, so it becomes necessary to somehow shoe-horn them into a working system. Or to rewrite the other program. I know which would be a better long term strategy... or think I do. But I also know which will get me results quickly.

      Programming is the matter of proving that perfection doesn't exist in the realm of mathematics, either.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    16. Re:Why can't it be more like Windows? by IamTheRealMike · · Score: 4, Insightful
      I've lost track of the number of times I've had to do the "upgrade tango" and install a dozen different packages just to satisfy the dependencies for a program I needed

      That's why we have/need dep resolvers like apt. I rarely, if ever, hear Debian users complaining that dependancies are too complex. They don't need to care.

    17. Re:Why can't it be more like Windows? by ADRA · · Score: 1

      Anything written on newer windows installers does have dependency matching, and other such fun jazz... down to the file level!

      --
      Bye!
    18. Re:Why can't it be more like Windows? by ADRA · · Score: 1

      1. They do now!!

      2. Unless I am mistaken, you can tell what language to use during runtime. Not 100% sure though.

      3. Windows has concidered 1 architecture for a long time, it is called the HAL. Windows CE when release supported 32 architectures. Many were thrown away because nobody used them, but it shows that Microsoft/Windows Can be flexible.

      4. Nod

      I am more apt for the Ximian Red-carpet type idea. I want xyz program from a list. It does the dependencies and says I have to download x, y and z to run xyz, then it runs off and does it. Simple, and with minimal overhead. CD Installers should act the same way. Small installer, then install the components. Lets face it how many people don't install programs from CD's or a network anymore? This solution should suffice, and in the end it will win over simply because of the laziness factor.

      --
      Bye!
    19. Re:Why can't it be more like Windows? by Anonymous Coward · · Score: 0

      I think that one serious problem of linux is incompatibility of libs. Just look at gcc, even 3.x releases are no compatible each other and a lot of other frequently used libs breake compatibility very often (libpng 2 vs 3). And there are no standards saying that every Linux distro should contain some list of libs, so that software developing companies could rely on it and not linking everything staticly. Another issue are drivers. Just look at nvidia site with linux drivers. There are maybe 30 packages. Why is not sufficient just one driver for kernel 2.x (I mean binary) that could be loaded with any kernel 2.x? I know there is an option not to check versions in kernel, but it just says that 2.4.x kernels may not be compatible each other.
      I think that while there are no standards solving problems like these, large comapnies will not want to develop client applications for linux (like office, photoshop ...).

    20. Re:Why can't it be more like Windows? by robson · · Score: 1
      In windows, I double-click setup.exe, a GUI pops up, I pick the destination and off it goes. Why can't someone make something like this for Linux?

      I know this isn't really the same, but as a relatively new Linux user, I've been surprised at the simplicity and effectiveness of...
      ./configure
      ./make
      ./make install
      If the dependencies are present, it really "just works". If there are unmet dependencies, the configure script tells you what's missing. Yes, it could be better... it could tell you exactly what rpm will contain the lib you need; it could auto-launch your web browser with a search on rpmfind... but it's not nearly as bad as it was, say, two years ago.
    21. Re:Why can't it be more like Windows? by Large+Green+Mallard · · Score: 1

      There are actually some Linux installers like this.. the Sun Java packages for example.. they begin with a shell script, which runs "view" to show an EULA, then uses awk to create a tar file in /tmp from the installer file, then untars and installs it..

      Sun also packages a lot of their Solaris stuff in a GUI type inevorniment which frontends to pkg-add, so you can still get to the actual package files if you need to.

    22. Re:Why can't it be more like Windows? by Robert+The+Coward · · Score: 1

      Already happing. Most projects are moving to having rpms avaible with apt and it is growing. not from a top down but from a bottom up type design.

    23. Re:Why can't it be more like Windows? by Anonymous Coward · · Score: 0

      You're so used to having programs that won't install that you can't image it better. Forget what's going on under the hood and look up for a second. I've never had a Windows user tell me they couldn't install application X because of a lack of dependency Y. It just worked for them. Don't give me the crap about Linux users using more software.

      Now try to install something on Linux. I watched a friend (Linux user for years and a programmer) spend half a day trying to install a video player and eventually give up because he couldn't get all the dependencies.

      I've never had a program that wouldn't install on Windows. Do you get what the means ?? Get your head out of your ass and take a look around.

  10. Rather Amiga assigns by Anonymous Coward · · Score: 1, Informative

    Stow is a symlink-kludge.

    Much nicer to add amiga-style assigns to the filesystem.

    Assigns are like PATH env-vars, but part of the filesystem.

  11. Try Using Gentoo Instead by chayim · · Score: 1

    The real answer isn't stow, it's gentoo. Sure you could spend time trying to manage packages. Or you could just use a distro that source compiles everything, manages your packages, and lets you write really simple scripts to contribute back. Of course maybe that's just why I run it.

    1. Re:Try Using Gentoo Instead by Skater · · Score: 3, Insightful

      So, I took my Chevy Cavalier to the dealer this morning to get brake work done. He strongly recommended that instead of fixing the Cavalier, I should convert to Gentoo. It apparently solves all of my problems.

      Sorry, but I get tired of people always saying this type of thing about ...well, anything. Examples:

      Q: "I need help with my sendmail configuration." A: "Use postfix/qmail/etc."

      Q: "How do I get <some device> working under Linux?" A: "Use FreeBSD."

      Q: "Take a look at this package management system." A: "Switch your distribution!"

      All of these have better, usable answers that actually answer the question.

      I don't mean to flame or troll, but responses like this are counterproductive and annoying.

      --RJ

    2. Re:Try Using Gentoo Instead by Anonymous Coward · · Score: 0

      Sorry, but I get tired of people always saying this type of thing

      The truth is, sometimes it is the truth (well, the "Use FreeBSD" crack might not be).

      I work tech support for lusers, and one day my boss got a complaint from a luser that all we knew how to do was reboot the computer if its not working. He came to me with the complaint, and I told him, "You know what? At least 90% of the time the problem is fixed."

      I know the Linux IRC channel I frequent tries to discourage people from using sendmail when they ask for help with it. This is because they almost always have no clue what they are doing, and almost always have no desire to read the book (1200+ pages). There is 1200 pages of documentation, and the person almost always is too clueless to ask for anything more specific than "help". So we tell them to use something else, rather than try to explain 1200 pages of options, configuration, and usage. Problem solved.

    3. Re:Try Using Gentoo Instead by ChaoticLimbs · · Score: 1

      I agree in part, but I will say that RedHat gave me a social disease, and it went away completely when I installed Mandrake. No itching, no redness, nothing. The only problem seems to be getting glibc 3.2 installed. Can't figger out the dependancies. I wish someone somewhere would static their libs once in a while in linuxland.

  12. Stow - slow by Lothar · · Score: 1, Funny

    Must be a slow package managing system ;-) Honestly - I read Slow first time. Then again English is not my native tounge - so I might just be a bit slow.

  13. It's all in the name by Martijn+Ras · · Score: 1, Funny

    Simply Throw Out Window ...

  14. ugh! looks proprietary! =( by Dri · · Score: 1, Insightful

    Why is that when companies releases something, a GNU friendly user always get the creeps! This is no exception. (This is released under GPL but anyway!)
    Let me quote RMS: "Note the distinct difference between free as in freedom and open source as in buzzword"

    --
    Girls are strange. They don't come with a man page.
    -- Michael Mattsson
    1. Re:ugh! looks proprietary! =( by Dri · · Score: 0

      .. i've now read the article and came to the conclusion that I've made a complete fool out of myself.

      --
      Girls are strange. They don't come with a man page.
      -- Michael Mattsson
    2. Re:ugh! looks proprietary! =( by IXI · · Score: 1

      Why is that when companies releases something,[...]

      Not only that, the software comes straight from the GNU FTP server. It has been around for years, but not for replacing package management systems and not "for Linux". It is designed to manage unpackaed software in locations like /usr/local.

      So now you can stop the hype and calling it lame because it's a generic GNU tool and not from IBM.

      --
      He saw some dirty arabs and fired. Too bad it was just some friendly kurds, BBC reporters and his fellow cowboys.
  15. The truth... by Anonymous Coward · · Score: 0, Funny

    There is only one true way: CVS

    Everything else is as good as CAB files :)

  16. What about autopackage? by Anonymous Coward · · Score: 1, Informative

    I have more faith in GNU Autopackage myself.

  17. stow is broken by Ender+Ryan · · Score: 5, Interesting
    Don't attempt to use stow for things such as Gnome or KDE. If you attempt this, things will get horribly broken for a number of reasons.

    1. Stow requires you configure all the packages into their own directory, which will cause problems with Gnome and KDE. Some packages are easy to configure into one directory, eg. /usr/local, and then install into another, eg. /usr/local/stow/packagename. Others, not so much...

    2. Stow has a serious bug in the way it handles directories. If only one package touches a certain directory, it simply creates a symlink to the directory. And then if another package puts something there, it then removes the symlink and does the normal thing. This is a good idea, however, Stow borks this up sometimes, which is bad.

    If you're interested, there's a program similar to stow, called srcpkg, at tempestgames.com/ryan. Yes, I wrote it, sorry for the blatant plug. I thought it relevent because I wrote it after experiencing said problems with Stow. FYI, I use srcpkg to manage all the non-system software on my machine, including Gnome, KDE, mplayer, ogg, SDL, and a very large number of other libs and programs.

    There's also a number of similar programs on freshmeat. They're all tailored to slightly different needs, but they're all generally better than Stow.

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
    1. Re:stow is broken by bkhl · · Score: 1

      Stow requires you configure all the packages into their own directory, which will cause problems with Gnome and KDE. Some packages are easy to configure into one directory, eg. /usr/local, and then install into another, eg. /usr/local/stow/packagename.

      This is not a problem, since you can configure AND install the package in /usr/local/stow/packagename. Since the real files will reside there, the program can look for them there.

      Your other points of criticism are perfectly valid, and addressed in a few stow-clones, such as xstow (and srcpkg, I'm sure).

    2. Re:stow is broken by Anonymous Coward · · Score: 0

      Stow requires you configure all the packages into their own directory, which will cause problems with Gnome and KDE

      Bullshit. Been installing all of KDE into /opt/kde-x.y.z for years. libpng goes into /opt/libpng-x.y.z, etc. Not everything has to be dumped into /usr just because most Linux distros do.

  18. Stow and problems with "make install" by Anonymous Coward · · Score: 4, Interesting
    As you may or may not know, Stow relies on "make install". And as you may or may no know, "make install" has many weaknesses, maintainability and readability being two of its most glaring problems.

    The reason is readily apparent. There is no clean, high-level way to specify installation details to make. Almost always "make install" invokes a messy ad hoc jumble of Bourne shell commands. Make has its own variables. Bourne shell has its variables. You end up double escaping all kinds of items and end up with $$Variables and a plethora of back ticks. The consequence is that install details in a make file tend to look like Perl's uglier cousin. Throw in line extension by escaping line ends with a reverse solidus, and you have the makings of a maintenance nightmare. Try previewing "make install" with "make -n". Not too helpful is it?

    How to fix it? I don't know. Perhaps if all Unix vendors could agree on an "installation specification language" -- ISL. Then each vendor's "make" program could incorporate an interperetter for ISL. Other programs like Linux RPM could benefit for this too and incorporate an ISL interpreter because RPM installation specifications are only slightly better than plain Bourne shell (although definitely a step in the right direction).

    1. Re:Stow and problems with "make install" by IamTheRealMike · · Score: 2, Insightful
      A better solution would be to replace automake with a totally new build system. We've been hacking around the deficiences of make for years, and the time when compatability with lame commercial unices form of make was an issue is long gone.

      Something like SCONs perhaps, although I'm not sure python is the best language for this. Although it's possible, easy even, to write really ugly bash, it's a very good language for filing system manipulations, which is a large part of build management. There was another build system based on bash that was a LOT easier than autotools, but I can't remember what it was called! :(

  19. Re:The goal of my life is ... by Anonymous Coward · · Score: 0

    PLEASE, what should I do with my life ??!

    End it?

  20. Encap is better by tskirvin · · Score: 4, Informative

    encap is a better and more established system that works on the same general idea - put everything in /usr/local/encap/PACKAGE-VERSION, and symlink into place. It's mostly just used at UIUC, but good Gods it works well. I use it for absolutely everything, and essentially refuse to install anything on our systems that won't support it. And I have yet to encounter a workplace where it doesn't win over absolutely everyone with its simplicity within six months.

    Also, cpanencap is the perfect tool for perfecting Perl's module system. All it needed was versioning.

    1. Re:Encap is better by Anonymous Coward · · Score: 0

      I tried encap. Still feels like a kludge compared to Amiga assigns or even RiscOS/MacOSX/NextSTEP AppDirs.

    2. Re:Encap is better by tskirvin · · Score: 1

      ...except that encap works with essentially everything that uses 'configure' fairly trivially, and most of the stuff that uses 'xmkmf'.

      If you want the MacOSX model (the one I actually use on a regular basis), that's what /opt is for.

  21. It doesn't by ggeens · · Score: 2, Informative

    Stow has no concept of dependencies. There is no way you could use it to build a distribution on top of it.

    I use stow on my (Debian) Linux PC at home, to manage the software I build from source. If I want to upgrade a program, I can just delete the directory and install the new version in the same location. If a Debian packages becomes available, I remove the directory and have stow remove the links in /usr/local/*.

    Until now, I have been able to get all the libraries from Debian, so I never needed to work with dependencies.

    --
    WWTTD?
  22. remember this when deciding to try out stow by aagren · · Score: 5, Informative

    I've used stow on different unix platforms during the last couple of years, and I think it is a great tool to maintain software packages which aren't supported by the platforms own packaging system (deb, rpm, pkg, etc..)

    But remember one thing. If you are starting with a new stow system in f.x. /usr/local, then be sure to make the directory structure:

    /usr/local/bin
    /usr/local/lib
    /usr/local/include
    etc

    if it doesn't exit before stowing anything. Otherwise the following will happen. let's asume that you have the software package in: /usr/local/packages/app-1.4

    with it's own strucure like: /usr/local/packages/app-1.4/bin /usr/local/packages/app-1.4/lib
    etc.

    stow'ing this packages without the /usr/local-structure will result in:

    ls -l /usr/local

    bin -> packages/app-1.4/bin
    lib -> packages/app-1.4/lib
    etc.

    Then the nect package (let's call it app2-1.5) you will be stow'ing to /usr/local wille see that f.x. /usr/local/bin allready exits at then link the files from it's own bin-drectory to /usr/local/bin, which result in files from app2-1.5 will be linked to the /usr/local/packages/app-1.4 structure, which will mess up things.

    1. Re:remember this when deciding to try out stow by virtual_mps · · Score: 3, Informative
      Then the nect package (let's call it app2-1.5) you will be stow'ing to /usr/local wille see that f.x. /usr/local/bin allready exits at then link the files from it's own bin-drectory to /usr/local/bin, which result in files from app2-1.5 will be linked to the /usr/local/packages/app-1.4 structure, which will mess up things.


      Odd. On my system it will notice that bin is a symlink to a bin dir in a different stow package, remove the symlink, create a dir, then link the contents of *both* packages bin dirs into the new /usr/local/bin.
    2. Re:remember this when deciding to try out stow by aagren · · Score: 1

      my observations above might only happen with an older version of stow. I've haven't tried the scenario lately. If that's a fact I apalogize for misguiding you :)

  23. Re:HTML newbies? by 42forty-two42 · · Score: 1

    Redundant? I see no other posts pointing this out. What gives?

  24. Excuse me? by arvindn · · Score: 3, Insightful
    Could somebody please enlighten me? I don't get the point at all.
    ... a number of advantages over the tried-and-true Red Hat and Debian package management systems. With Stow, you can package applications in standard tar files
    "A standard tar file" is just a bunch of files. The reason rpm and other packaging formats are used is to do dependency tracking and management. There is no way you can figure out the dependencies from just the tar file. So comparing stow with rpm is like comparing apples and oranges. Stow is not an alternative to rpm. (Of course I agree that if we had a single universal packaging format it would be great. But the answer is not to throw all the features overboard.)
    ... and keep application binaries logically arranged for easy access.
    Wtf? What do you mean, access a binary? When is the last time you did "vim /bin/ls"? The only thing you do with binaries is to execute them, and putting them in /bin/ or /usr/bin/ etc. is perfectly adequate.
    gives users the freedom to store or install the software package at any desired location
    Excuse me, but "configure --prefix=dir" already does that?
    Imagine installing an application that accidentally overwrites a file belonging to another application, and then you have to replace the file.
    Has anyone ever encountered this? It seems somewhat contrived to me.
    Or imagine, before uninstalling and deleting an application, trying to determine which files belong to that application.
    Any half-decent package manager allows you to list all the files belonging to an application.

    The UNIX way of putting applications is well thought out, matured and perfectly fine. Needlessly playing around with it is likely to cause more problems than it solves.

    Yes, the package management scene on Linux sucks right now. But it is because of dependency management, and has nothing to do with all the files of an application in a nice folder.

    1. Re:Excuse me? by Urban+Garlic · · Score: 3, Informative

      > Could somebody please enlighten me? I don't get the point at all.

      I'll try to give it a go. I have several Debian boxes, and mostly use apt, but every now and then I need to install something for which there is no .deb, and stow is perfect for that. I have an m68k cross-compiler version of gcc (for Palm(tm) development), a locally modified version of the GTK canvas, and a few other obscure, specialized bits of software, all of which are "stow"-ed. I have realized many of the advantages described in the article -- I can uninstall these things cleanly, and move between versions just by unstowing the old one and stowing the new one.

      I do think the article (and much of the commentary here) overstates the role of stow. It's not a substitute for a package manager, and the way it works makes it unsuitable for system-level software that, for instance, might need to set up cron jobs, require scripts in /etc/init.d, or be configured from a file in the /etc directory. But it *is* very useful for those occasional, obscure bits of software which primarily consist of libraries and include-headers, or non-system executables.

      Stow itself is not new, and interestingly is packaged by debian -- I got it by "apt-get install stow"...

      --
      2*3*3*3*3*11*251
  25. Another way by tallniel · · Score: 2, Interesting

    I think more people should take a look at tclkit (http://www.equi4.com/tclkit) and the concept of starkits (http://www.equi4.com/starkit). This is a great concept where an application is delivered as one self-contained file (compressed, with an internal virtual file-system). This gets rid of the problem of "installation" all together.

    Very cool stuff.

    1. Re:Another way by shaka · · Score: 1

      "an application is delivered as one self-contained file [...] [t]his gets rid of the problem of "installation" all together."

      Sure. It also gets rid of the concept of shared libraries.

      --
      :wq!
    2. Re:Another way by tallniel · · Score: 1

      In some ways, yes. It's not a perfect solution. Note that you can still use shared libraries in a starkit. There is the problem of how to allow other programs to access useful shared functionality in a starkit. This is possible too, as starkits can be sourced into a VFS-enabled Tcl interpreter (ActiveTcl and TclKit support this).

      Starkits aren't a silver bullet, but I think they go a long long way to useful cross-platform deployment with the end-user in mind. Plus, as a bonus, your application gets access to the Metakit embedded database library, which is very useful for storing configuration and application data.

      There are more problems to solve, but this is a big step in the right direction, and it works extremely well. A good example of this is the Tcl'ers Wiki. The Wikit starkit contains all the code to run the wiki, and will run as CGI or a standalone Tk application. You can configure it to store all the pages in the starkit, so mirroring is a case of simply copying the file. As all the pages are stored in a Metakit datafile you get efficient searching and retrieval for free. The resulting starkit can be included in another starkit or application without change, for instance to provide a help system.

      There are many many more reasons why starkits are cool. It would be nice to see the concept catch on in other languages (starkits are taking the Tcl community by storm, and ActiveState support them in the new TclDevKit releases).

  26. See also Linux Mag France by dolmen.fr · · Score: 2, Informative

    For french guys, there is a Stow tutorial in GNU Linux Magazine France of this month (http://www.linuxmag-france.org/). The article is not available online.

    Here is the author web site : http://hocwp.free.fr/ln_local/index.html
    However I don't recommend his ln_local tool (a simple stow replacement) as it is seriously flawed: this shell script doesn't escape spaces (and other more dangerous shell chars) in filenames when handling them.

    Stow is here : http://www.gnu.org/software/stow/stow.html
    See also XStow : http://xstow.sourceforge.net/

    Dolmen.

  27. packaging by Phacka · · Score: 1

    standard slackware 'installpkg' with 'checkinstall' does the job quite good, besides 'make prefix=/your/path install' breaks a lot of apps

  28. because that would be bad by g4dget · · Score: 4, Insightful
    In windows, I double-click setup.exe, a GUI pops up, I pick the destination and off it goes.

    That works fine for a few applications. Linux has thousands of applications, and people tend to install hundreds of them (they are free, after all, so why not). Do you want to go through hundreds of GUI installers, and then hundreds of GUI updaters? I don't.

    Why can't someone make something like this for Linux?

    There are interactive installers for Linux packages, but they are usually a nuisance compared to a normal package.

    But every time I download something that's not part of Debian it turn into a horrible experience I wish I would have never had.

    Well, then don't install non-Debian packages. After all, there are plenty of Windows programs that come with horrible installers. As a Debian user, think of non-Debian packages as "programs that come with horrible installers", and then decide whether they are worth the trouble. (Note that you can usually import packages reasonably well via "alien".)

    The package system you get with Debian (or RedHat, for that matter) is already so much better than anything you get for Windows that it isn't funny. If Linux developers adopted the equivalent of setup.exe more widely, that be a real blow to Linux.

    1. Re:because that would be bad by Geeyzus · · Score: 1

      That works fine for a few applications. Linux has thousands of applications, and people tend to install hundreds of them (they are free, after all, so why not). Do you want to go through hundreds of GUI installers, and then hundreds of GUI updaters? I don't.

      Do you have to run an installer for Solitaire or Minesweeper when installing Windows? How about Internet Explorer? WordPad? And so on...

      The parent is right, in my humble opinion, about the need of an all-inclusive setup package system for Linux. That is, if you want mainstream users to use it on the desktop. There will have to be a "basic" install setup from Red Hat or whoever, and additional applications will have to be all inclusive, one-click and step through the install type of installation. Users don't want to compile anything, download extra stuff (why didn't it come with it in the first place?). They just want to click and run an application.

      Even if it means the size of the original download is way bigger because it includes files that the user might not need, I'm sure most Windows users that would consider Linux would prefer that to the current mess.

      The package system you get with Debian (or RedHat, for that matter) is already so much better than anything you get for Windows that it isn't funny.

      Why is that? If you can't just click and install an application, I'm sure there are plenty of Windows users that would disagree with you here.

      If Linux developers adopted the equivalent of setup.exe more widely, that be a real blow to Linux.

      The only thing it would be a blow to is the egos of Linux elitists who really don't want anyone using "their" OS.

      Mark

    2. Re:because that would be bad by Anonymous Coward · · Score: 0
      If you can't just click and install an application, I'm sure there are plenty of Windows users that would disagree with you here.


      But you can do that in Linux. Download an rpm file and click on it in your file manager. If your distro is set up correctly it will now ask you if you want to install it, you click yes and it's installed. What's so hard about that? The advantage with linux is that this is only one of the many ways pf doing an install

    3. Re:because that would be bad by sir99 · · Score: 2, Insightful
      The package system you get with Debian (or RedHat, for that matter) is already so much better than anything you get for Windows that it isn't funny. If Linux developers adopted the equivalent of setup.exe more widely, that be a real blow to Linux.
      You are painfully correct. Just look at the commercial programs available for Linux that use installer programs. I have several examples:
      1. Macromedia Flash plugin 6: It comes with a ridiculously long script that checks all kinds of special conditions, which you can tell was written by a newbie. What does it ultimately do? Install two (2) files! I simply unpacked the tarball and symlinked them into my plugins directory.
      2. RealONE (Real media player): It doesn't appear possible to install this program globally, only in your home directory. It uses a GUI installer that's heavy on flashiness, but low on usability. I didn't feel like messing with it to try and make it world-usable.
      3. Intel C Compiler: Haven't looked at this in a long time, but I heard that it's very difficult to install it on some systems; you basically have to fix the installer's broken assumptions. The old version I have had a hacked-up RPM to allow it to be installed on Debian.
      4. Sun JRE 1.4: This comes as a "self-extracting" executable. In reality, it's a shell script with a tarball tacked on the end. I don't remember why anymore, but I had to futz around with the script to make it work. In addition, it depended on an old version of libstdc++ that I had to find.
      5. Oracle: Never used this, but I hear it's a bitch to get working on some systems.
      Now granted, they all use a custom installer rather than something like InstallShield, but I see parallels to Windows setup programs here.
      --
      The ocean parts and the meteors come down
      Laid out in amber, baby.
    4. Re:because that would be bad by Anonymous Coward · · Score: 0

      The fifth dependencies you are going to have to update to install that RPM you downloaded. And pray that you don't have some application already installed that requires that version of the library. "Just rpm -f it!" (and pray)

  29. best of both worlds? by Ender+Ryan · · Score: 3, Funny
    How about `/home/$user/My Documents' ?

    I don't see what's wrong with that... Personally, I keep a lot of miscellaneous documents in `/home/$user/Docs'.

    I can't stand the way in Windows everything is "My" this and "My" that... It's like it's made by Fisher Price for 3rd graders... I guess that would explain the new look in XP :)

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
    1. Re:best of both worlds? by Anonymous Coward · · Score: 0

      I add the word "Fucking" between each "My" and the noun. I have My Fucking Computer, My Fucking Documents, My Fucking Network Places. And I keep porn in My Fucking Pictures. It has greatly added to my windows-using experience, and I would suggest to Microsoft to use these sane defaults in their future operating systems.

  30. Use checkinstall instead by wct · · Score: 4, Informative

    Checkinstall automatically produces native packages (rpm, deb, slackware tgz) from a standard make install. I've found this gives the best of both worlds - easy, consistent package management coupled with flexible/optimized source configuration.

    1. Re:Use checkinstall instead by volkerdi · · Score: 3, Informative

      Because checkinstall uses tar+gz instead of Slackware's package building tool (makepkg), it produces broken Slackware packages. It should be fixed to use makepkg -- then I'd actually recommend it.

      Slackware packages are not simply tar+gz. It's important that the files are stored into the tar archive in a certain way, the correct version of tar is used, and the symbolic links are moved into the installation script properly, otherwise the package can't be effectively managed. You wouldn't try to make an rpm or deb with tar/cpio/bzip2/gzip/etc, so why people think they can tar up some files and call it a Slackware package is beyond me.

  31. Dependencies should use open format ... by vinod · · Score: 3, Interesting

    It is good to be able to use independent directories for applications that are installed at the site (i.e. not part of the distribution.) And RPM can accomodate such independent directories as well. Within the independent tree, the applications should standardize the directory structure just like in unix: ./etc etc.

    Then, putting symbolic links in various directories is bad idea. Instead, users could explicitly 'subscribe' to the directories. A special, user specific ./bin directory can be used to keep the subscriptions to bin directories of subscribed packages.

    Bad thing about RPM is that it uses a centralized DB for tracking dependencies, which can't be manupulated by hand. Instead, it could evolve to use 1. open format based on XML 2. Put the dependencies as part of independent directory tree of the package.

    In most cases, it is sufficient that dependencies be evaluated dynamically. After all, sysads know what they are doing.

    -vgk

  32. what about them? by Ender+Ryan · · Score: 0, Offtopic
    If you're the type who masochistically* installs everything from source, you can probably handle dependencies yourself.

    * yes, that would be me :) Seriously, I install everything from source just to keep abreast with how everything works. mmmmm... breast.... :)

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
  33. Stow is useful for a specific, simple task by Stephen+Williams · · Score: 1

    When I install software from source, I install it into its own directory in /opt, to keep everything together, and make it easy to uninstall.

    The problem with that is that one needs to put /opt/foo/bin, /opt/bar/bin etc. into one's path and /opt/foo/man, /opt/bar/man etc. into the manpath to be able to run the programs. This is a right royal pain. So I use Stow to set up symlinks from /usr/local, pointing into the application's directory in /opt. Creating all those symlinks by hand (and deleting them all after deleting a piece of software) would be tedious and error-prone; having Stow do it for me saves time and effort.

    That's all. Nothing more complex than that. This isn't "package management" at all; it's just symlink management. But it's blooming useful symlink management.

    -Stephen

    1. Re:Stow is useful for a specific, simple task by gbsmith · · Score: 1

      I do basically the same thing. I usually install RPMs on my Mandrake sys, but when I need something for which no good rpm exists, I put it under /opt (/opt/graft actually) and link it in. Used to use stow, but now I use graft
      which I think is a little nicer.

      --
      There is no off postion on the genius switch. - David Letterman
  34. How long by t0ny · · Score: 1
    how long is it going to take for something on linux to do what installshield does on windows?

    Am I missing something here, or is this really just like having a zip file throw things around into directories? I admit not knowing about linux, and am doing little to change that.

    --

    Manipulate the moderator system! Mod someone as "overrated" today.

    1. Re:How long by virtual_mps · · Score: 2, Interesting
      how long is it going to take for something on linux to do what installshield does on windows?

      And what would that be? Guess what things are installed and try to remove them properly? This is a tool for a system manager to keep track of what's installed on a system--windows has no advantage whatsoever for that. (Multiple programs overwriting the same dll, registry entries spreading everywhere, lack of seperation of users in many programs, etc., mean that there's a lot of work to do in windows.)

      I admit not knowing about linux, and am doing little to change that.

      If you don't know and don't care, wouldn't it be easier to just not post?
    2. Re:How long by vadim_t · · Score: 1

      What's wrong with throwing files around directories?

      Installation in Windows is a mess. It requires using a specialized program, that will increase your package in at least 300K in size, that will copy files to the appropiate place, register DLLs and update the registry. Manual install/uninstall is very messy.

      Besides that, you have multiple installers, each with its own bugs. Often they will leave unused files around after uninstalling, or will replace DLLs creating DLL hell.

      The new Windows Installer doesn't even make normal shortcuts. If you check one it doesn't point to a file on the disk. If you switch to another user you'll have to install it again, just like with Office because it wants some stuff written to the registry.

      Simple packages, and one unique installer already present on the system, like RPM or dpkg are the right way. IMO, InstallShield in itself shows a design weakness. You should be able to install programs by simply unzipping the program in the place you want.

    3. Re:How long by ADRA · · Score: 1

      Install shield does not delete old dll's anymore, unless I am mistaken. They make backups to the old ones.

      BTW, I use windows at work, and when was the last time a program wrote over a dll that broke anything (legal)?

      It is more a question people writing sane installers, and knowing what they should and shouldn't be messing with.

      --
      Bye!
    4. Re:How long by t · · Score: 1

      So if I understand you correctly, instead of having one program that manages all application installtions, you would rather rely on the people who wrote the application to not fuck your system?

    5. Re:How long by smittyoneeach · · Score: 1

      how long is it going to take for something on linux to do what installshield does on windows?

      Put vital information in a byzantine binary database?
      I grow to appreciate the unadorned simplicity of Linux more and more.
      t0ny, you have a point in terms of the general user, but, for the power user, the "I've got a secret" installer is unappealing.

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    6. Re:How long by Robert+The+Coward · · Score: 1

      Office 97 over writes several. Windows 95 would be extreamly unstable if you installed office 97 after ie 4.x or 5.x. Fix is to install office 97 first then everything else afterwards.

    7. Re:How long by t0ny · · Score: 1
      that is, per se, a problem with version control. And yes, it is a problem, but it has gotten much better in a windows environment in the past few years.

      I used to write network installation packages for Win9x and NT a few years ago with NAL, SMS, and Winstall, so I do know about this stuff.

      Also, it is well documented when a file gets overwritten (check technet with your errors), and an experienced tech should have a list in his head (and in a folder) about these things. For example, there are two files that need to be present in order to use both Access 97 and Access 2000 and some registry entries to change; the versions are from Access 97, but how to do it depends on the order you install in. If you dont do it correctly, neither will work. But its really a basic problem once you know.

      My point is, MS now takes steps in Win2000/XP and Office 2000/XP to make sure these things wont happen in the future. The thing I was wondering is why Linux seems to be so far behind the curve, as far as version control goes.

      Just as an outsider, I would say open source sufferes from lack of direction and standards, comparatively speaking. Linus only steps in (I believe) on kernel related issues, and everything else is getting sorted out (sort of) by the various distros. But once a certain method achieves the 'thats the way its done' status, it seems to stagnate. Look at the holy war between KDE and GNOME- the only thing they seem to agree on is disagreeing.

      --

      Manipulate the moderator system! Mod someone as "overrated" today.

    8. Re:How long by t0ny · · Score: 1
      Installation in Windows is a mess. It requires using a specialized program, that will increase your package in at least 300K in size, that will copy files to the appropiate place, register DLLs and update the registry. Manual install/uninstall is very messy.

      First, Win2000/XP and Office 2000/XP have gotten much better with version control, and will probably not have much trouble with things like this in the future. Also, in a world with 80GB hard drives, I dont think an increase of 300k is going to make any difference, to anyone.

      I used to build application install packages for network distribution a few years ago (Novell Application Launcher, Systems Management Server, and Winstall), so I know quite a bit about it, even tho my specific knowlege is a bit dated. And honestly, if you knew what you were doing, Windows installs werent that bad.

      The problem, actually, became really bad with IE4.x; thats why standardizing is so important in an enterprise environment. Once you get past that hurdle, making install packages is easy(er), because you just use the right tools.

      What I am basically asking, is if there is any deterministic logic in linux install packages. There doesnt seem to be, where as there IS in InstallShield. If I have 15-100 servers to maintain, I dont want to manually copy all the files onto each one. That is what makes the deterministic logic so important.

      The way I have always seen it, computers are made for doing routine tasks. So having ME do the routine tasks FOR the computer seems kind of dumb. You can get more work done by having the computer work for you, than the other way around. If you do things smart, you can do the work of 20+ people.

      --

      Manipulate the moderator system! Mod someone as "overrated" today.

    9. Re:How long by vadim_t · · Score: 1

      The 300KB extra aren't a problem on your hard disk. They become a problem when you try to store many small packages on CDs, or when you try to download them from the internet.

      Your IE 4 problem is exactly why windows installers are crap. With Debian I can have a program say "I want Foo 1.0" and another program say "I want Foo 2.2", and if both can't coexist on the same system, the installation will simply fail. If Foo is not installed, then it will be installed automatically.

      Of course there's some logic. As simple as "apt-get install mozilla". Just type that, and mozilla will be downloaded, uncompressed in the appropiate place, configured, and registered in the package database. And it's all open, if you're interested you can see exactly what config files are being changed.

      Maintaining 100 servers? Easy.
      for server in `cat server.list` ; do ssh -l root $server apt-get install apache ; done

    10. Re:How long by shellbeach · · Score: 1
      Am I missing something here, or is this really just like having a zip file throw things around into directories?

      Yes, you're missing the following:

      Stow has nothing to do with unzipping or any other form of decompressing files. Stow simply allows you to install all the files from a piece of software (i.e. what is copied during make-install) in it's own individual directory (which makes sense), and then it will automatically create symlinks in your path to every file within that directory.

      This means you have all the advantages of the unix path environment with /usr, /lib, etc; while still retaining each application's files within a single directory that you can easily find, modify or delete as necessary. Compare this to doing a normal make-install, where you have little idea what's been installed, let alone where, and certainly won't be able to uninstall it six months later unless you've been clever enough to keep the souce makefiles and they support "make-uninstall".

      Note - and this may be part of your confusion - Stow is not designed to be a replacement "package-management" software in the style of rpm or apt-get: Stow simply aids in managing software that you have compiled yourself, and it does this extremely well. But that's all it does :)

    11. Re:How long by LarsG · · Score: 1

      My point is, MS now takes steps in Win2000/XP and Office 2000/XP to make sure these things wont happen in the future. The thing I was wondering is why Linux seems to be so far behind the curve, as far as version control goes.

      What, exactly, do you find lacking in RPM or DEB?

      Can you ask the Windows box questions like "which software package does this file come from"?

      Can a Windows software package check that the DLLs required by the package are already installed on the computer?

      Can you find which config files (registry keys) that belong to a particular software package?

      Can a software package check for old config files (registry keys), and do the appropriate thing (i.e., overwrite with new values or leave old)?

      That's no problem at all on a proper Linux distribution, but is often a world of hurt in Windows land.

      Just as an outsider, I would say open source sufferes from lack of direction and standards, comparatively speaking.

      That is certainly a valid concern. It is unfortunately difficult to do something about it uless the entire community is willing to let one company or organisation set standards. With Linux you have the freedom to do whatever you like, but that does come at the cost of lack of standards.

      Linus only steps in (I believe) on kernel related issues,

      Linus is only interested in the kernel, and he doesn't really have the power to mandate stuff like file system standards, package formats and configuration file formats.

      and everything else is getting sorted out (sort of) by the various distros.

      The LSB does provide a sort of minimal base.

      But once a certain method achieves the 'thats the way its done' status, it seems to stagnate.

      For some things, yes. For others, not at all. SysV init, for example, works ok for most of us so there isn't really much pressure to replace it with something else. But legacy support is, imho, less of a problem in the Linux world than in Windows (how long did it take MS to ditch MS-DOS?). Stuff that is 'good enough' stagnates unless some programmers come up with a better solution or someone needs a better solution and pay open source developers to write it.

      Anyway, the source is there so feel free to fix if there is something you think is missing. ;-)

      --
      If J.K.R wrote Windows: Puteulanus fenestra mortalis!
    12. Re:How long by LarsG · · Score: 1

      Note - and this may be part of your confusion - Stow is not designed to be a replacement "package-management" software in the style of rpm or apt-get: Stow simply aids in managing software that you have compiled yourself, and it does this extremely well. But that's all it does :)

      That is an important clarification. Stow lacks a lot that you would want in a package manager - like configuration file handling and dependency checking.

      But as a tool to keep the stuff in /usr/local sorted for software where you don't want or need to write a full blown rpm or deb, it seems great.

      --
      If J.K.R wrote Windows: Puteulanus fenestra mortalis!
    13. Re:How long by t0ny · · Score: 1
      thats actaully what I wanted to know. so there is some sort of deterministic logic involved.

      Your IE 4 problem is exactly why windows installers are crap.

      That wasnt really a problem with the windows installer, it was a problem with the programmers bloating the registry with poorly considered entries, a whole lot of files, etc. I remember, at the time, MS saying they wouldnt support your server if it didnt have IE4. Of course, we didnt do it- that would have been stupid. Eventually, better minds prevailed and IE 5 came out. So MS gets it right, eventaully.

      Now they have automatic update. We dont use it, but Im waiting for the corporate version where we can push updates to our networked client machines. With the servers, an admin should need to say, ok, go update such-and-such machines; I would be livid if autoupdate grabbed something that crashed the server. HULK SMAAAAAASH!!

      --

      Manipulate the moderator system! Mod someone as "overrated" today.

    14. Re:How long by vadim_t · · Score: 1

      Well, to begin with, a web browser having something to do with servers doesn't make any sense. In Linux there are very few programs that can't coexist together in the same system. One I can think of is mail servers, but that happens because they all offer one unique interface (/usr/sbin/sendmail), and it makes little sense to run two different mail servers on the same machine anyway. It's not that it's completley impossible either, with some effort it can be done. BTW, I'm not so sure MS got it right. I'm pretty sure that at some point they'll tell you that now they don't support IE 5 either, please upgrade to IE 6. Is there any tool to upgrade IE on 100 computers at once?

      Heh, now that's fun. You're waiting for the corporate version. Maybe try to switch to Unix. This kind of functionality has existed practically since it was invented.

    15. Re:How long by t0ny · · Score: 1
      What, exactly, do you find lacking in RPM or DEB?

      Nothing, I guess, since I dont use linux. I was just asking a question. Can you ask the Windows box questions like "which software package does this file come from"?

      No, but you can search the registry and see what is tied to it. There may also be a better way in Win2k/XP, but as I said, I havent dealt with this stuff in a few years.

      Can a Windows software package check that the DLLs required by the package are already installed on the computer?

      Sure, all the deterministic tools are there. But if the person packaging the install does a bad job, it really doesnt matter.

      Can you find which config files (registry keys) that belong to a particular software package?

      sure, it should be in the branch (key). If your program uses HKLM\Software\Crapsoft\Modules whatever, you SHOULD be listing all your entries under whatever keys you are using. The problem, however, is that a lot of vendors throw registry entries all over the place, and do a poor job of cleaning up their mess. That is not a problem with MS, its a problem with the developer.

      Can a software package check for old config files (registry keys), and do the appropriate thing (i.e., overwrite with new values or leave old)?

      Sure. All the deterministic tools are there, but if they arent being used... for example, AOL is notoriously bad at both not cleaning up old installs, not uninstalling correctly, and overwriting important files during install. There was a problem about three years or so ago where they did something to mess up every network connection on the computer except the AOL connection. It was pretty much a case of them assuming you would not be connected to anything else, so any user putting this on their work computer would be in for a world of hurt.

      how long did it take MS to ditch MS-DOS?

      well, that depends. You could say that Win95 got rid of it, since Win95 didnt use MS-DOS as it was; it basically assimilated it. MS-DOS 7, which is what Win95 used, was not a true DOS, and a lot of commands and functionality got whacked.

      However, if you are talking about tha ability to use a command prompt, I dont see they can ever take that out, or would even want to. If you need to go 'underneath' the GUI, so to speak, you would want to use the CLI.

      I think the worse problem is how long it took them to dump LAN Manager. Ugh, all that NetBIOS over TCP/IP stuff really causes problems. Fortunately, if you use Active Directory you can finally get rid of it (depending on how much legacy stuff you can either adjust or get rid of).

      Anyway, the source is there so feel free to fix if there is something you think is missing. ;-)

      haha! thanks, but Im sticking with Windows. I tried to look into linux a bit, but didnt/dont really have the time. At this point, if its not building on something I already know, there are other things I need to be doing. One thing I was disappointed with was not being able to use it on an old machine. I mean, when the base install is over 1gb, that kind of excludes using an old 486 w/ 250mb hd.

      --

      Manipulate the moderator system! Mod someone as "overrated" today.

    16. Re:How long by t0ny · · Score: 1
      Oh, I agree the issue of needing to have IE4 was total crap. But we ignored it, and MS came to their senses. I just think of it as the Marketting company temporarily having too much say-so. There is currently no support requirement for NT's web browser, just a requirement for service pack level (SP6a), and even that is not a hard limit. They will still work with you if its not there.

      But I wasnt saying the browser had anything to do with the OS, I was just stating that as an example of how version control has improved in Windows. Quite frankly, it was good before and after the IE4 stuff- it was just that period was very long, high profile, and very problematic.

      BTW, I'm not so sure MS got it right. I'm pretty sure that at some point they'll tell you that now they don't support IE 5 either, please upgrade to IE 6

      Well, they do stop supporting the browser, but there is no longer a requirement to have a browser installed. But eventaully they will stop supporting NT4, and after that it becomes a moot point.

      I think their somewhat loose rule is to support the current version and the previous version. Beyond that, they would rather phase out the old versions. Are they right? I guess. Overall I dont think it really matters; a server application that runs on NT4 will, 99% of the time, run on Win2000; installing services hasnt changed. Its the crappy apps that need to run in the user component which cause problems. But like anything technical, you can figure out ways to get around it.

      Is there any tool to upgrade IE on 100 computers at once? Yes, in Win2000 and beyond you can use Software Update Services (SUS); it runs on a server, and will work with clients configured to pull their updates automatically (in lieu of going out to the internet). The nice thing about SUS is you expressly tell it what to make available for updating. You can also have it run as hands-off, just pulling from MS and mirroring it locally.

      And ya, I know Unix has strengths in remote admin. I actaully know ABOUT unix, mostly as a NOS, but dont actaully use it. A lot of the knowledge comes from trying to get NT to do something, and reading "in unix you can do blah blah, so we made this win32 utility to do that."

      It does amuse me how so many current problems (and not just in Windows) were been-there-done-that over 20 years ago by Unix.

      --

      Manipulate the moderator system! Mod someone as "overrated" today.

    17. Re:How long by LarsG · · Score: 1

      haha! thanks, but Im sticking with Windows

      Fair enough, if it works for you.

      I tried to look into linux a bit, but didnt/dont really have the time. At this point, if its not building on something I already know, there are other things I need to be doing. One thing I was disappointed with was not being able to use it on an old machine. I mean, when the base install is over 1gb, that kind of excludes using an old 486 w/ 250mb hd.

      Many of the latest distros are certainly bloated, no argument about that. Then again, you wouldn't expect to be able to install this year's or even last year's version of Windows on a '486.

      That '486 should work just fine with some of the special purpose distros floating around - like floppyfw or TSL.

      --
      If J.K.R wrote Windows: Puteulanus fenestra mortalis!
    18. Re:How long by Robert+The+Coward · · Score: 1

      that is, per se, a problem with version control. And yes, it is a problem, but it has gotten much better in a windows environment in the past few years.


      Don't Disagree with that but Redhat Since 3.03 doesn't have many problems with version control. Its built into RPM and there by default. Most of the problems with Dependance hell is the results of badly writen .rpms that assume certain things about what is or isn't install and linking to library assuming that API wont change between versions both are a mistake on the developer not the package manger.

      Also, it is well documented when a file gets overwritten (check technet with your errors), and an experienced tech should have a list in his head (and in a folder) about these things. For example, there are two files that need to be present in order to use both Access 97 and Access 2000 and some registry entries to change; the versions are from Access 97, but how to do it depends on the order you install in. If you dont do it correctly, neither will work. But its really a basic problem once you know.

      I agree and it didn't take me long to figuire out what was going on and to make sure I alwas install office 97 1st with its broken installer and then IE after to fix things. Not a problem for me but my day job is Tech Support and how do you explain to someone that there PC stoped working right because they installed a new compont off the Office 97 CD and not a problems with the software I use to support. If windows had bult-in library checkers and other things that both RPMS and Deb have by default alot of the problems custmer have today would never have happen in the 1st place. Windows isn't that unstable if all you run is windows but once you start installing programs then it starts to become unstable.

  35. SEPP ideal package management by schweikert · · Score: 2, Informative
    SEPP is a package management system that allows to separate packages in directories like Stow and similar, but in addition:
    • solves the distribution problem by allowing to mount packages with NFS and using the automounter to make the applications available under a standard path (/usr/pack/PACKAGE)
    • provides for each application a wrapper script that takes care of all the necessary environment setup so that users don't need to edit their bashrc
    • supports installation of multiple versions of the same application by installing version-tagged binaries in addition to the normal binaries. I can for example run mozilla-1.1 or just mozilla, in which case I get the "default" version. This is very important for example for a Ph.D. student that wants to finish his thesis with Matlab 5.3.
    • automatic generation of web documentation (have a look here)
    • usage logging with syslog
    • dependencies
  36. Editorial problem by skillet-thief · · Score: 1

    The article really should have tried to do a quick comparison with other package management systems, though I guess that is what /. is going to do anyway.

    --

    Congratulations! Now we are the Evil Empire

  37. bah by Illserve · · Score: 2, Funny

    I don't need help managing my package, thank you very much.

  38. more like Windows? careful what you ask for by fw3 · · Score: 1
    Yes linux has 'dependency hell' ... Win has 'DLL hell' which imo/imx is far worse.

    Most (nearly all) of those install-sheild routines install the versions of dlls that the vendor has found it needs to work, and it's standard(sic) that winX applications install libraries into system areas.

    That's just plain ugly, and why Win32 can be a very solid system iff you stay in the realm of well-engineered server applications, and So, so unstable when you turn lusers loose on it ('Ohh I really must have this latest whizbang screensaver or desktop doodad ....).

    Imo this idiocy directly stems from the DOS/win16 programming(sic) history where there was no isolation at all from the hardware and many (most?) programss were coded to do all sorts of inane low-level calls to bios/hardware.

    This just isn't allowed in Unix(linux,bsd ...) and it's as much a social/cultural issue as a technical one. Unix has 2 decades of enforcing the distinction between what's in the 'OS' hierarchy and what's in application space. Whether you want to discuss source-builds, defaulting to install in /usr/local/ or commercial installations which usually go into /opt, I've yet to see an application which would overwrite system libraries.

    <RANT>
    It's my observation that much of the shoddy coding that's found it's way into opensource in recent years is the direct result of windows coders bringing these bad habits into Linux.

    The vast majority is being written without thought for portability and works only Linux and assuming the GNU toolchain (and often relying on version-specific features within same). Even within Linux, the difficulties associated with building code from source has taken many steps back into the past. Try building Gnome directly from sources.

    A decade ago it was like this installing free / pd / gnu / oss software on the various proprietary Unixes. Sadly, after a period of big gains in portability, software builds are moving in the other direction. The complexity (often useless/needless imo) of much modern oss code has benefits, it also has drawbacks.
    </RANT>

    --
    Linux is Linux, if One need clarify their dist: <Dist>/GNU Linux
    bsds are of course just BSD
  39. Hrmm.. by st0w · · Score: 1

    Not a very on point post, but I must admit... I get a kick outta this product, only 'cause I've been using "st0w" as a handle for about 10 years now... heheheh http://www.st0w.com And I would like to reiterate that I'm far better at managing software than rpm. I'm mildly offended...

  40. RPM by NitroPye · · Score: 1

    I find that RPM only works well if you use nothing but RPMS. If I were to download the tarballed source of package X and build it for any number of reasons RPM would not notice the library or software or whatnot and I would be forced to use a --nodeps tag.

    I dont think that a package manager should rely entirly on previous packages installed in one big database. I think package managers should try to do that PLUS there should be a tried and true (tried and true is that the proper phrase?) way to Anylize packages installed on a system.

    I think that somewhay to tell which software is install on the system should be dynamic. There should be a file in which i point to all the places on my system where software is installed(ie. /usr, or /opt, or /home/username)

    Also another complaint I have with package managers is that I usually have no choice over where they get placed. When building from source I have the great option to append --prefix=... to configure (assuming the source complies with standards and such).

    Even more offtopic: ever notice that software from large companies usually dosent conform to any kind of standard. Even if it is OSS ill see no autotools stuff. Ohh well probably just a GNU thing.
    </End confusion>

  41. Looks like Packman by Simon+Lyngshede · · Score: 1

    This looks like packman (http://pack.sunsite.dk) only it's written in Perl instead of Python. Packman seems to have more features, like using a configuration fil (Does Stow have this?) also the packman.map which tells packman what to link and what not to link. Only problem is that packman was written for Python 1.5 and needs to be updated.

  42. Don't like Stow? You've got TONS of alternatives by jonabbey · · Score: 1

    See the opt_depot page for one, and for links to another dozen or so packages that do the same sort of thing in varying ways.

    Stow is really a rather GNU-come-lately entry to the Depot arena.

  43. Duh! by Hard_Code · · Score: 1

    I've been ranting about the stupidity of the FHS, and /,/usr,/usr/local directories for a long time, but all I get is vacant stares and comments along the lines that I am crazy for ever wanting to store applications in their *own* directories, as opposed to littering their content horizontally over the filesystem. But now this simple idea is illustrated in a developerworks article and all of a sudden it's "obvious". argh </vent>

    --

    It's 10 PM. Do you know if you're un-American?
  44. IBM did'nt learned its lesson yet by Anonymous Coward · · Score: 0

    By reviewing a better way to manage packages in Linux, IBM is destroying the value of Unix.

  45. Recursive Paths by awol · · Score: 1

    I have oft wondered about whether order not it would be good in the *NIX paradigm to have recursive paths. That is, you put /usr/local/bin in your path and then any files under that location would be in your path, eg /usr/local/bin/packageA/moduleB/bin, /usr/local/bin/packageX/bin, whatever (same for LD_LIBARY_PATH etc). Clearly you would not want this to be a universal rule since it is convenient to have "." in ones path some time but that would be recursively bad (same for some other directories as well probably). There is probably some good reason why this is a bad idea, butI have no idea what that is (sym links for example could be handled).

    --
    "The first thing to do when you find yourself in a hole is stop digging."
    1. Re:Recursive Paths by spitzak · · Score: 1
      This requires changing the rules in all the shells, which is really why it isn't done. But it needs to be done!

      The rules for execution of a file need changes. There should be "app directories" like OS/X excecpt there should not be any ".app" in the directory name. If "foo" is such a directory then attempting to run "foo" will run either "foo/foo" or "foo/main" (I'm not sure which is better). When this happens argv[0] is forced to be the full name of "foo" so that the program can easily locate other files in the same directory. Also it sets LD_LIBRARY_PATH to have this directory at the start.

      This would easily allow applications to be "installed" where the shell paths can see them, and even moved or renamed.

  46. Eazy-E by pete-classic · · Score: 1
    With Stow, you can package applications in standard tar files and keep application binaries logically arranged for easy access.


    I'm sure we all remember that Eric Wright (RIP), when asked why he stows his package like that, said "for easy access, baby."

    -Peter
  47. does not work by Ender+Ryan · · Score: 1
    This is not a problem, since you can configure AND install the package in /usr/local/stow/packagename. Since the real files will reside there, the program can look for them there.

    That does not work, for a number of reasons. 1. This totally breaks Gnome. Gnome simply cannot be installed this way. 2. This can totally fuck up your shared libraries. There's a few other problems as well...

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
    1. Re:does not work by bkhl · · Score: 1

      a) I have empirically observed that it works.

      b) Since Stow puts links in /usr/local/* (or wherever you tells it to) you get your libs etc. both in /usr/local and /usr/local/stow/packagename. Problem solved.

    2. Re:does not work by Ender+Ryan · · Score: 1
      1. No, this DOES NOT work. Read the Gnome docs, they explicitly state that things like this will cause problems. Have you gone through and installed every Gnome package in this manner? I have, and it absolutely does not work. Nor can stow even handle installing all the packages, as it has a major bug in it's handling of directories. To make Gnome work, most of the packages have to be ./configure'ed for the same path, as per the Gnome docs.

      2. If you configure lib packages into places like /usr/local/stow/packagename, the name-config, or pkg-config will report /usr/local/stow/packagename/include|lib for includes/libs. Programs will link according to this, instead of linking how they should. I have observed many a program break because of this, for a number of different reasons. Granted, it's due to poorly written configure scripts and makefiles, but nonetheless it's a sub-optimal solution because it causes many common programs to simply not work.

      This type of software management is disgusting hackery in any case. My solution makes the system at least appear more "normal", but it's still crap.

      --
      Sticking feathers up your butt does not make you a chicken - Tyler Durden
    3. Re:does not work by Anonymous Coward · · Score: 0

      GNOME, on the whole, smacks of windoze-coders. The gnome mailing lists are full of bandwagon -jumpers from the windoze camp. This includes Miguel de Icaza.

    4. Re:does not work by bkhl · · Score: 1

      I did it by installing everything GNOME in /usr/local/stow/gnome. I didn't get any trouble, but then I didn't have that very many packages linking to it.

      However, I agree that a real package manager is better for this kind of task.

      Nowadays I run Gentoo, and don't use stow at all (actually, I don't have a single file /usr/local). I have found that making ebuilds are almost as comfortable when installing and much more comfortable when upgrading a package, since I don't have to manually go through the install process every time. Mostly, I actually just have to rename the .ebuild-file, and emerge fetches and builds the package for me by a single command.

    5. Re:does not work by Ender+Ryan · · Score: 1
      I did it by installing everything GNOME in /usr/local/stow/gnome. I didn't get any trouble, but then I didn't have that very many packages linking to it.

      Exactly, you put everything into the same prefix, ie. /usr/local/stow/gnome, you didn't break it up into separate packages.

      However, I agree that a real package manager is better for this kind of task.

      Definately! The only reason I use `srcpkg', and previously used `stow', is because there's no better alternative for installing everything from source and managing everything yourself. I'd like to see some kind of packaging standard that source distributed packages could use... Oh well.

      I haven't tried Gentoo yet, but it sounds pretty good. I don't have a spare machine to test it on currently though. Should have one within the next six months though, so I'll give it a whirl :)

      Cheers!

      --
      Sticking feathers up your butt does not make you a chicken - Tyler Durden
  48. Bullshit! by Anonymous Coward · · Score: 0

    > management utility for Linux that offers a number of advantages over
    >the tried-and-true Red Hat and Debian package management systems. With
    >Stow, you can package applications in standard tar files and keep
    >application binaries logically arranged for easy access."
    >
    >
    Anything that requires Perl or any other such language is totally worthless. The advantages of rpm and apt is that they are pretty much self contained.

  49. Why I Still use Debian by Anonymous Coward · · Score: 0
    It just works. Debian also has stow packaged. So, if I find something that I like and it's not packaged for Debian I do one of two things:
    1. If I have the time, I find out why it's not packaged for Debian. Then if I still have time, I'll package it for Debian.
    2. If I don't have the time, I'll just install it using stow and make a note to go back and package it later.
  50. Stow is great! by __david__ · · Score: 2, Informative
    I've been using stow for years. I use it on RedHat, Debian, Solaris, and Mac OS X. It's just a perl script so it is very cross-platform.

    One thing I noticed is that the author of this aritcle installed stow into /usr/local/stow/stow but then didn't stow it. He says:
    2. After installing Stow, add the absolute path to the stow directory to the $PATH variable.
    I always stow stow itself so that I don't have to mess with paths. Most every OS already points to /usr/local/bin. This line will bootstrap stow:
    /usr/local/stow/stow/bin/stow -d /usr/local/stow stow
    Despite the authors implication, stow isn't meant to be compared to rpms or .debs. It's a tool for managing your /usr/local heirarchy. And it's very good at that.

    The one thing to look out for with stow is "make install" on various packages. I learned to ALWAYS "make -n install" because a lot of packages are broken and don't install into the "prefix". That is, even thought you "configure --prefix=/usr/local/stow/xxxx" the dumb package will still try to put things in /usr/bin or /usr/local/bin or some other hardwired path. I've had to clean up numerous braindead makefiles.

    The greatest part of stow is not the installation, it's the deletion. Before I knew about stow, I didn't ever attempt to delete anything in /usr/local. When you look at a random file, it's impossible to tell where it came from! With stow it's a symbolic link so you can tell who "owns" it, and with stow -D, you can remove whole packages at a time. I've used it for installing new compilers: I have 2 gccs in /usr/local/stow/gcc-arm-elf-2.95 and /usr/local/stow/gcc-arm-elf-3.0.

    This:


    stow -d /usr/local/stow -D gcc-arm-elf-2.95
    stow -d /usr/local/stow gcc-arm-elf-3.0


    Will switch from the old compiler to the new compiler. It's just as easy to switch back to the old compiler if you need to.

    Ah. I love stow!

    -David
  51. Re:Don't like Stow? You've got TONS of alternativ by Scrudge · · Score: 1

    Shameless Plug:
    spkgtool (http://www.scrudgeware.org/projects/Spkgtool/)
    i s another alternative. It's beta now, but we're
    looking for testers and package maintainers.

  52. Ho Hum by Arandir · · Score: 1

    ...the amazing Emerge package management tool.

    Amazing? Maybe if you've never seen it before. Maybe if you think the Free Unix world consists only of Linux. It's like saying "my new Sony television has this remote control feature that's amazing!" Yes it's amazing if you're never seen a remote control before. But it's still old hat. Yawn.

    Now please excuse me, I need to upgrade a new set of ports that just arrived for my FreeBSD machine.

    --
    A Government Is a Body of People, Usually Notably Ungoverned
  53. You don't want InstallShield by Wee · · Score: 4, Insightful
    how long is it going to take for something on linux to do what installshield does on windows?

    I was a build engineer for a large telecom company who had a commercial Windows product which used InstallShield. I wrote the installer for that product (twice). I've been using Linux since 1994 in various ways. I know InstallShield and I know Linux, and trust me, you don't want IS for Linux, no matter how much you think you do. People are better of sticking to whatever package management system comes with their distribution than pining away for something like InstallShield.

    Having a single point of installation management is far superior (even with dependancy checking issues, like sometimes happens with RPM) than leaving it up to the software maintainers. Windows should have orginally shipped with such a centralized system IMO. Now they force software developers to jump through hoops (which cost money, incidentally) in order to get a sticker on their box saying their software was "Designed for Windows". Barring that "certification" a person can do whatever the hell they want in an installer, and your system can become an unorganized mess in very short order.

    Even now on this Win2K machine I've got more than a dozen apps (most of which are commercially released) that aren't listed in the Add/Remove Programs applet. If I install something via RPM or apt, that can't happen. I just have to hope that one of those Win32 apps doesn't conflict with something else down the road, since there's no way to remove them programmatically. That's a critical flaw of Windows' installation setup, IMO. Just one that happens to come to mind, even. I could go on all day...

    I admit not knowing about linux, and am doing little to change that.

    Your parents must be terribly proud at having imbued in their progeny such an insatiable thirst for knowledge.

    -B

    --

    Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.

  54. Re:Don't like Stow? You've got TONS of alternativ by jonabbey · · Score: 1

    Groovy, I'll add a link to the collection on the opt_depot page.

  55. try this with Gentoo by Anonymous Coward · · Score: 0

    emerge "clue"

  56. Gentoo by Slime-dogg · · Score: 1

    Stow looks like emerge for binaries, only with fewer options. :-)

    It's the user's choice, as always. Emerge/portage will give the user an optimized system at the expense of compile time, looks like stow will have that same ease of use.

    Looks cool. I hope that they come up with a good graphical frontend for it. Package management is one of those Really Important things when it comes to Linux on the desktop. We don't want end-users to have to deal with dependancies and all that.

    --
    You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
  57. Checkinstall DOES use makepkg by izto · · Score: 2, Interesting

    And has used it from the very beginning. So you could start recommending it right now ;-).

    Checkinstall was initially developed in the time when makepkg had no command line options to answer the questions about symlinks and permissions, so Checkinstall uses by default a makepkg from Slackware 7.1 which was hacked to not ask those questions and instead assume specific answers to them. And it has been updated with the changes and patches introduced in Slackware 8.0 and 8.1 (i.e. the "slack-desc" file with handy ruler and all)

    Aditinally, you can still use Slackware's native makepkg if you set the MAKEPKG variable in checkinstall.

    1. Re:Checkinstall DOES use makepkg by volkerdi · · Score: 2, Informative

      The fork of makepkg used in checkinstall produces broken packages, because it uses the wrong version of tar. This packs files differently, and it DOES make a difference.

      As soon as checkinstall uses Slackware's native makepkg by default on Slackware I'll be inclined to recommend it. Still, it's misleading to users of other versions of Linux who might think they are building correct Slackware packages and aren't. I did commit one patch to installpkg to detect and correct for the most common problem with non-standard packages, but can't correct for them all.

      Pat

    2. Re:Checkinstall DOES use makepkg by izto · · Score: 2, Interesting

      Yes, I found out about this recently, and already patched checkinstall to use the right tar version if available. The issue was kind of confusing, though: having two different tar binaries in a Slackware system, with "tar" being the wrong one to use when building a Slackware package.

      Feel free to contact me with any other issues about the way checkinstall creates the Slackware packages. Building proper packages for the system it is running on (Be it Slackware, Debian or RPM based) is very important for me. The Debian folks are particularly picky about this and we've managed to get checkinstall to build mostly Debian-compatible packages already, for example :-)

  58. I can't spell.. by Large+Green+Mallard · · Score: 1

    environment :)

    It's early here

  59. No ... don't use make-install, use configure!!! by shellbeach · · Score: 3, Informative
    We (the Tcl core developers) have had problems in the past with Stow, mainly because it relies on being able to specify the installation process at 'make-install' time instead of normal 'make' time, leading to messed up baked-in paths... :^/

    Yes, but that's only a problem with the stow documentation. Use "--prefix=" during configure and you'll have no worries at all (except that the "baked-in" package names will be '/usr/local/stow/yourpackage/etc ...', but that has never mattered to me and I have about fifty stow packages installed on my system, with everything from gtk-2.2 to lyx to rxvt).

    I have used stow for the past year and absolutely love it. It allows me to have complete control over all the software I compile by had, as opposed to the base system installed by my distro. And since I have a bash alias to ./configure to include an automatic prefix assignment based on the directory name I'm configuring from (which is almost always based on the name and version number of the software), I can compile a new version and

    stow -D /usr/local/stow/foo-1.2

    stow /usr/local/stow/foo-1.3

    ... without losing my old version that I know works. (so, if my new version segfaults, I can "install" the old one simply by reversing the above process)

    And ... I can do a simple "du" command in the /usr/local/stow directory to see exactly how much disk-space each package is using and I can easily find, modify or delete a part of a package I compiled months ago!

    Stow is one of the most fantastic pieces of software, and it's simplicity itself as well. It reports conflicts and only installs sym-links. The scary thing is that this is the first and only time I have ever seen it reach "mainstream" coverage - like most of the best linux software, it seems to be unheard of and unused.

  60. Re:You don't want InstallShield ... seconded by Anonymous Coward · · Score: 0

    I agree, you don't want InstallShield. It sucks to program and sucks to use. Why don't more appliations install as follows:

    Put the main executable in /usr/local/bin and all other files in an application specific directory and set a shell variable to hold the application home directory location and have the main executable read the appliation's home shell varible to find everything.

  61. Re:You don't want InstallShield ... seconded by Wee · · Score: 1
    Put the main executable in /usr/local/bin and all other files in an application specific directory and set a shell variable to hold the application home directory location and have the main executable read the appliation's home shell varible to find everything.

    There a limit on environment variables? Would having 934 such env vars slow down bash? I wouldn't even know.

    The more I think about it, the more I think emerge and apt have the right idea.

    -B

    --

    Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.