Ubuntu Developing Its Own Package Format, Installer
An anonymous reader writes "While complementing Debian APT/DPKG, Canonical is now developing their own package format. The new package format has promised highlights of having no dependencies between applications, each package would install to its own directory, root support wouldn't always be required, and overall a more self-contained and easier approach for developers than it stands now for Debian/Ubuntu packages. The primary users of the new packaging system would be those distributing applications built on the Ubuntu Touch/Phone SDK. The initial proof-of-concept package management system is written in Python and uses JSON representation."
This quote from the post by Canonical's Colin Watson bears repeating: "We'll continue to use dpkg and apt for building the Ubuntu operating system, syncing with Debian, and so on."
Good, another reason to avoid Ubuntu like the plague.
The world's burning. Moped Jesus spotted on I50. Details at 11.
Sounds like a complement to dpkg, not a replacement
If everything has no dependencies, then all of the dependencies must be included in the install. I wounder how many copies of each low level program would be on a given machine.
They should do it all on their own. No more leaching off Debian.
A better headline:
Ubuntu Phone apps will use a different package format than debian/dpkg/apt
I guess that's not really as exciting though
Wasn't this exactly what GoboLinux embraced?
Support Eachother, Copy Dutch Property!
Remember the good old days when everything was just a single -r-xr-xr-x executable in /bin or /usr/bin
sigh, the good old days
Karma: Excellent. 15 moderator points expire sometime.
Would it allow users to install multiple versions of the same application from packages? One of my gripes with Linux is that it's not easy to test new or beta versions of software since there is no easy way to install from packages alongside the existing (stable) version. Yes, I know that I could build the app from source, but that can be quite a hassle sometimes.
Ubuntu is dead.
Augment audio support which worked with Pulse which doesn't work.
Replace X which worked with Wayland/Whatever, which has fewer features and doesn't work as well.
Replace gnome with Unity which runs slower and lets you do less and is unusable on many setups.
Now, replacing a package manager which is common, well-supported, and works with one which will be none of those things.
Explain to me why anyone uses Ubuntu any more..... Oh yeah - it's because of marketing and ignorance and nerd-wannabees. In-the-know nerds have abandoned it years ago for OS's which actually make life easier - something which Ubuntu was intended to do, but not fails miserably at.
Stop re-building the wheel, please!
They are planning statically linked applications. Of course they might want to build their own DLL hell in which case they are on the right track using shared libraries...
many packages use the programs, configs, libraries of other packages, to say nothing of application frameworks spread across multiple packages (like say openvas client, server, manager, libraries) to address cases where a server might have some local and some remote parts, or all be on one machine. this idea would make a mess of things
Why do we need yet another packaging standard? Isn't the whole point of open source to take good ideas and merge them together? So why then, do we see divergence like this so much more than convergence? Sigh. I suspect the reasons for this are political rather than technical; The main failing of open source as a community is that while the source is open, the politics are messy and it results in dozens of incompatible "open" standards, protocols, etc. We bitch and moan about closed source protocols and having to reverse-engineer everything, which is a massive waste of effort because we're duplicating previous work... and then we're busy doing it to ourselves. :(
#fuckbeta #iamslashdot #dicemustdie
I'm guessing that they are going to statically compile everything. Otherwise they couldn't get rid of dependencies. Which is bad generally for various reasons, except in specific cases.
Also, isn't there a variant of Linux that already does this? They also used symlinks to make a more sensible (and modern) file system, and other things. GoboLinux, I just found it. Actually, I'm not sure how similar they are...
(Also, the first link is not needed, please don't include such rubbish.)
HELP MY ACCOUNT HAS BEEN HACKED BY AN ILLIBERAL ART STUDENT SET TO DESTROY THE INTERWEBZ!
I dont think this is so bad. One cause of Windows' (tm) success is for sure that developers and users dont have to think about broken library dependencies after an update. For commercial (proprietary) software such packaging system could finally start the year of the linux desktop (y).
http://en.wikipedia.org/wiki/Application_bundle
Once again, racing as fast as we can towards where the puck was 20 years ago.
I think it's just a case of "because different" and "not developed here". I don't see how they could make any significant improvements over apt, but it doesn't surprise me from this group of hipsters.
Stop pissing in the pool Ubuntu.
Hello Debian
I don't think we're going to see a completely separate install of Gnome for every single Gnome app on your system. I think this is intended for standalone apps like you see on phones and tablets.
I read the internet for the articles.
it seems like they suffer from Not Invented Here but at the same time, I seem to recall that Puppy Linux already installs self-contained package bundles into individual directories. Not unlike OSX/NeXT app bundles.
“Common sense is not so common.” — Voltaire
Obligatory: http://xkcd.com/927/
everyday is another shooter.
This reminds me of PBI from PC-BSD. Others have pointed out the similarities with Apple / NeXT as well.
For simple applications, it makes sense to do this. However, imagine creating a package for something large like firefox, libreoffice or kde? WIth the mass number of dependencies... it's a nightmare. Do I really need hundreds of copies of a PNG library on my system? What about zlib? gtk+ ?
MidnightBSD: The BSD for Everyone
Arch's pacman is has some significant improvements over apt/dpkg, especially when it comes to creating new packages. And gentoo portage/emerge has lots of useful features that don't exist in dpkg/apt either.
Debian is solid and has an excellent package system. But it isn't the pinnacle of achievement. We can take package management further still, I am certain.
“Common sense is not so common.” — Voltaire
IMHO, this is something Windows gets right. It's a fucking executable dammit. Yeah, it calls some APIs that are needed for installing. Installation library, sure; but "packaging system"??? Package format? Sooner or later you'd think that Linux people would just wake up and realize it's an executable.
The bugger ain't dead yet!
Finally, the last piece of the puzzle is about to fall into place, allowing the inevitable takeover of the mainstream desktop by Linux to proceed!
Seriously??? Does no one here even begin to realize this is an example of why Linux is a toy OS on the desktop for uberusers? Linux developers spend way, WAY too much time reinventing BS like this instead of, oh, I don't know, eradicating every last requirement for a user to type in a command or (here's a radical thought) developing a leading edge file manager. I've used Linux off and on for almost 20 years, and it blows my mind how even the wretched Explorer in Windows is light years more capable than anything I've seen on Linux. When you look at the third-party FM's available for Windows, the situation is even worse.
Watching Linux try to advance on the desktop is like watching the NHL try to become more than a distant 4th place in the "big four" sports in the US. Self-indulgent, old-school thinking, a refusal to do what's needed, and constant self-delusion. It's pathetic.
on having good stable API's of core libraries that are backwards compatible up to an extent, rather than continuously fighting dependency hell when it comes to updating packages ?
This proposal seems basically like "we statically link every binary", and we all know that is not wanted because of disk usage and more importantly: memory usage. Especially in constrained embedded systems statically that could be a concern if you start having a lot of running applications.
Slashdot: stuff for news, nerds that matter, matter for news, stuff that nerd
From the email:
The proof of concept I wrote also isn't entirely new code. It's tiny due to using .deb as a container format (minus maintainer scripts, full dependencies, etc.), so I get to save effort by using dpkg to unpack things, which leaves us room to selectively use more of its features in future if we want to.
So they start off with what they think they need, then become more like APT as they need to add more features.
So the scope of what I've been considering is purely leaf apps built on a fixed "base system", which in the case of the initial target of the Ubuntu phone/tablet work would be the run-time part of the Ubuntu SDK.
In other words, this is something to be used in addition to APT (i.e. post-install), rather than instead of APT.
* no dependencies between apps; single implicit dependency on the base
system by way of a Click-Base-System field
Just like Debian has an implicit dependency on the base system (except for base packages, which have more complicated rules). In other words, this system will only accept a single dependency, the Click-Base-System. I'm not quite sure why this is different from only accepting applications that only depend on Click-Base-System.
And note that the "each package will install to its own directory" bit is on the to-do list:
Obvious items I still need to work on:
Ask me about repetitive DNA
puttting each program in its own directory is an absurdly bad idea. Then you would end up with a massive PATH variable and also does not follow the time honored Unix tradition which needs to be respected. For allowing multiple versions of the same program I would prefer to see some other solution, one possibility might involve putting symlinks in /usr/bin to program files into another directory where different versions of the program can be stored. the different versions of the program could be accessed in the seperate directory holding multiple versions and the symlink from /usr/bin would point to the default version.
The NHL is better then the 2 shit baseball teams in my home town.
This sounds like Microsoft's AppV. At least by my feeble understanding of AppV and what little I read in the summary. All dynamic libraries are packaged with the application and delivered as a unit. OS's and underlying hypervisors can use memory de-duplication to reduce the bloat that this might otherwise cause.
I am not well versed in the dpkg format, but RPM has Relocatable Packages, not many people use it, but if you want to do something like Ubuntu wants on an RPM based distribution without creating another format, You hack rpm commands so it can check a per user packages database using relocatable packages, no need of a new format
so every time I install something which is bundled with (say) java, I'll get java every time? How many copies of java with inconsistent and possibly incompatible behaviour does a person need?
example, say I have an app which comes bundled with "helper-program" version 1.0, which keeps its config files in ~/.helperprogram/config
and then I have another app which comes bundled with "helper-program" version 1.1 which keeps its config files in ~/.helperprogram/config
wtf??? am I missing something here?
So now they are going to reinvent, rename, and claim full credit for Android Package files (.apk), the same way they reinvented, repackaged, and claimed credit for Debian?
Hello Debian
Except Ubuntu users want cutting edge Debian, not tried and tested Debian...and unfortunately using Debian is not going to make it more cutting edge.
The majority of Ubuntu software comes from Debian. What are they thinking?
So are you saying that Ubuntu should or should not follow in Puppy's footsteps?
“Common sense is not so common.” — Voltaire
Why break something that is fixed?
Absurd..
Except Ubuntu users want cutting edge Debian, not tried and tested Debian...and unfortunately using Debian is not going to make it more cutting edge.
You asked for it, Debian delivers. The Debian CUT Project aims to publish usable snapshots of Debian Testing on a monthly basis. They're pretty new but picking up steam.
http://i.imgur.com/BcS4XJm.png
...too few package formats.
Because we all know that the one thing Linux is missing is yet ANOTHER packaging system.
666 Ubuntu Sucks Dix.
curtain.
I've definitely not been a fan of their track record these past few years, but they do occasionally hit on some really good ideas (if somehow managing to screw up their implementations: Upstart was a good in principle, and so was making a verical launcher/taskbar instead of making our widescreens even shorter.) This is another one. Well, sort of. Maybe not 'no dependencies' but at least 'no dependency conflicts, ever.' It's two thousand thirteen, why are we still tolerating this shit? There's absolutely no reason why the package manager can't chroot/symlink the little fuckers and make them see what they need to see so they can coexist with any other package. If the package manager is informed enough to recognize a conflict, it's also smart enough to resolve it without the user doing anything beyond confirming the installation of the extra required dependencies, and yet for some reason none of the current crop of package mangers do this.
I'd rather have a bad solution from Ubuntu inspiring people to do it the right way (see: Mir lighting a fire under GNOME's ass to help out with Wayland) than have no solution at all.
*If* everyone picked exactly the same lib version, yes.
In practice, people aren't going to standardize on the same library version.
Bonus problem: Now each app provider is responsible for addressing a hypothetical libcrytpo vulnerability rather than the distro patching it in one place.
XML is like violence. If it doesn't solve the problem, use more.
i can't see why i'd want to install an app by a developer who wasn't competent to do something that's actually quite easy.
the only purpose for this is to cater to ignorance and incompetence.
Will this finally allow non-admin users to install packaged programs into their own user home folders? I hate how there's been no easy way for users to install packaged programs into their own home folders without privileges.
That every time you update appFoo that needs you to go to Java 1.6.0.49.1, appBar will break because it only works with 1.6.0.49.0.
"I may disagree with what you say, but I will defend unto the death your right to say it." -- Voltaire
Stop forking. No, seriously... stop.
So I won't have to write special scripts every time I install a new daemon app?
Seriously, I do not live in the Linux ecosystem, so it's a pain in the ass when I have to install anything on the few Linux boxes I have here in my house, looking up the obscure commands to figure out how to get everything running - and failing to get some daemons running, without so much as a single log line to tell me why it failed.
Sorry... just venting. Compared to Linux, Windows installations are light years ahead. That's just a simple fact.
I'm really happy to see Canonical taking the lead on this one. The main stream Linux distros have been putting off having a self-contained package bundle for far too long. PC-BSD has this technology, OS X has it, Android has it, Windows has it. Ever so often someone in the Linux world implements this sort of thing, but it never gains wide support because it's not backed by one of the big distros. Having Ubuntu move forward with a proper dependency-less package format and the tools to work with it will be wonderful. It looks like they are currently using dpkg as a backend for the new format which means it should be easy to port this new package manager to any other Debian-based distribution.
reinventing the wheel? Doesn't epkg do this already?
I've worked placed that used epkg across all UNIX platforms to re-package packages. It is a little old-school - these days something like ansible or rex or salt would be a better choice. Anything but the 1000x too complex puppet.
No, nothing about overlords. Usually I consider current Canonical to be a great source of hare-brained ideas, but this is actually sane as far as end-user applications with no infrastructure components (servers, libraries) are concerned.
They will have to add apparmor rules to prevent this from becoming a security nightmare, but having application installed under user's home is actually an old Unix tradition, that became uncommon because package managers are not designed to handle it. Just make it more convenient than Apple's applications installation, and keep all truly common libraries in Debian packages.
Contrary to the popular belief, there indeed is no God.
Remember Rox Desktop? http://en.wikipedia.org/wiki/ROX_Desktop Very similar to how mac os works. Lay down a base system with the common libraries in a central location. Apps are just custom folders with a very specific directory structure. It's not horrible, as an end user it's kind of nice. It will lead to security whack-a-mole issues when common but non-core libs have issues, but nothing's perfect.
each program came with its own video card drivers, it's own printer drivers, it's own windowing system, it's own mouse reading code, and sometimes it's own memory management code.
as Junta stated above, "In practice, people aren't going to standardize on the same library version."
how can you reference count libwhargharbl-0.2.4.1.2 when your app comes bundled with 0.2.4.1.3
Will they also forgo the shared libraries, and have everything statically linked? Sounds familiar? If they go this route, one downside to this is it takes up too much memory. Which is why apple switched from static libraries and started using shared libraries.
ESR = raving lunatic
Torvalds = flips off business partners and curses them
Stallman = thinks NAMBLA is not a big deal
Reiser = murdered his wife, buried her body, and pled not guilty
versus
Bill Gates = cured Polio
http://xkcd.com/927/
... constantly reinventing the same wheel over and over for no reason.
Instead of spending resources making the current wheels better, faster and stronger, there is a tendency of just wasting resources on reinventing it just because the old one is not cool to work on anymore.
So... catching up with Mac OSX? Sounds just like the .app "bundles" (really just zips as far as I can tell)
. Define sqrt(x) as something really evil like (x / rand()), and bury it deep. Watch your coworkers go nuts.
Manage source not versions of binaries and crutches to help you walk uphill. If compiling from source is not working for core features of the OS there is a bigger problem at hand. Canonical cannot squeeze blood from a stone in this regard- if they want their own package manager they need to put it in a paid-for enterprise version. Its amazing to me that after all these years open source has turned into a way for companies to claim that they are improving things by rebranding them. If you want developers to cater to you then pay them don't jury-rig their work and call it an OS.
It can be a good idea if it is used as a complementary system, used ONLY for a few selected packages, like for example non free ones. Non free packages have the problem that sometimes they become a real pain to get working, when the libraries they depend on get outdated, and are not available in the repositories of the distro you are using. As Ubuntu continues moving away from the free software ecosystem, I think this is hardly a surprising move.
While all they actually need is just .zip files with .info file and .dpkg files, .dpkg being the application itself and all non-standard libraries. Dead simple stuff.
As an Average Joe who has been tortured by X.org issues and dependecy hell problems more than a few times, I can only welcome Canonical's decision to pursue Mir and this new package system. Sooner or later, there will be a schism between "linux for the Average Joes" (Android, and maybe Ubuntu) and "linux for hackers" (Debian, Arch etc). "and, BTW, since linux can run even ancient a.out format binaries from the 1990s on modern kernels" Unless they have a GUI, because you know, X.org...
So once again we see Liunx developers reinventing a perfectly good wheel instead of writing some quality software that might make people actually want to use Linux on the desktop.
Next week they'll rewrite the desktop (again), the GUI engine (again), the filesystems (again), the mail client (again) but still there will be NO DECENT APPLICATIONS.
No wonder desktop Linux will never take off.
apt-mark hold Ubuntu
I've got a better idea. Or rather, Pat Volkerding does. Never mind dependency checking, just let the user sort them out for himself. Slackware's package system is beautiful: a simple *.tgz or .txz file, with a note saying "and BTW, you'll need foo and bar as well". No need for separate directories full of statically linked packages, and it just works.
Of course, I have to admit that Debian packages work too, but if that nice Mr Shuttleworth thinks otherwise, then (sadly) there's another reason not to use Ubuntu.
While I can admire Shuttleworth's passion, he isn't doing anyone any favours by pursuing this "Not Invented Here" ideology. Everyone would benefit if he would just act like a part of the community, instead of trying to railroad it.
Bodhi Linux has one click software installation binaries. Irony is that it is based on Ubuntu.
this is essentially what (http://nixos.org/) or (http://www.gobolinux.org/) do, though the former has much grander goals.
So, will each and every package load *all* their shared libraries, or will the packaging system look to see what libraries are on the system, rather than read the d/b for package names?
mark
"I ran across a program for Windows recently called Ninite. It's a multi-app installer and updater. it sounds like a good idea and is. it's a big improvement over the usual click-and-execute for each individual program."
It's [Ninite] also closed source!
Chocolatey NuGet claims to be "a Machine Package Manager, somewhat like apt-get, but built with Windows in mind"
It's here: http://chocolatey.org/
Tried it I have not.
Oh... I am going to miss the good old days of portable software which I just had to extract and run
I just tried out the "Linux Desktop's" premiere SIPphone app, Ekiga. It wants you to sign up for their ekiga.net service, but per their instructions I skipped that step to use my existing SIP service. Now there is no way to add a non-Ekiga service... none! zip! The Accounts dialog shows an empty list and every single button is greyed-out.
Oh yeah, on initial startup, it asked me to choose from a list of 6 audio devices 3 times (for audo ringing, input and output). When I type a number into it, the thing opens up a call status window that says "Call completed" instead of "please setup a SIP service first". Lovely.
The alternative that the Ubuntu repo lists is LinPhone, which got 2.5 stars to Ekiga's 3. It looks like an app from 1992 and not sure I want to try it.
As for Firefox, the Linux version is in rough shape. The way it handles UI element focus is wacked-out (sorry, it is not just "different" than OS X and Windows). I don't appreciate having links clicked-on when I click on a window in the tiled window manager listing. I don't like having it 'remember' HALF of the windows in my session. I don't like file dialogs that are blank window frames if an IFRAME containing a video happens to be showing at the moment.
The "Linux Desktop" ecosystem is broken and never worked. It insists on stamping the server-room mindset onto the desktop. So what you get is a situation where even server admins prefer Windows and OS X for their desktop tasks. In a nutshell this is why "Linux Desktop" failed and Android succeeded.
Users don't need to worry about which DE a program uses, programs which use another DE's toolkit work seamlessly
I'm aware of Project Portland and its successors and whatnot. Yes the apps seem to work, except when they don't, and in doing so they negate the resource advantage you clamined.
Ubuntu has just passed a very important milestone: The Jumping of the Shark.
as on today with existing mechanisms, this can be somewhat achieved by putting all dependencies in a folder and putting a appropriate LD_LIBRARY_PATH . Isn't it?
You are right ,bro .
I am sure they will just put a fancy wrapper GUI/commandline to dump and remove the package directory ; but in back they will use the same LD_LIBRARY_PATH, as you mentioned.