LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


View Poll Results: What do we think?
Good 7 50.00%
Bad 7 50.00%
Voters: 14. You may not vote on this poll

Reply
  Search this Thread
Old 04-19-2007, 07:12 PM   #16
vargadanis
Member
 
Registered: Sep 2006
Posts: 248

Rep: Reputation: 30

An installer is a nice idea but the thing is that it would be too close to windows. I like linux because nothing is the same. But if once you decide that you want to create an installer like that, keep in mind, that under windows, the installers just modify the registry, extract the binary and set up the environment. This is already done by the packages of the software. Also there are graphical installers such as Synaptic and I really don't think that there were too much point in creating that installer. Well maybe...

If this installer would recognize what kind of OS is it running on and copy the binaries, set up the variables accordingly, than there could be a potential for that application, because developers would not have to create 15 kind of packages, just one installer.

So what I think, that would be a good idea is:
create an install shield wizard like app that extracts the binaries and then it also detects the OS and do the setup manually and accordingly.
 
Old 04-24-2007, 02:03 AM   #17
Pink Floyd
LQ Newbie
 
Registered: Aug 2006
Posts: 8

Original Poster
Rep: Reputation: 0
I think what we need is some sort of mirror system just for *.pbi packages and a way of getting FreeBSD to support this system, Apple should follow and we would know at least have a 80% of the BSD world operating on a single system.

*.pbi's are self contained packages that eliminate the need for dependency tracking.
Each *.pbi file contains all library's required by the program, if a library isn't installed it's available from the open pbi file rather than some other package that requires a tracking mechanism.

Dependency issues make me cry.
 
Old 04-25-2007, 03:11 PM   #18
indienick
Senior Member
 
Registered: Dec 2005
Location: London, ON, Canada
Distribution: Arch, Ubuntu, Slackware, OpenBSD, FreeBSD
Posts: 1,853

Rep: Reputation: 65
It's a good idea Pink Floyd, but again, that's a Windows realm - contain all needed libraries within. Although this makes a very nice distribution system, you come across situations where two applications require the same library. Under the Windows way, 95% of the time, that library will be removed (forcefully), regardless of what it's needed by, if one of the applications is rendered useless (via upgrade or no longer needed).

Now you're left with a program that doesn't respond due to that missing library. And installing each application to its own directory, keeping privatized libraries, creates unnecessary bloat.

A possible counter for the bloat, is to have a *.pbi installer where it looks for applications which are known to contain libraries needed by the application you're installing, and create symlinks to those libraries (also diminishing the chance of broken dependencies), but then should the program containing that library be removed, you're left with nothing more than a non-functional program with a broken symlink dependency.

In the end, there are really only two choices, the Windows(.msi) and *.PBI way, and the Unix (dependencies) way.
 
Old 04-28-2007, 04:50 AM   #19
Pink Floyd
LQ Newbie
 
Registered: Aug 2006
Posts: 8

Original Poster
Rep: Reputation: 0
Quote:
It's a good idea Pink Floyd, but again, that's a Windows realm - contain all needed libraries within. Although this makes a very nice distribution system, you come across situations where two applications require the same library. Under the Windows way, 95% of the time, that library will be removed (forcefully), regardless of what it's needed by, if one of the applications is rendered useless (via upgrade or no longer needed).

Now you're left with a program that doesn't respond due to that missing library. And installing each application to its own directory, keeping privatized libraries, creates unnecessary bloat.

A possible counter for the bloat, is to have a *.pbi installer where it looks for applications which are known to contain libraries needed by the application you're installing, and create symlinks to those libraries (also diminishing the chance of broken dependencies), but then should the program containing that library be removed, you're left with nothing more than a non-functional program with a broken symlink dependency.

In the end, there are really only two choices, the Windows(.msi) and *.PBI way, and the Unix (dependencies) way.
I was thinking of PBI's to solve my current immediate problem.
It seems they have managed to do so.

For a universal installer system I wasn't suggesting a windows way of any sort. For a long time now and hopefully forever I will not consider running windows an option.
I still remember laughing my head off when I read about Gobo Linux storing libraries and programs in their own folder side by side. I have also violently abused windows for this method, it has given me far more headaches than the problem that started this thread.

I would suggest something in the way of:

all library's are put into /user/lib or something similar,
provided it conforms to the linux standard base in regard to directory structure. Everything is tracked in the same way as most packaging systems today. However the package simply must contain all library's required by the program's in a particular package.
When a package manager encounters an already installed or previous version of a library / dependency. The library or dependency is simply skipped or upgraded.

This would conclude the packaging format for either Linux, BSD.
If we could then achieve the same kind of thing for Linux / BSD (BSD includes Mac OS X), Solaris, React OS and maybe Novel Netware. We can now define a package encapsulation format that will be able to install every kind of program on any kind of commonly used operating system.

As stated above all member packages would keep their own libraries handy, but not be in-charge of how the libraries are used.
The master encapsulation format / master encapsulation package would just encapsulate these member packages.
The master encapsulation package would also include a python script to handle OS detection and hand the appropriate member package to the package manager or the appropriate operating system.

As the installer system requires a python runtime environment, any programmer can now make a python program, and then use a quick simple package maker program and walla. The program now works seamlessly on any common OS. All this with almost no effort from the end user, and no real extra effort from the developer.

Python would be the first language supported, as time progresses additional interpreted languages would be added to the specification e.g JavaME, JavaSE, C# etc.
Obviously, all programs contained in member packages would have to consist of byte code.
Any other language could probably be allowed as long as it could be defined and interpreted into byte code.

This method would NOT repeat NOT depend on the dot.net environment or definition. However overlapping use of languages may mean that the dot.net runtime environment would support nearly all programs from this install method.

I can see only one major problem with my proposal this far,
that being the possible size of the master packages containing these programs.

Any Ideas


Copyright 2007 Keith Emery.

Last edited by Pink Floyd; 04-28-2007 at 05:00 AM.
 
Old 04-29-2007, 05:04 PM   #20
indienick
Senior Member
 
Registered: Dec 2005
Location: London, ON, Canada
Distribution: Arch, Ubuntu, Slackware, OpenBSD, FreeBSD
Posts: 1,853

Rep: Reputation: 65
The more and more you're describing it, the more and more I'm liking it, Pink Floyd.

The only issue with upgrading libraries, is that the old application would have to be re-compiled (or upgraded), causing an extra bit of hassle. It can be simply taken care of, though.

If you're interested in making this into a project, I'd be more than interested in helping.

indienick is also my SourceForge developer name.
 
Old 05-04-2007, 02:52 AM   #21
Pink Floyd
LQ Newbie
 
Registered: Aug 2006
Posts: 8

Original Poster
Rep: Reputation: 0
I like the idea of making such a project,
but think we need to more strictly define what were trying to do.

Come to think of it if were using a virtual machine anyway is it possible to store obfuscated or plain byte code in an xml document?
 
Old 05-04-2007, 01:54 PM   #22
indienick
Senior Member
 
Registered: Dec 2005
Location: London, ON, Canada
Distribution: Arch, Ubuntu, Slackware, OpenBSD, FreeBSD
Posts: 1,853

Rep: Reputation: 65
No idea.
I stick to mostly Lisp programming (with some Java) - which kind of entails a programming trait of recursive applications and mathematics.
But I am learning Python.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Risk of Linux P2P vs. Windows P2P software snatale1 Linux - Software 2 12-04-2004 07:14 PM
P2P in Linux kevcart3 Linux - Software 11 09-22-2004 10:38 AM
Linux P2P Orbit92 Linux - Newbie 1 07-17-2004 11:50 PM
P2P for Linux? neozero62 Linux - Newbie 9 11-20-2003 06:05 PM
p2p under linux flynnhandley Linux - Software 5 10-02-2003 07:25 AM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 06:29 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration