Unifying Linux Package Management
Job Diogenes Ribeiro Borges writes "The Smart Package Manager is an intelligent tool that works on the 'dependency hell' of software upgrading and installation on linux. Works with all major distributions (APT, APT-RPM, YUM, URPMI, etc), supporting multiple sources and technologies concurrently. Yes, you could install from multiple sources, from deb, rpm, tgz at same time! Smart Package Manager is being developed by Conectiva and is the tool that makes the Magic of CrossPlatform package management, behind the recently announced 'Four Linux Vendors Agree On An LSB Implementation.' You can get screenshots here (portuguese texts) and a README here."
I give it a week before the infighting starts and the project gets forked six times. Getting a bunch of Linux geeks to agree on a unified ANYTHING is just not going to happen in our lifetimes. Get over it, treat each distro as a diferent OS and get on with your lives.
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
Combining the weaknesses of five different package managers will surely alleviate "dependency hell."
I'll be over here, playing nethack on my NetBSD box and giggling.
Cretin - a powerful and flexible CD reencoder
From the people who wrote apt for RPM, it'll probably work well.
What happens when Debian .debs and RedHat .rpms want to install to different places? If you installed as one type, would you be then forced into using the same type of archives every time?
For library locations, ld would probably take care of it.. I'm not sure I can think of any off the top of my head but there may be programs that rely on other components being in a certain place, and possibly barfing if they are not.
Delphis
is good enough on my mandrake box. And I am pretty sure that debian folks will say the same about apt.
This tool really points to the fact that Linux distributions in general are all over the map regarding the installation of packages.
I believe that this tool could be VERY useful to an average user, if they can manage to get it installed and configured. From what I've seen, there are many steps to getting this to work.
Linux distributions have a big problem with package installation and management from an end user point of view. They are a MAJOR pain in the ass, even for experienced users like myself.
Hopefully this develops further and provides us with something to aid in distributing Linux over more desktops.
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d Capitalization really works: i helped my uncle jack off a horse
Software installation using any of the package managers above is usually easier than your average software installation in Windows.
Want Gimp? Type 'apt-get install gimp' and it's there. You don't even have to hit a "Next" button... although the typing may scare off most Windows users.
LilMikey.com... I'll stop doing it when you sto
no emerge? count me out... .and vice versa...
you already could use apt with rpm based distros..
I for one, welcome our new hot grits... PROFIT!
...Debian.
I switched to Debian specifically because of the ease of use with the packaging during the era when RPM still sucked massively and was fragmented between RedHat, SuSE, and Mandrake so badly that they couldn't use each others' RPMs.
If I want to not have dependency-based packages I use Slackware, where I use Slackware's tarred gzips or I download source and compile it. If I want a workstation where I can grab X piece of software easily, then it's Debian.
The only thing that this'll be useful for, for me anyway, is installing software that companies release RPM-only, binary only that don't have Open Source alternatives.
Do not look into laser with remaining eye.
I've found a great solution to this problem!
No, you haven't.
Yeah, the ease of installation of new packages is unbeatable! I just cruised a few websites, and all sorts of stuff was automatically installed.
I'm still compiling!!
Here's a coralized link to the screenshots, too:
deb...rpm...slack What? no Portage? what about my eBuilds?
Projects like this create a top-down pressure for packaging formats to standardize, adopt each other's features, and work on new features collaboratively. By having an developer community abstracting package formats and procedures, the package system authors get a comparative peer review, rather than just user feedback. This highlights the benefits and shortcomings of each packaging system in a much more impartial manner than any magazine review or forum discussion.
The GUI part of it really doesn't appeal to me. Lots of my machines are headless, and even with X11 I remote display don't particularly like the idea of installing umpteen X11 toolkits and support libraries on a router/fileserver/webserver just to support package management. It's good to see that they have commandline utilities as well.
Someone had to do it.
If Fedora chooses to include it in the future, I'll give it a try. Until then, however, I think I'll stick to the evil I know (yum), rather than playing musical package managers.
Please, if someone's making a new package management system; give it the ability to run as a normal user and install in $HOME/bin, and give it the ability to run as a member of the group 'local' and install in /usr/local
I know a lot of people have issues with Gentoo's focus on having the user compile packages that they download using portage, but what would be wrong with simply developing Portage and increasing the availability of binary packages?
Prosperity is only an instrument to be used, not a deity to be worshipped. Calvin Coolidge
Isn't the idea of a "Unified Package Management System" a way for multiple distributions to use the same installation source? Why on earth did they make a way for a single distribution to use MULTIPLE sources? that's not unified at all....if I wanted to install RPMs, DEBs, and TGZs on my system all at once, I'd have done it
Can you say "Gentoo"? I almost don't even care what a dependency is anymore.
What if I want to install Gimp in /opt/gimp instead of where ever the package maintainer decided to put it, how do I tell apt or rpm to change the location? All in all, its much easier to install software in Windows, especially if you'd like to have some control over your file system.
"I use a Mac because I'm just better than you are."
If someone has a solution to fix this then I'm all for it and would support it with all my heart.
The site is naturally slashdotted so I can't check any details.
You are not entitled to your opinion. You are entitled to your informed opinion. -- Harlan Ellison
There is no issue with multiple package managers (PM). Each distribution provides a PM which serves it's distribution just fine.
I've tried all the major distributions, and all the major PMA's. Almost all open source software provides binary PM's for the major 3 formats. And for those few exceptions, you send a request to your distribution and they'll get one for you, if you can't compile or build a package yourself.
So, what's the problem here????
Linux == Diversity !-> Confusion
I think this is only an issue with recent Linux converts.
FreeBSD ports works just fine for me :).
...instead of trying to hack together all the different kinds of package management?
It seems to me that the way to fix this thing is to just pick one and then fix whatever shortcomings it has, instead of combining all the shortcomings of everything (except Portage, apparently).
"[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz
just create a single package management base that can work with source and binaries. Something like Gentoo's portage but more configurable for all users (not just ones with lots of cpu to burn on -O3 compiling all day).
The Next button serves a purpose: It allows the user to change the default install options. I want a Next button and I want options. I don't want 100% automatic installs. I thought Linux was all about control?
I've used Gentoo's portage system. This just seems
to be more of the same concept.
Having every component of an application updated weekly will ensure half my builds won't compile twice in a row, let alone give me a repeatable environment to debug in.
Gah! What a nightmare.
-- Programming with boost is like building a house with lego. It's a cool but I wouldn't want to live in it
We should at least try to hold out some hope here. Really, it could provide an opening to 5+ package managers weaknesses...or it could truly unite program management.
Honestly, this is something that is desparately needed in the linux world...it is pretty obvious that the biggest hurdle to running linux is the fact that it is hard to update and patch. Granny don't know apt-get -dependancyhell -fubarproofmycomputer
Our linux community really needs something as FUBAR proof as microsoft's start menu icon that says autoupdate...or better yet a background app that does it all for us. Gentoo is a start, but not the end.
This is a journey we are on, we have a lot of different starting points, but the thing we need to keep in mind is that we all need to reach the same destination at the same time with package managment. *Nix acceptance and usability will be greatly enhanced by having a stand alone, all encompassing package manager.
Who is this that even the wind and the waves obey Him? Surely this computer must submit also!
if linux is to be truly ready for the desktop we need a syatem like in OSX. Something that is as intiitive and simple as dragging an icon to the applications folder to install and then dragging it to the trash to uninstall. That should be it. I know there are arguments against this apprach from geeks who talk about the waste in having redundnat libaries, but this is not intenedeed for geeks it is for people who want software to just work.
The war with islam is a war on the beast
The war on terror is a war for peace
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Ma quande lingues coalesce, li grammatica del resultant lingue es plu simplic e regulari quam ti del coalescent lingues. Li nov lingua franca va esser plu simplic e regulari quam li existent Europan lingues. It va esser tam simplic quam Occidental: in fact, it va esser Occidental. A un Angleso it va semblar un simplificat Angles, quam un skeptic Cambridge amico dit me que Occidental es.
Epsum factorial non deposit quid pro quo hic escorol. Olypian quarrels et gorilla congolium sic ad nauseum. Souvlaki ignitus carborundum e pluribus unum. Defacto lingo est igpay atinlay. Marquee selectus non provisio incongruous feline nolo contendre. Gratuitous octopus niacin, sodium glutimate. Quote meon an estimate et non interruptus stadium. Sic tempus fugit esperanto hiccup estrogen. Glorious baklava ex librus hup hey ad infinitum. Non sequitur condominium facile et geranium.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
hi I use gentoo I love it. but I saw linux and package management in the title of this article and I just wanted to ask all the other gentooers out there to please shut the hell up about portage in this discussion. I can hear the keyboards of thousands of gentoo newbies typing messages right now to say blah blah portage blah blah emerge. but that will just prompt more waiting to compile jokes. please guys I know its a great system. but shut the hell up. you are making everyone hate us. yes it has good package management... maybe the best. but in recent months even I a huge gentoo fan have been annoyed by the gentoo users claiming they have the answer to everyones problems. please... it is not for everybody. shut up.
thanks, sincerely, uglyman
Obama is a twitter sock puppet
distributing source lists, or having a source updater so you can get a comprehensive lsit of sources without hunting for them?
I am the Alpha and the Omega-3
No more creating six different distro's. I mean, right now I could just tar gz it, and have people run make configure...but that really isn't as feature rich, or as easy for the end user in some cases. This is very nice. I just hope it actually goes somewhere.
click me
Besides RPM's awful design and inscrutable, poorly documented configuration (yup, time to clear those stale locks.. AGAIN), all these package managers smell.
I just discovered how Gentoo's system works and it blows me away. If you're not familiar or you think Gentoo is for ricers, reserve judgement for just a second.
In Gentoo to create a package, you write a script that installs the program in a temporary directory. THAT'S IT. For most programs, that's like 2 lines. There's an object-oriented-like system (eclass) for maintaining common setup code for the more complex packages. The system takes care of the rest by examining what was installed in the temporary dir and building a "package" out of it. There's some "sandbox" code that makes sure you don't install outside of the temp dir.
And the way it merges and cleans the packages is also very nice and makes a lot of sense. If you accidentally delete a dependency it will be re-installed next time you update.
So I'm looking at this "unified package management" and it makes me think of Sears merging with K-Mart.. okay, now I just have to avoid ONE logo when I go shopping.
control LOL, u have about as much control as fire does blocking water
¦^)= The Vengance Will Come =(^¦
What's stopping us from having interchangable package managers? Why can't we just agree on a standard or two (such as putting everything in the same place, and using the same format for the "installed packages" list) so that I could start with RPM, delete it and install Apt, and keep going (or vice versa)? Why can't we make it so that we can choose a package management system the same way we can choose a window manager?
"[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz
I noticed that menu option, Edit -> "Fix All Problems". Well hell, my users clicked on that and now I'm out of a job. Thanks a lot, Conectiva!
Reinvening Autopackage and OpenPKG once again?
At least I can install something to c:\Other directory instead of everything going into c:\Program files without having to resort to ./configure && make && make install, which completely destroys the point of having a packaging system to begin with.
"I use a Mac because I'm just better than you are."
I understand you have to target the business desktop world, but I am not really interested in all of this business of having a unified desktop and now a unified package management system.
I, and many others, have CHOSEN Linux because we wanted the power to choose. One man's apt is another man's yum, is another man's yast and so on.
I haven't really used apt, but tools like urpmi, while great for installing, usually fall short when it comes to uninstalling software. When I uninstall a package, I usually want to remove all its (unique) dependencies at the same time. Maybe I'm missing something, but these tools don't give me an easy way to find out exactly what those dependencies are. I imagine FreeBSD's much praised ports system has the same problem.
IMO software installation/uninstallation is another area where OS X shines, at least in terms of user friendliness. Just drag the app icon into a folder of your choice. To uninstall, just throw it in the trash.
Many software packages cannot be relocated to a different prefix once compiled because the install prefix gets coded elsewhere into the program or related files. Spend time building packages yourself and you will see that from time to time.
At this point, "dependency hell" is pretty much a thing of the past. I say "pretty much" because some distros (Debian) are better than others with their packaging (Mandrake), but apt and the like really have eliminated the problem of not knowing what else you need to install to get one particular thing to install.
.TGZ packages instead of just one format. Not a bad idea, not exactly revolutionary either (Anyone remember alien, the package-format translator?) Basically, it's another attempt to make package format irrelevant. And of course, it's still in beta. That's about it, folks.
Third-party packages may be a different story, but the reason for that should be pretty obvious: sloppiness on the part of the packager. Any distro (or OS) can suffer from this. Yes, even when compiling or emerging software you might just run into a program which insists on having _exactly_ the right version of every library. It's the program's fault.
Now, that has less to do with the Smart Package Manager (the topic of this discussion) than some people seem to think. SPM is just another apt/urpmi/whatever, except that it's supposed to work with RPMs, DEBs and Slackware
These guys should look at Conary, I think it really has the right idea...skip past the apt and yum hacks.
If I could put "gimp 2.0.0.2" in /usr/local/experimental and have that not affect users using the existing gimp from /usr/bin, I'd be much happier
I like the "Fix all problems..." option.
But i have no idea how software can make me understand women...
I've found a great solution to this problem! They call it Windows!
Great, I'll start using it reaches the stable branch. For now, good luck to all you brave souls out there who run unstable and testing.
By the way, any news on how well it works on ppc and arm? I can't seem to find the source anywhere to test it out. Oh well, guess i'll stick with apt for now.
ln -s /usr/lib/gimp /opt/gimp
Paying taxes to buy civilization is like paying a hooker to buy love.
I've only been running debian and gentoo, perhaps other distributions really are worse... but I've never noticed any "dependency hell".
... and it's done!
apt-get install
or emerge
Installing stuff on windows is generally more work/more annoying.
Software installation using any of the package managers above is usually easier than your average software installation in Windows.
No, no, no, no, no. That really is aAt least on windows, you rarely have more to do than click "Setup" and off you go.
Last example: xmltv: NO F...WAY to get all the packages updated with Mandrake 9.1. How to make it work? Upgrade to MDK10. How? Download the whoe distro...re-install...call that an update? I expect to have to ru urpmi to switch from 9.1 to 10, but of course, it does NOT work
If those guys achieve what they claim, there will be one more happy Linux user in this world. Right now, it's a frustrated user...
Note: I consider myself an experimented developer, if I have troubles with updating using urpmi, talk about my mum!
Also, what dependency hell? Sure, running the low level RPM command makes you fetch dependencies manually. But when running the high level systems like RedCarpet, Yum, Apt-RPM, etc, it is automatic. What *I* would like to see is for the high level manager to handle source RPMS automatically - downloading and rebuilding them when requested or when no binary is available, and handling build dependencies similarly to install dependencies.
man urpme
The Debian packaging system works pretty much perfectly. There are some tiny problems (e.g. the way apt calls dpkg means an inopportune power-cut could leave the system in a worse state than it really should, the equivs package and the meta packages are a tad crude).
Compared to yum, Debian's system works very well. flawlessly. So why doesn't RedHat use it? I rather suspect that is because RedHat didn't invent it, and RedHat has never dropped something they invented over a superior product developed elsewhere.
Debian and the derivative distributions have this sorted perfectly. Even Gentoo has this sorted better than RedHat, even BSD (ports) solves this much better than RedHat.
Yet RedHat continues to use an inferior system, and people continue to use RedHat. For some reason, those people think it is a problem with linux, instead of a problem only present on RPM distributions. Oh well...
Somehow I get a yucky-feeling with 'solutions' that are based on wrappering the underlying cruft instead of fixing it. No amount of duck-taping and gui-frontends will make the Linux dependecy and packaging hell really go away, it will just lead to more obscure harder to track down bugs in the end. What I would really prefer to see would be one standard way to package stuff (relocatable and thus not to tied to where exactly it has to be installed, etc.) and how to handle the install. With all the distros around there is however little chance that we will see that any time soon. Only hope currently is really LSB, if lsb conforming rpms get more widespread in the future they might be a small change that packages moves more and more out of the distro and into distro independend lsb-rpms, however this will, if it ever happens take many many years, so I won't hold my breath...
I especially like that menu item...
It's 10 PM. Do you know if you're un-American?
With debian I can already install .rpms and .debs. Do I really need to support other packages? If I need something that isn't offered by the distro it is usually trivial to download source and compile. All apt really needs is a yum like interface to it and it would be so wonderful, yummy even. I still don't get this dependency hell thing with linux that people get. Dependencies are usually only broken by the user not really knowing what they are doing. Lets say to compile program X you need library Y installed and the makefile in X is not finding Y. Is this a dependency hell issue? What if you have the proper version of Y installed and X is still not seeing Y? Is this dependency hell going on here? I mean is it that hard to go into the fscking makefile and change the location, name, etc of those libraries? Most distros do a good job of symlinking to the version numbered file, but sometimes a makefile expects it to be called something different or find the lib in a different place. Linux is so easy when you figure it all out and get used to it. Sure its not easy for granny to install solitare, but if you are building 500 desktops all at once, I can't think of a better way than to roll your own packages and run your own apt repository, via FTP no less. Hell you could network boot each machine and have it configured and installed automatically once you go through the process of setting up a single client.
Package managers are a great idea (some would argue that BSD's ports and gentoo's portage is better, but I digress), but it seems like RPM has taken over as the recognized standard when it comes to distributing binaries, which is unfortunate, because I honestly think there are better solutions out there. I tried Fedora Core the other day and I was really disappointed at how little options I had when it came to deciding what was installed. For all the slick GUIness you really can't change a whole lot. I guess less is more.
I wish more applications had installers like Firefox's. That was actually really simple. It worked just like a windows installer! Shocking!
zosxavius photography
OK, what if i want it in /opt because /usr is getting full, or because I export /opt but not user? I didn't say make it look like its in /opt, I said put it in /opt
"I use a Mac because I'm just better than you are."
Even if it were possible, it is simply undesirable. Vendors aren't supporting external packages. This will only make it more easy for would-be sysadmins to screw up their system. If you're a bit technical, creating a package isn't that difficult. I can't believe that some people are still wasting time on those so-called innovations. UNIX is already very portable. Just move on, nothing to see here.
If the package maintainer designed the package to be relocatable, then its pretty easy, assuming the program itself is relocatable, and almost NONE are.
When the package was built, at some point it probably gave a --prefix option to configure (or let it use the default) and from that point on, the directories became hardcoded in the executable. The configfile is at "/somepath/foo.conf". The logs are at "/somepath/logs/" and so on.
If you don't like where the package manager decided it should go, grab a source package and edit the compile script to make it compile with the paths you want, then rebuild the package. Gets you all the flexibility of building it yourself plus package management.
If I have been able to see further than others, it is because I bought a pair of binoculars.
Of course not. It's for Ricers.
(Go ahead, got karma to burn. Or better yet, laugh instead. Makes you healthier)
apt-get update
apt-get upgrade -y
I don't have to do it manually anymore because I have it set to update everyday. I trust the maintainers. Besides, while it's doing that I'm usually watching MacGyver...
Of course I will admit that some valid points have been raised on both sides of the Windows v. Linux packaging debate.
Stop the Slashdot effect! Don't read the articles!
Ok, smarty: ln -s /opt/gimp /usr/lib/gimp
:-)
Actually, that should read:
users will try to install anything from anywhere.
If you get all your rpms from the rpm repository maintained by your distro, everything is fine. If you try mixing-matching distribution rpms, then you will run into problems. But, keep in mind: distributions do not do this by default. This is the user thinking they can just go around installing rpms built for different systems easily.
The tool that I never see mentioned is a nice and handy little tooll called rpmbuild --rebuild, which you use with .src.rpms. This will enable you to take, say, a .src.rpm for RedHat, and rebuild an rpm on a Mandrake system, and install it easily.
Often people touting dependency hell have never actually tried to go beyond the basic .i586.rpm available from different distros.
I know, and this is the reason its a problem, it shouldn't be like that.
"I use a Mac because I'm just better than you are."
I think it's stuck up the gnaa's ass.
www.gnaa.us
Package managers are ok for system libraries, etc. and those are provided by the distributions themselves. For third party software (games, bug tracking, etc.) that needs to work in many different distributions, it is better to just distribute a tarball or use standalone installers such as autopackage or BitRock
Real men compile, although I often turn "girlie man" and use packaged software.
I see a lot of comments here are missing the point about smart. The main idea behind smart is not to support mixing of different packages in one machine, but quite the contrary: allow usage of smart in different scenarios, no matter the architecture or the package manager behind it.
That's the main sense of "unification" behind it. In the ideal world of smart, you forget that your distribution uses RPM, DPKG, TGZz or whatever.
Nice. But I can't find where I'm supposed to install the beta version of KDE. Suppose I want to have both of them (official release and Beta) available on one machine?
And that's just one problem. Until EVERYTHING on the file system is standardized, then you can't use two different package management systems.
I'm no expert in this area but zero install "sounds" great. Is the zero install concept going anywhere? What are the obstacles to it's implementation?
Perhaps not a drag-n-drop in the literal sense of copying all the program files as a single folder. There are many advantages to having executables, libraries, and architecture-independant files in separate places. However, the OSX drag-n-drop system can be used as a metaphor:
.desktop file in the virtual folder that the user can drag onto his/her kmenu, panel, desktop, whatever (.desktop is already a standard).
.desktop file to the trashcan. The package manager is invoked and uninstalls the program.
Create a plugin for Konqueror or Nautilus which, when the user drags a package into the special (possibly virtual) folder automatically executes a 'dpkg -i', 'rpm -i', or whatever other system. If there are dependancies missing, prompt the user to automatically download the missing packages if possible. Optionally use "alien" to convert the packages to the distribution-native format (works like a charm). Finally, create a
To uninstall the program, the user simply drags the
If you don't like the idea of a GNOME- or KDE-specific plugin, create a deamon which will use FAM or something to monitor a special folder, and perform the actions I described above. Clean, simple for the "average joe" and yet fully manageable using existing package tools so if something goes wrong, a more Linux-savy user could fix it.
Anton Markov
*** Linux - May the source be with you! ***
Comment removed based on user account deletion
Here's a big problem Every important program is packaged many many times... Let's say I make program FooBar. First, I make a source tarbell of FooBar-1.tar.gz. Next, every distribution on the planet will repackage this ... A Debian DEB, and Ubuntu DEB, a Fedora RPM, a Mandrake RPM, an Arch Linux pacman PKG, every other obscure package format..
Next, FooBar-2.tar.gz comes out. All those distros have to repackage FooBar. The developer should be able to make too packages: a source package, and a binary, and be assured that it will work on most distributions. So much repackaging is being wasted, when a standard could arise and the program would only need to be packaged once.
is there a "yet another unified package management system anounced" cronjob sheduled every eight weeks or so to generate that type of story?
just my 2c
Too bad Gentoo isn't in on it.
apt-get when used with the "aptitude" front-end will do this beautifully. Not only will it show you a list of all the (inter-)dependencies, but also let you uninstall them right from the list (just hit the '-' key). It will also give you the option to remove unique dependancies if they are libraries (which is what you usually want).
Anton Markov
*** Linux - May the source be with you! ***
RPM has had the feature you are talking about for a long time. They are called Relocatable Packages. Most RPM's are not relocatable because many people think installing programs in an organized manner is a good thing. So most apps go to /usr or /usr/local, just like most apps under MS Windows goes under C:\Program Files.
There are just as many hardcoded paths in MS windows. Can I change where all my system DLL's are kept? Why do I have to put DLL's in the the Windows, System32 or application directory for an application to find them? Under Linux, I can put them anywhere and just update the LD_LIBRARY_PATH.
Linux and MS Windows both have hardcoded paths for different things. They are both due to design choices and neither are bad or good.
If Tyranny and Oppression come to this land,
it will be in the guise of fighting a foreign enemy. -James Madison
zosxavius photography
Software installation using any of the package managers above is usually easier than your average software installation in Windows.
I think whether or not it's easier has more to do with what the user's used to than anything else. That said, I'd much rather go to the gimp web site, download the gimp installer, use it (like I do every other installer -- they're all pretty much the same*) and maybe back it up on cd with other freeware** installers if I want to.
What do I do in Debian if I want to back up a piece of software that I usually install via apt-get? Stop. I'm sure there's an answer to this question. I don't want it. The point is that I don't already know it and can't intuitively figure it out. On windows, there are things called installers; they're files like every other file and when you double click them they install software for you. Does it take a lot of thinking before you can figure out what you need to do to make sure software you just installed is available to you after a system crash?
*They are, but the gimp installer is deficient in comparison to most windows installers because it's not self-sufficient. You need the gtk+ installer too.
**Yes, I know that the gimp is Free software as well as freeware.
"/usr" stands for "Unix System Resources", not "user".
Hope that helps. Have a nice day!
And the best part is you don't have to go down to the store and fork over money to get it.
Ahhhhh......
Newer Gnome apps use gconf schemas. You either force all Gnome apps using gconf schemas to install in the Gnome prefix or you force gconf to search the entire system for schemas because the user my have installed the package anywhere. The former is obviously better since you are not searching your entire fs for a few small particular files.
Windows doesn't have the same PREFIX and file type specific directories concept that *NIX does. (bin/ for binaries, lib/ for libraies...) Windows programs typically install most everyting in their own unique directory. That's why relocating the install directory in Windows is so much easier. I don't see the *NIX way of organizing files leaving anytime soon.
Why won't people ever understand that different package formats is not the problem. Packages are configured and compiled to go with the other packages for that specific version of that specific distribution. It does not help squat to have the possibility to install packages from different versions and/or distros.
As I saw in another comment further up - treat each version of each distro as a separate OS and you won't have problems. If you want to install software not packaged in your version of your distro - compile it from source and you are a happy user. Even happier once you discover that your version of your distro often has packages for the dependencies your new, source-based software have.
I'll start using it reaches the stable branch. For now, good luck to all you brave souls out there who run unstable and testing.
Good news! It's there now. All it needs is a semicompetent administrator.
By the way, any news on how well it works on ppc and arm?
This, on the other hand, is what's holding me back. You know, due to the incredible popularity of ppc and arm.
I can't seem to find the source anywhere to test it out.
Instead of "close source," I like to think of windows as "source free," kinda like "fat free." In Linux, sometimes I'm forced to compile source code to get things to work. This is a hassle. Due to the incredible fear that the Windows distributors have of letting everyday users get Free access to the source code, this problem never arises on Windows.
"...although the typing may scare off most Windows users."
That's exactly the point. If I want to install a Windows version of a piece of software, all I do is surf over to the webpage, download it, and double-click. The rest is a menu-guided GUI walkthrough of the installation process with the "Help" button always within reach at the bottom. Nothing to type; no dependency problems; no obscure flags to look up in man pages. Yes, sometimes it fails and doesn't find a missing DLL or whatever, but out of dual-booting WinXP and Mandrake/SuSE variants, I've encountered far more problems with dependencies than with DLL's.
Installation/removal of software in Linux may be easy for veteran users, but incredibly daunting to newbies. The requirement of typing stuff into a commandline is an absolute no-no when it comes to new users; the Linux software installation system needs to be entirely GUI-based with menu-driven options and help.
Comment removed based on user account deletion
Instead of tearing everything down, I'd prefer to see the various package management systems' functionality increased so that they can identify (and flag as "untrusted" or something) the libraries that they think are "missing". Preferably automatically, but possibly manually as well. Example:
apt-get install foo
Package foo fails dependencies (library lib.foo.2).
Do you want me to search the system for lib.foo.2? Searching may take a while: y/N
Searching for lib.foo.2
There. You can install whatever app you want from where you want and you won't break the system's package management system.
For me, the whole idea behind a package management system is:
#1. Easily install packages from known repository.
#2. Easily upgrade packages.
#3. Easily remove packages.
#4. Easily verify any program on the system.
#5. Verify the whole system.
I don't know if one package management system will every be right for everyone. All evidence seems to indicate otherwise.
Instead of focusing on the perfect package management system, why not focus on the following:
#1. What system do you currently use?
#2. What do you like about that system?
#3. What do you not like about that system?
#3. What additional functionality you'd like.
Talking about the ultimate package management system is a lot like talking about the ultimate editor.
Those install programs only pretend to give you control. There is still a bunch of files, especially, DLL and configuration files, that get scattered all across your filesystem. When have you specified "c:\windows\system" as an install dir? Yet it just keeps growing!
And considering the fact that uninstallers are an afterthought in the Windows world, you'll be lucky to find half of them. In my experience, the average uninstaller fails 2/3 times; good hunting!
Yes, we need a way to specify a specific install path for special cases, but Windows certainly does _not_ do package management right... it has no package management, only "installers".
What kind of control do you want over your filesystem? There are good reasons behind why Linux programs are installed the way they are. Read the FHS for more: http://www.pathname.com/fhs/.
Anton Markov
*** Linux - May the source be with you! ***
This really needs to be done. I currently only use mandrake or debian based distros because of their package/dependencies managers. This brings us one step closer to the double click install that computer users need to switch.
Cheers,
Adolfo
If I could put "gimp 2.0.0.2" in /usr/local/experimental and have that not affect users using the existing gimp from /usr/bin, I'd be much happier
/usr/local/pkg/gimp/gimp-2.0.0.1, and gimp-2.0.0.2 goes in /usr/local/pkg/gimp/gimp-2.0.0.2. Installation is worry free, because there's only one place either package can go, and it's impossible for something else to be in that directory. If you want two gimp-2.0.0.1 packages installed, maybe for benchmarking purposes, then append a _n after it, where n is an ``official'' package, coming from the OS people (like FreeBSD). If you're rolling your own packages, then append __n where n is your own personal version. So if you want gimp-2.0.0.1_2 compiled for a 386, compile it yourself and call it gimp-2.0.0.1_2_1, and put it in /usr/local/pkg/gimp/gimp-2.0.0.1_2_1. There's still only one place it can be installed at, and uninstalling it is just as easy and intuitive. If you also manage which versions of libraries it's linked to using a config file instead of symlinks, then you're in even better shape, because you can control what version of library X gets used without having to recompile and without interfering with other packages' libraries.
/usr/local/etc. This is a problem because the packages aren't separate from each other anymore. Moving the config files into the separate directories isn't always a solution because of the advantages that can come from mounting /usr as read-only. Autoconf setups sometimes have options for the ``sysconfdir,'' but not always. Lastly, this goes against the File Hierarchy Standard. Standards can always be redone, but it'll take some work.
What about being able to put them in their own directories? gimp-2.0.0.1 goes in
There are problems. First, the packages aren't designed to expect this organization. Currently, both versions of gimp (or some other package) might want to use the same config file stored in
I've found a great solution to this problem! They call it Windows!
There is always an easy solution to every human problem -- neat, plausible and wrong. -- H.L. Mencken
Thank-you for playing.
Arrogance is Confidence which lacks integrity. -- me
Its you who are mistaken, not us. What we see is a wrapper on a wrapper. What we see is a setup that is bound to create instability and broken package trees. What we see is a metapackaging scheme when what we really need is a unipackaging scheme.
The real problem is not whether you can handle multiple formats, it's conflicts. Consider that package A wants libfoo.1.1.1 with --extra-foo turned on and nothing else, but package B wants libfoo.1.1.1 with --mini-foo turned on and nothing else. Using either version of libfoo.1.1.1 will break one of A or B. So, if you want to install packages meant for RedHat along with ones meant for Debian, or Suse, or ... you're going to run into this sort of problem *very* quickly. Unless they've somehow solved this, this project isn't really what a lot people might want. Of course the folks over at autopackage provide a solution of sorts, but that must be implemented at the software package producer end, not at the comsumers end, so unless the producer co-operates (yeah, right) the consumer is SOL.
Bah. Apt has already solved this problem. Please go build a usable OCR engine instead.
Tried and failed?
Tried and died.
The wrapper app simply doesn't know what the imported packages are going to do to each other. At least in a single-source scheme, the manager of the repository can confirm that all packages on their servers play nice with each other. The same can't be said across all package managers and repositories. People will get segfaulting binaries, missing files, versionitis, etc etc etc until utlimately they will reinstall the OS and vow never to touch a metapackage tool again.
Works on Linux, Solaris, NetBSD, etc. etc.
If you can browse a directory tree and type make install you can build from source. If you can type pkg_add you can install binaries and dependencies.
www.pkgsrc.org
I've had some nightmares with portage using gentoo before. Keep in mind, it's my distribution of choice, but that doesn't mean that portage is not without its problems.
RPM does suck (/flamebait) but don't fool yourself into thinking that the other package systems are problem free.
Humorless sig goes here.
Because he is right. You can't wrap a broken tool to make a fixed tool. Its better to start with one single tool that works and make it pervasive in the system. That is why a /ports is installable on every FreeBSD box.
its killed more windows systems than apt-get, that i can tell you.
I think I like the OS X approach better; it is just so much simpler. The application is self-contained in a directory with an .app extension and a special structure. The OS recognises the structure and knows what to do when you double-click the icon.
That's all.
Installation means dragging the icon (mv'ing the directory) to your hard drive. Want different versions? Want to uninstall? Just get rid of the directory. No problem, just rename the old version.
Drag and drop isn't the point. The point here is that there is conceptual simplicity. No dumbing things down for the "average joe" because there is no need to. Less chance of anything going around that you'd need to find a Linux-savvy user to fix.
We should strive not to dumb things down, but to make things inherently easy to use!
Never mind dependancy hell, what about disappearing repository directories?
I am constantly having to re-visit the easy urpmi site because the various sources keep disappearing. I just wish they would sit still and stop fidgeting!
What would be neat is an app or script that found another repository (maybe from easy urpmi) whenever one broke and maybe tested it's speed before replacing it. I'm sure I could write it myself when I get the time...
Projects like this also allow a distibution to make a migration from one package format to another, simultaneously supporting two package formats at once while the migration occurs.
Rob
Besides, while it's doing that I'm usually watching MacGyver...
Ah! I knew you had a secret way of coping with these thingsI've been thinking that this problem should be approached from the other end.
Realistically, what Connectiva are doing is going to lead to a machine becoming a serious mess of libraries from different sources and it's blatantly not going to work very well.
What I'd like to see is software released in such a way that it can be automatically converted into whatever package your system supports. This is less immediately useful for end users, but will ultimately make the end packaging format irrelevant, letting more distros spend less time doing their own packaging and concentrating on improving integration and so on.
I believe efforts have been made in this direction , but I have no idea about their scope or uptake.
Chris "Ng" Jones
cmsj@tenshu.net
www.tenshu.net
I see so many projects whose only goal is to make Linux easier to use for lusers. Folks, we allready have an OS for your grandmother, it's called Windows. Please stop trying to remake Linus' beautiful swan into an ugly fucking duck!
No, I'm not being revanchist, what I am saying is let's not remake Linux in Windows image... If to supplant Windows we must become Windows, well then let's forget supplanting Windows, the cost in unconscionable...
Bottom line, if that's the way Linux is going, stop the bus, I'm getting off. Hello *BSD where admins are admins and lusers are grateful...
"Talk minus action equals nothing" - Joey Shithead, D.O.A.
"Talk minus action equals
Jesus Baron von Christ, geeks, this isn't nuclear fusion science!
Develop an XML layout standard for packages defining everything - names, file sizes, hash values for everything - in other words IDENTIFY EVERYTHING uniguely (and where it ISN'T unique, cross-ref) - then write a package manager.
Do I have to do everything for you morons?
Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
All the other posters are correct... you can install it to wherever it feels like, move or copy it to wherever you feel like and link. Hell, you can put core parts of your operating system in different partitions and folders if you like as long as you link em up right. Now let's see a Windows user put their boot loaded on their 2nd parition, their System32 on it's own parition, and user files in a final parition.
Hell, keeping user files out of system areas is already beyond the scope of Window's capabilities. If you think 'control' is a next button that let's you put the least intrusive parts of an end user program in some folder other than the default you're missing the bigger picture.
LilMikey.com... I'll stop doing it when you sto
because /usr is getting full
Look into LVM. All the kids are doing it.
LilMikey.com... I'll stop doing it when you sto
Eek. That's a great way to end up with a borked Debian, especially in unstable.
Why do you feel the need upgrade your softwar every.thirty.minutes? Does that fresh new zlib have that much to freakin offer?
I only do dist-upgrades when I know that something important I have is out of date. Like an app I use all the time. This ends up being once every week or so. Every thirty minutes? Jesus! You waste a lot of their bandwidth! Shame on you!
You're right, I wouldn't steal a car. But if it were possible, I sure as hell would download one!
For package management what is wrong (i am sure I will be told shortly) with using standard naming conventions and just use the files system and links instead of resorting to a database and flinging components far and wide - which invariably leads to cruft buildup over time.
/inst is the install node then a simple myapp would look like:
/lib/glibc/2.0 /moduls/core/1.2
/usr/inst/myapp/docs /usr/share/man/myapp --> /usr/inst/myapp/man /usr/inst/myapp/bin/
For example if
/inst/myapp/bin
docs
man
icons
conf
lib -->
modules -->
Everything about an app resides at this location. All dependencies would be created via links from a installation script.
Then some service during install would come thru and create the appropiate links to stand places.
/usr/share/docs/myapp -->
/usr/bin/myapp -->
If applications are installed from a single directory node then removing an application could be as simple as rf -rf myapp. Checking what an application depends on would be a ls -l in the install directory.
Oh, well. So you mean you have reinvented alien
But doesn't it often happen that older versions of a package have known security holes? Until now it has been sufficient to package the newer, fixed release and let the systems like apt and yum pick it up. If we have package managers that may deliberately choose an older version, there needs to be good metadata on which older versions of a package are still usable (ie, don't have known or likely exploits).
Indeed this is true of bugs in general, but security is the most worrying example.
-- Ed Avis ed@membled.com
I think we have to admit that we arent any good at not making "upgrades" that dont break things.
Once we accept that, we accept the inevitable truth that there is no single state for all the dependencies on a complex system which satisfies all needs.
the only solution is isolation: stop having central system configs except for core features -the OS and drivers- and everything else gets isolated into per-app installations. Which may be per-app user mode linux images.
I would take issue with this statement. I have never used Debian proper, but I have installed a few systems with Knoppix. I put Knoppix 3.4 on a Dell Inspiron 8000, and I thought all was well. I then tried to update KDE. The system got totally hosed. KDE only partially updated, and I couldn't get it back to normal. I will admit that I was new to apt-get, but I am not a newbie when it comes to *nix systems. After lots of man pages and searches on the net, I concluded that KDE was FUBAR. From what I gathered on some weblogs, it was a known issue with the way that Knoppix installs that kind of messes up apt-get in some scenarios.
I replaced that with Mandrake 10.0, and thought all was well. Unfortunately, I had to later uninstall that after fscking around with my new wireless card for 2 days. It was supported under Linux using the Prism54 drivers, but after some searching on the net, Netgear had updated the firmware in their newest version of those cards (WG511) and they weren't compatable anymore. So I had to reinstall Win2k on the thing because the reason I got it was to use as a wireless connection. That really hurt too, because I wanted to run Linux on it. (don't tell me I should have returned the card, I got the card and router as a combo, and it was mail order - too much hassle to return) I'll have to keep checking to see if they ever get the drivers updated for that card.
My beliefs do not require that you agree with them.
Please remove your propeller beanie and leave your geek badge at the door on your way out.
Hallo, My name is Inigo Montoya. You kill -9 my parent process. Prepare to die!
I do not update every 30 minutes. I update 30 minute after I boot my computer (or once a day if it's already on). Okay. Now you say it. ;)
Not every 30 minutes. Besides, if something screws up, I'll just add a bug to whatever buglist deserves it. But I've been doing this for some time now. I've never had any problems with it. I figure sooner or later I'm going to update those packages anyway.
Stop the Slashdot effect! Don't read the articles!
App developers can use binreloc to make their apps binary relocatable (ie can install to any location). This is mandatory for autopackages and is easy to add in. binreloc is designed for minimal source disruption.
I've noticed that Linux distributions (mostly Redhat and Debian in my experience) like to install pratically everything into /usr/bin and keep /usr/local/bin virtually empty. My understanding of the FHS is that /usr/bin should be for important core utilities that are (or pratically are) part of the OS, not random applications. For example, IIRC, RH/Fedora put their RPM-installed httpd and postgres into /usr/bin. Same with Mozilla. This seems just wrong. Apache, Mozilla, and postgresql are optional applications, not core parts of the OS. Applications should go into either /opt or /usr/local/your_app_name or into /usr/local/bin.
/usr/local), but I find it mildly irritating.
Normally this isn't a big problem (especially since I tend to compile my own and put it in
If installing things is so easy, why are there so few Linux distros where there is an option to simply install a bare desktop with no applications?
"User friendly" Windows lets you do this.
I've never tried to update Knoppix, but I've never had a problem updating KDE under Debian.
At a guess, Knoppix implemented some ugly hack in its version numbering which broke. Certainly the unofficial KDE packages (e.g. the KDE packages for KDE 3 back when KDE 2 was standard) had great big disclaimers saying they would not guarantee a smooth upgrade.
*shrug*
There is nothing insightful about this guy's incendiary post. Linux distributions value collaboration and have long proven that the pie is big enough.
People like the OP are caught up in the old way of thinking that each distribution has to kill all others in order to survice. In the future, software companies will be smaller, more agile, and with a dedicated clientele that keeps going back to that specific distribution because of the way it treats customers and the specifics of its products.
Think of it as the small bakery in your neighborhood. You go there because you know the people and they make great bread. The goal of the owner is to feed his family, pay his employees and stay in business, not total world domination. If you extend the analogy, a host of linux distributions can collaborate to extend the reach of Linux, compete at times, and yet stay in business.
It's not a zero-sum game, particularly among free software companies.
Pragmatism as an ideology is not particularly pragmatic in the long term. Keep it in mind when you dismiss Free Software
The problem with Knoppix is that it installs its own custom set of packages, but them points the user to the Debian repositories for updates. This is just asking for trouble, and erases one of the biggest benefits of Debian's repository - a huge set of packages which have all been built and verified against each other.
LRC, the best-read libertarian site on the web
Funny, in Windows I don't need a "controlled repository" to install anything from anywhere and uninstall it afterward.
Desktop Linux needs a unified installation/uninstallation API so bad, it's tragic. Can Gnome and KDE get together on this so we can have Autoplay and driver installers on CD?
The throuble with the relocation is that Linux or Unix in general doesn't provide any way to let the binary find out where it is installed once it run. So as soon as a binary wants datafiles, clean relocation is basically impossible. Sure there are a number of hacks and workarounds (/proc/self/exe, scanning argv[0], PATH, wrapper scripts, etc.) which might give hint about where the software is installed, but none of that is really clean or works in all situations.
/etc/ could do a similar job, but that would again destroy the relocatability, so such a property system would need to be attached to the executable itself (like resource hooks in MacOS, Linux extended attributes or the like).
What I really miss is some kind of editable 'properties' for executables that would allow to move all those hardcoded paths and variables that they contain into a human editable (ie. non-hexeditor) form. A file in
Why not maintain a symbol database of every symbol exported and required by every package (sure, it might get pretty big, but most package management systems have bloat).
That way, appfoo could register as requiring symbols bar, baz and qxt. If libfred-dev and dev-libgfred both supplied those symbols, either one could meet the dependency. Kind of like what portage does with the virtual/ targets, only more fine-grained.
There would still be some problems, but that at least would solve your various-package-names issue.
All's true that is mistrusted
Well... that may be what FHS says, but that goes against the tradition that the distros are following, namely:
You're exactly right: the distros leave /usr/local empty because that's what it's there for: a place for your own stuff so that it and the distro's stuff don't get in each other's way.
All's true that is mistrusted
that alone only helps server people (i.e. it gets you out of frustration halfway if you're a Desktop user using Gnome, KDE etc).
Why?
Well, while the M$ Windows we so much love hating handles the stuff below, I have not seen anything close enough to it in the Linux flovors I have used (RedHat, Fedora, Debian, SuSE).
Here is what I am talking about --think of yourself as a Desktop user or admin for Desktop users. Gnome and Debian.
a) What are the names (labels) of the application that was just installed. I.e., when I frantically go through the menu tree (Gnome and/or Debian) what am I looking for? Am I expected to remember the previous setting of all those menus and do a mental diff?
b) If, say, I am installing 'Ethereal', I want it to be under 'Applications' --> 'Network' (instead of being buried somewhere else), and I'd like it to be labelled something more user-friendly (OK, this is not really valid for Ethereal, but is for almost everything else).
c) I want to rearrange the whole thing so that I dont need to trace 2 tree (Gnome and Debian) and merge and/or prune the whole thing the way it suits me. How do I do it --other than going thru a lot of low-level guts of the system. Even then, the whole thing is totally trial/error --no visual feedback.
d) This was the user , I am the admin. I want to let some other users use that app and some others not to use it. How do I do all of this? Do I login for each user and arrange it for them?
I can go on. But, you see the headaches, I hope.
Most of this could have been solved if the installer were to come back to me and ask 'under what label, under which menu node, for which users' am I going to install that particular app.
Doe sthis new magical thingy do that. I doubt it. Does anything else. Not that I know of.
I can definitely see how that would be easier than dragging the icon from one folder to another.
Why would you bother with clicking and dragging when you can simply edit the compile script to your liking, then ./configure with whatever tags suit you, make, make install, go through the output to figure out the dependency errors, download and install the necessary libs, re-edit your compile script, ./configure, make, make install again? That should really be all you need unless you're doing something fancy.
This effort assumes that "dependency hell" is the problem. Here's an article that says otherwise:
:w
An Analysis of RPM Validation Drift
which kind of defeats the purpose.
Either you add a repository to sources.list (which means that all dependencies can be resolved) or you install a .deb directly -- in which case, resolving the dependencies is simply impossible because needed packages may be in the repository (which apt doesn't know about) where you got the .deb from.
To my sense, the main obstacle is that nobody even know the existence of zero install (please, take a look at http://zero-install.sourceforge.net/)
I was quite satisfied with the 'aptitude install' & co. commands, but I really love ROX/0install since I tried it and THAT is an easy environment. It is really sad that nothing is using it, and it is not even incompatible with your current packages manager.
I see many things that must be improved/implemented, but please take a look at the documentation, particularily the security part before flaming.
I am not talking about servers or else, but try ROX (http://rox.sourceforge.net/) running on top of 0install and imagine yourself as Joe user. Man, that's easy, more than Macs!
Please, take a look, try, comment, even post flames but please spread the word or... or... I will cryWhat happened to Zero-Install, Autopackage, etc? I can see the benefit of having a universal packaging system, but why the hell do we need 5 of them?
This is a silly project.
Anyone who has used Debian or Gentoo will know that these dependency problems that they speak of are all a problem related to RPM.
Did anyone else notice that all the package management tools they cited are all RPM centric? Hmmm.. Maybe they missed the point the Gentoo's emerge and Debians dpkg (apt-get) don't have these problems.
I don't know what to think about this article other than it's suffering from some denial of the reality of the situation.
Now for the troll points: if every just built everything for Debian, there wouldn't be a problem with dependencies would there?
And I'm sure now I'll hear about the millions that didn't have a great success story. Well, we have all had someone piss in our wheaties at some point in our lives. But for me, Debian has never failed me.
security you might want to use SELinux or LIDS. I haven't used SELinux, but IIRC LIDS allows you to say "allow user to run /lib/ld*, but only if the program which causes it to run is from /bin or /usr/bin". In effect, this means that the user cannot execute /lib/ld* manually, but programs from /bin or /usr/bin can still be run by the user.
Yeah, they revolutionaized the software industry, the shareware devlopers....
IANAL but write like a drunk one.
I don't care about the relative benefits (or weaknesses) of whatever installer is on my system (Suse9/rpm - I know. I'm illustrating a point here, okay?). I just want to install and use the damn application.
I don't understand why I should have to have multiple graphics/development libs (nevermind different minor revs) because several different applications each specified it wanted something Completely Different. There have been things that I've tried to install that have had up to 3 or 4 different LEVELS of dependencies that I've had to go chase down: package A needed B - B needed C - C needed D, and it has been a massive pain in the ass. All these different libs have their supporters who say that each one is "better" - but that's "better" for the developer; the end user can't see any difference, and really doesn't care: they just want the pretty pictures on the screen. THIS is why Linux isn't kicking Microsofts ass.
I can compile and install from sources, but Joe Average User can't/won't be bothered - it confuses him too much. Why should he screw around with Linux and the plate of spaghetti that is its libraries and dependencies when he can just download and USE the damn software on a Windows box? If the software he's installing has a newer version of a lib, it just installs it seamlessly; the old version goes bye-bye, and nothing breaks.
I'm slowly switching everything I can over to my Linux box from Windows (some stuff simply isn't available on Linux), and I've been encouraging people to try FOSS software - but only those apps that run on Windows. Why? Because I'm not about to try and convince people that see the computer as a way of actually getting things done to start having to screw around with the lack of standards that Linux suffers.
(Now adjusting Nomex underwear in anticipation of flaming resulting from saying Linux isn't do-all and end-all of OSs)
--- Asking inconvenient questions for over 30 years...
With NOBODY to hold my hands. Because the life of the geek is a lonely life.
...in Japan!
You must be new here.
Who is General Failure and why is he reading my hard disk?
What do we do when we need to install a dependency? What do you do when you want to upgrade your system to the latest version? I don't see how double-clicking on a package in Synaptic is any more complicated than dragging a bundle into a special directory, and the former approach allows a lot of powerful management features that the latter doesn't.
A deep unwavering belief is a sure sign you're missing something...
And .tar.gz is his name. Become one with the source, for there can only be one! May the source be with you and all that jazz.
(Okay, somebody mixed up his pop-culture references a wee bit too much. No more Malt-O-Meal for me!)
Most men are not thought unwise until they speak.
Nothing against Portuguese you understand; I fully expect a all-distributions Linux installation utility to be in portuguese. Chinese next maybe...
While I appreciate the simplicity that approach appears to offer, I doubt it is consistently that simple.
Once an app runs, it can install files anywhere the user could. So if the user runs with administrator access (which one would want sometimes, to allow multiple accounts to share the same installed apps instead of each user installing their own copy of some program), the program could silently unpackage and place copies of files in various places outside the appwrapper. Deleting the appwrapper won't delete these (now unneeded) additional files. This behavior might not be in vogue, it might raise hackles in a small userbase, but that same userbase will tolerate it for apps that provide a unique proprietary function--playing Microsoft Windows Media files, for instance.
I want a system that is that easy to maintain, I want apps that are that easy to acquire and upgrade (and easy for the developer to package for me--waiting for mozilla.org to ship an RPM of the latest Firefox increases the time until I can try it on Fedora Core GNU/Linux, for example). But I'm not convinced that the NeXTSTEP (now MacOS X) appwrapper approach is going to achieve this end with the kind of consistency that I can rely on. And I'm not willing to give up my software freedom to acquire the ease of installation/uninstallation which appwrappers ostensibly provide.
Bad packages (RPMs, Debs, etc.) exist, to be sure; I am not seeking perfection (which never exists). However, in my experience, bad packages are far fewer in number than the number of installers I've seen for MacOS X that drop files wherever and don't leave any easy way to uninstall the files (in addition, the spectre of proprietary software adds another wrinkle to the mix: uninspectable and unchangeable software means that any installer logs of installation activity are untrustworthy because they could be incomplete).
Finally, the MacOS X Installer.app approach isn't as functional as its NeXTSTEP sibling was. The older Install.app installed, uninstalled, and repackaged packages and had a fairly easy to use interface for the end-user. The aforementioned limitations were still a problem, of course (NeXTSTEP and OPENSTEP were not free software systems and they were made useful chiefly through proprietary software), but at least some handy functionality was there. The last time I saw the MacOS X installer app it didn't do these things.
Digital Citizen
How about an SQL based package manager built on using MySQL or PGS?
I never did believe in throwing a layer of crap overtop several different package managers. Why do we have several? For that matter, why are they each using their own db format? Even more curious, why the HELL do they even HAVE their own db format? We have SQL and PGS and Firebird and Oracle and everything else. I say we just make a new package manager, and try to get it right this time; if you want to do deb/rpm/ebuild/tgz, just add plug-ins.
Support my political activism on Patreon.
I'm with ya on this one PDA_Monkey.
We have Linux to escape the closed source of Microsoft Windows.
That's why I like Linux. We can chop it up anyway we want and throw it back to the users to try. You can't do that with Windows. That's why so many people try to crack Windows. They just need to use Linux.
Just Do It!
Comment removed based on user account deletion
It doesn't have an "installer," it either installs the package (using perl, gcc, whatever the developer used--and will install *that* if necessary as well) or--more often, it compiles things from source automagically--including dependencies and checking MD5 hashes--and keeps a list of packages that you have installed in case you want to remove them later. As for uninstalling:
Gentoo: emerge unmerge program_name (like mozilla)
FreeBSD: pkg_delete package_name (or, in appropriate ports directory): make deinstall clean
Debian: apt-get uninstall package
Not too terrifically difficult--and it extends to the entire OS as well. You haven't experienced opensource valhalla until you've upgraded your entire OS and every package in it with a few lines while drinking a couple beers. I suggest you give it a go.
All in all, its much easier to install software in Windows, especially if you'd like to have some control over your file system.
Very clever troll. Windows gives the user practically no control at all. Just try to move something...oops, the whole registry broke. The only thing nearly as bad as the registry are all those hard-coded paths put into config files by libtool.
-- "Makes Little Debbie look like a pile of puke!" - Moe Szyslak
I believe that RPM packages contain info about what packages they depend on, and have for years. The few times I've tried installing stuff on rpm-based distros, I've seen dependency errors. So the question is, if the RPM packages provide dependency info already, how come the RPM utils don't *already* provide automatic dependency installation like apt-get? Seems like something that could have been added to rpm years ago. . .
I don't use Redhat much, so maybe there is already a tool to do this, I dunno. . .
for your convenience
:) Smart is a lot more smarter and it can recover the system from situation where APT cannot fix.
Smart screenshots
smart is the new package meta-manager written by Gustavo Niemeyer from Conectiva, and it is to APT as APT was to its predecessors. These are the screenshots of the development version, which will be released soon, running in a Fedora Core 3 box.
Take notice that smart can be run textmode (smart install ), through a GUI (smart --gui), or even a mix between of both (smart --gui install ), besides an interactive textmode shell (smart --shell).
Documentation is already available online and it is worthwhile to take a read. It explains, for example, some cases where smart solves broken dependencies that APT cannot solve.
(this is not smart project's official webpage. the text below reflects my opinion)
picture goes here
smart is transparent (highly agnostic ??) with respect to distros and repository formats. It works even if you mix stuff up: accessing Fedora's YUM repository (RPM Metadata) and Livna as APT, for instance. Just works. Also, the "RPM Directory" option points to a directory with packages. There is no need for a special indexing procedure as APT and YUM require. It doesn't get easier than that to create repositories.
another pic
A typical view: you can list packages by group (applications, development, etc.), by repository (Fedora Core, Livna, etc.) or any combination between. Little green squares are the installed packages, little white squares are available packages. With the context menu is possible to "lock" packages so that smart never mess with them.
yet another pic
Translator note: the author makes an insightful statement in the next paragraph. Developers, take note!!!!
Every software should have a "fix all problems" option
picture
The mirror system is another cool thing. You define the URLs that can be used as alternates to a main URL. Whenever it is necessary to fetch a file, smart automatically searches through the mirrors, make simultaneous downloads, etc. If a mirror is down, incomplete or outdated, smart automatically lowers the priority of this mirror and tries the next one. On the other hand, quality mirrors, with high bandwidth get to be used more frequently.
another pic. almost there.
Priorities are another interesting feature. Do you have a lot of repositories with identical packages? With smart you can establish which package has preference and avoid having your local packages overwritten by packages from remote repositories or avoid third-party repository taking precedence over "official" repositories.
last pic! it was already time!
downloading packages.
I can definitely see how that would be easier than dragging the icon from one folder to another.
Yes, it would be far easier than writing a program that ran all of the time, noticed when you moved its executable and data files, then updated the strings within the executable that tell it where to find its datafiles without corr....
Oh wait, you meant for the user. Yeah, we should all strive to move Heaven and Hell for the user. God forbid that we define standardized locations for binaries, configuration, and libraries so that admins can script installs and maintain those installations easily, then expect people to use them.
And all this arguing, is why this application exists in the first place. No one seems to see that it's a GOOD idea to have ONE system to manage your installations, and refine it, instead of ten systems that all work "pretty good".
You know what, Gentoo portage, BSD ports, Mandrake urpmi, and Debian apt-get are all GOOD. But they're NOT -get this- perfect. Get over it. Your distro is not perfect. As long as everyone says "Well, it's not that hard to just install from source" or "it works fine with apt-get", you will have the opposite of progress.
Personally, I think it's a better idea to select one system, whichever one is most portable, and get everyone on that one system. Then, we have a whole world of Linux developers working to make that one system as close to perfect as possible. We CAN eliminate dependency hell, installation confusion for users, and give all the options and choice you want, and we can get there a hell of a lot faster if we work together instead of bitching at each other and getting smug that apt-get doesnt have dependency hell, or gentoo is great, whatever. Isn't this whole "Open Source" thing about COMMUNITY in addition to choice? Let's get it together, kick some ass, and take names!
This isn't the best solution, nor is it intended to be. It's just a STEP, in a direction that's NOT backwards. Give them some support, the closer we get to one system, the better off we will ALL be, and the further Linux can come. Stop bickering and arguing, and start supporting. I for one love Linux and everything the community has given me, and my way of giving back is to do what's best for the entire community, not to get incensed because someone dares to insult Mandrake or Debian's system. They all have faults (yes, that means you too, Gentoo and BSD users) and instead of pretending they don't, let's get together and work to fix them. You don't have to give up choice to work together, you just have to be supportive of each other.
-Jay
I have no problem with a package management standard at all, as long as the standard is *NOT* rpm. From a purely technical standpoint, I truly do not know what the LSB peeps were smoking when they included rpm as part of their specification...I can only assume it happened because Dead Rat/SUSE etc were the people paying the bills. Once again, a triumph of dollars over sense.
I don't care what anyone says...rpm sucks gangrenous, dried sweat encrusted goat's testicles. The specfile format is one big invite to write sloppy code, (and that's even assuming you can get your own macros to work) the practice of splitting libs up into normal and "devel" versions invites all sorts of evil behaviour on the part of the corps involved. I also don't need to go into the "dependency hell" issues...it sounds like people are far too familiar with those already. Yet another thing I hate about rpm is that on most rpm based distros, the makers of such will actually intentionally screw things up so that via rpm is the ONLY way you can install anything...try compiling, and configure won't find libs it needs in many cases. I think that's the single main reason why I dislike it, actually...it allows and encourages corporate sabotage of the operating system. Apt isn't *quite* as bad from what I've seen...but it's close.
I've often wondered why there haven't been more attempts to adapt ports for Linux...presumably there are two reasons:-
1) The few people who might otherwise have been sufficiently intelligent to care are already using gentoo, and it is close enough for what they want in most instances, and
2) The binary-only "apt-get and drool" crowd can't see any incentive or reason for such a thing at all, for the most part.
I wouldn't know how many times I've seen messages about Debian starting off with the prefix, "When I'm feeling lazy, I use apt." This is exactly the problem...if you're feeling that lazy, go back to XP until the feeling passes. Don't insist on doing bad things to Linux which will only recreate Windows' problems here.
It's trying to say that it's what you add in later that doesn't come with the system.
A system being defined as the ENTIRE distro (Linux, Solaris, whatever)... of course you would not have installed the whole thing, but just because you add the package later doesn't mean it's not "the system".
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
The issue with that is that a user won't be able to call those programs, nor ldconfig find those libraries, if they are in weird directories.
/etc/profile.d whole-heartedly, and to sort of "abuse" that to add managed scripts that set up your environment to deal with packages outside of /usr/bin.
/opt/mozilla/mozilla-1.8/bin, then you also get a script called mozilla.sh in /etc/profile.d, which states somewhere:
O ZHOME/bin
/etc/ld.so.conf and adds the directory for lib if ain't there, then runs ldconfig after?
What's needed is for distros to adopt the
So if you install mozilla, which drops a bunch of binaries in
MOZHOME=/opt/mozilla/mozilla-1.8
PATH=$PATH:$M
export PATH
You get the idea.
Similarly, if installing libs, maybe it needs a post install script that simply seds through
Otherwise we'll continue to see this sort of uncertainty about what files belong where.
Now, one other thing to keep in mind is... rpm -q --whatprovides somefile is very useful. Even if you have cluttered directories, you should always know what package owns which file. You just have to ask. So now we ask ourselves, is it that big a deal, so long as you don't --force too often?
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
I am never EVER going to have this discussion with my mom/littlesister/grandmother/father. It just wouldn't work.
Linux ADVOCATES don't trust the system how is anyone else supposed to?
No Linux doesn't ship with everything you need just like windows, perhaps an automatic compiler and package downloader?
Comment removed based on user account deletion
Our own software (commercial, Digital Domain's Nuke Compositor) now does approximately this because we were burned too much with it not working on even the slightest difference in machines.
/proc/self/exe and readlink to find it's own name. It takes the directory and adds it to LD_LIBRARY_PATH. It then tacks a '_' onto the end and exec's that program (the name was chosen so ps lists seem to show the right name).
1. Everything is in a single directory. "installation" just puts this entire directory somewhere in the system. We let people choose where. It adds one symbolic link to the path, too (actually the current installer does not even do this link, we let the end user do it).
2. In that direcotory is a tiny c-only program with the name of our program. This is what the link points at and what people think they are running.
3. This program uses
4. That program with the '_' on the end is the actual program. In addition it can assumme argv[0] is a fully-expanded path name. It uses this path to locate data files like configuration information and plugins. And because of LD_LIBRARY_PATH it also searches in it's own directory first for libraries.
5. All libraries people have trouble with get their own version sent by us as part of the install package. This resides in the directory and thus only affects running our program. So far we have had to do libtcl, libtiff, special libraries required by the Intel compiler, our compilation of ILM's EXR library. We have NOT had to do glibc or glibc++ or any of the huge ones, these are actually quite portable.
6. We tell customers that if they are concerned about reusing libraries, to try renaming our copies so they are not found and thus they get the standard ones. This means that a Linux guru can tweak this just as good as any other install, but for the average person it just works!
Honestly I really don't know if this is a good solution, but it works for us quite well. I do think it is annoying that support for this is not more native, especially the inability to search the current directory for libraries, something that Windows does and inspired this solution.
yes...but you are missing the point. he wants to install it into /opt/gimp so that he could then create the symlink. the rpm package simply will install into /usr/lib/gimp.
The problem with all package managers is that they rely in a database of known packages. If you want to install some obscure package that is not in ther databases, you will end up into a package dependency hell.
At the university, I'm taking a course in graphical interfaces and their design. Just to get a feeling of something new, I decided to try Enlightenment. The base packages installed fine in my Suse box, using apt-get, but several epplets came only in source code form. While compiling them, I found that I needed some obscure library or some library that has been deprecated. After some days of dealing with dependences and uncompatible versions of libraries (ImLib, for example) I had to give up. Enlightenment runs fine, but several epplets don't even start.
Until all developers agree to follow a standard for their code to be installed (and I can't foresee this in the near future), there will be no package manager that can get us out of dependency hell.
PENAROL: Seras eterno como el tiempo y floreceras en cada primavera.
For your wireless card you might want to check out ndiswrapper. I have a card that's not natively supported under Linux
It tries to use the Windows driver under Linux. Works perfectly for me. Good luck!
http://ndiswrapper.sourceforge.net/
I'm not saying this isn't a good idea, but I really can't see the point. Why would you want to fight the package manager this way? Why is it so important to you to put apps in non-standard places?
Installed the Bubblemon yet?
when we talk about desktop, we mean for people who do not have an interest in those things. That is what i mean at least. I can tell you this, synaptic would scare eh shit out of most of my non techie friends.
The war with islam is a war on the beast
The war on terror is a war for peace
I guess this means that Robertson at Linspire has been on the right track for the last 3 years with making it one click easy to install software with mime types, desktop icons, menu items, etc. since CNR does all this and does it VERY well. Nobody matches their library or effectiveness.
Doing this across linux versions is a fools errand. If Mandrake can't even do it JUST for Mandrake (and the same is true for Suse and Redhat), then doing it across all the OSes is just a suicide mission.
you're WASTEing your time hoping for that.
FreeBSD for the impatient.
It used to mean "user". Your supposed acronym was retrofitted on after the fact. Early Unix systems had two major root level directories /sys and /usr. The /sys director was the kernel and /usr was the non-kernel programs (things that get executed in what is sometimes called 'user-space')