Home_greyopenFATE - openSUSE feature tracking > #305582
Dashboard | Search | Sign up | Login

Please login or register to be able to edit or vote this feature.

Off-Line one click install (MSI for Linux)

Feature state

openSUSE-11.2
Rejected Information
openSUSE-11.3
Rejected Information
openSUSE-11.4
Unconfirmed

Description

Idea from community member Raúl García.

Same concept as MSI packages for Windows but exploiting the One Click Install concept of openSUSE (and therefore inheriting the simplicity, code and security.

Basically a compressed file which includes a repository inside, plus one click install information, and a script to trigger the oneclickinstall handler with the data as payload in the script. Therefore is a collection of rpms that can be installed

detailed description is here
http://old-en.opensuse.org/OSI

There is already a prototype working.
Example script:
http://dl.getdropbox.com/u/363315/MozillaFirefox.osi

This requires some extra features in one click install and other pieces

  • ability to force OneClick to add the repo (the one inside the compressed file)
Additionally I see other features:
  • ability to suggest an update repo for the installed bundle
  • support from build service to generate bundles
  • easy way to generate them locally
Out of scope but interesting:
  • Ablity to trigger a YaST workflow (its own control.xml?)

User benefit:

This solves the business case of distributing service packs, applications, codecs bundles by just downloading a big file, 100% offline, supporting dependencies and repo signatures.

Relations

Discussion


icons/user_comment.png B. W. wrote: (5 years ago)

Sounds good.
I suggest not using a shell script to start the process as this could contain
anything. Executing arbitrary untrusted code is not really a good idea.
An archive containing metadata coupled with a handler that understands the
format should be sufficient.

icons/user_comment.png S. V. wrote: (5 years ago)

Do you mean an ISO image containing an add-on product with privilege separation?

icons/user_comment.png R. G. wrote: (5 years ago)

The shell script will be executed by the user, with user privileges. Once the
file is decompressed, the "One Click Install" is launched and it's works
normally but with a local repository.

Yes, the shell script could be altered, but any shell script could be altered
:)

icons/user_comment.png B. W. wrote: (5 years ago)

"The shell script will be executed by the user, with user privileges... Yes, the
shell script could be altered, but any shell script could be altered :)"

The point is not that the script could have been altered, but that the user has
not chosen to trust the vendor at the time of executing the shell script, so
should not be executing arbitrary code from that vendor. Furthermore, when the
script is executed there is not even any way of knowing that the script is
really from the vendor the user thinks it is from, or has not been modified in
transit.

It is safer to have just metadata in the archive, which is read by a handler and
any scripts are executed only once the user has chosen to trust the vendor.

icons/user_comment.png M. M. wrote: (5 years ago)

Security comments.

- There should be a signature / key already in tarball that validies all other data
- and why not a repomd tree, with everything reviewable from repodata/repomd.xml

- what advantage brings this compared to just a tar-ed up RPM-MD tree in usual format and signature checked?

(and btw, the example script on the page has /tmp problem en-masse)

icons/user_comment.png P. R. wrote: (5 years ago)

I'm against executing any shell scripts. I think Marcus has the point and it
was exactly my thought.

OSI file should contain:

  • tared (and compressed - probably lzma) repomd repository
  • signature
  • list of packages that are required/recommended/suggested to install from
    this repo

We could reuse YMP-handler, which will only add compressed repository to
system, do the workflow and remove it right after installation.

icons/user_comment.png J. T. wrote: (5 years ago)

How would it handle the remove of the same software a user have just
installed using this process???

will it be as simple as installing???

icons/user_comment.png R. G. wrote: (5 years ago)

One Click Install is expected to support the removal in the future with the
same .ymp

icons/user_comment.png J. T. wrote: (5 years ago)

Well... that seems a
very distant future!!!

shouldn't you
wait for that feature to came out first??? i mean... Your idea is
really
great
but with no uninstall feature... well it will be missing a very
important part!!! (crucial i would say...)

I saw PC-BSD's PIB and it
seems really interesting!!! It seems very complete!!!

icons/user_comment.png P. R. wrote: (5 years ago)

On the contrary: from my point of view adding removal feature is very easy.
UI will present the list of packages from the metadata, user will do the
selection and then these packages will be removed with zypp ...

icons/user_comment.png J. T. wrote: (5 years ago)

But it would present all the dependencies or just the ones installed by that
specific action???

If it would just present the ones installed by
that specific installation then you mean that what is asked here
(http://opensuse.awardspace.com ) is easy to implement...

icons/user_comment.png B. W. wrote: (5 years ago)

Getting a bit off topic but some of the reasons it's not trivial to implement
the uninstall is that you

a) need the history of what packages were installed as part of the installation
(including automatically selected dependencies)

b) Need to only remove the packages that were installed by the original
installation but are not required by anything else that was installed
subsequently (we don't want to uninstall unrelated things).

c) Need to cope with users removing individual packages manually since
installation. When do we decide that the application is no longer installed?

... and several others that I thought of but can't remember off the top of my
head. The biggest problem is a) As we do not have a transaction-level history of
what packages were stored afaik, and are certainly not tieing it to application
level metadata.

icons/user_comment.png J. T. wrote: (5 years ago)

Like i said before... uninstall is far away... :'(

icons/user_comment.png D. M. wrote: (5 years ago)

Yes. Benjamin is right.

We are looking into this concept. There is a thread in zypp-devel about this, and it is more complex than it sounds (requires the algorithm to know where the package comes from and why it was installed, information that is right now not available).

But please every offtopic conversation here will hurt the evaluation of this feature later. Keep the discussion focused and based on research.

icons/user_comment.png J. T. wrote: (5 years ago)

Yes, You're right Duncan... I'm sorry! I really get of ground speaking about
"that" specific subject... ;)

anyway, if the prototype is working and
just a small pieces are missing, why not put those pieces together and release
the feature??? This is something really cool!!!

icons/user_comment.png F. L. wrote: (5 years ago)

the idea is interesting, but if it is really self-contained like an MSI. With
repos involved, I am not so sure... (referring to ml discussion)

icons/user_comment.png F. L. wrote: (5 years ago)

Postponing from 11.2 while we work on dist-upgrade (one biug problem at a time, please).

Will reject once Next-release added to fate, so I can add that target before closing the 11.2 one

icons/user_comment.png a. f. wrote: (4 years ago)

because it's supposed to work offline.. what about if i miss any dependency? i can't retrieve that online (since i'm working offline) and actually i think you can't really provide a 4/5 GB OSI file.

i think that should "reduced" excluding all rpms provided by the DVD.. in other words

if package X depends on Y available into the installation DVD --> Y is NOT into OSI

if package X depends on Y NOT available into the installation DVD --> Y IS into OSI, even if Y is into OSS/NON-OSS repo. just because as i sed, you are supposed to be OFF line

icons/user_comment.png 嘉. 張. wrote: (4 years ago)

PC-BSD is another example. It supports two format(PBI,TGZ) for software manager. The pbi format provided Completely graphical extraction & installation process. Also provided "Remove Programs" system utility to easy removal.

icons/user_comment.png 嘉. 張. wrote: (4 years ago)
icons/user_comment.png T. R. wrote: (4 years ago)

Wouldn't this basically just be a package with an rpm file and a repo file?  You click the compressed file and it installs the repo and rpm (or vice versus).  You can already install a package with one click by downloading an rpm, and I think you should at least in theory be able to install a repository with one click using a .repo file, so combining these into a single compressed file should work more or less, right?

icons/user_comment.png F. L. wrote: (4 years ago)

We will limit ourselves to zypper, PK Applets, Yast, one-click and Add-ons. More abstractions to manage software are undesirable for now, we have enough on our hands already.

icons/user_comment.png n. s. wrote: (3 years ago)

Doesn't Makeself already do most of this?

http://megastep.org/makeself/

Last change: 3 years ago
Voting
Score: 75
  • Negative: 9
  • Neutral: 8
  • Positive: 84
Feature Export
Application-xmlXML   Text-x-logPlaintext   PrinterPrint