OSI
From openSUSE
Contents |
OpenSUSE Installer (Concept)
This document is only conceptual, and not a formal part of the OpenSUSE project, and therefore should not be used or implemented. May be subject to any change at any time.
Use Case
- Allows the user to install packages in a manner totally offline
- The user just only need to download a single file
- Emulates the concept of the MSI installation of Microsoft Windows, so the user does not have to learn a new concept of installation . For users coming from the Microsoft platform, they are expensive to understand the concept of Repository and rpm packages.
- Take advantage of existing technologies and current management in openSUSE package, which allows it to integrate a transparent system to normal package management.
Scope
- The scope is automating the installation of applications or group of applications using the framework One Click Install through a local temporary repository with all packages and dependencies necessary so transparent to the user.
- Outside the scope of management is any treatment of packages and repositories of distribution
Requirements
- The actions must be undertaken with a single click from the user
- Must be composed of a single file and that its implementation is independent in as much as possible of what the user has installed
- Must respect the security established in the installation packages for distribution
- Must be able to resolve conflicts between packages
Dependencies
- It requires technology One Click Install
Proposal of the standard
The installation files with the extension OSI (. OSI), are files that are composed of two parts:
- Shell Script. A portion shell scritp to uncouple the necessary files and invoke the installation using One Click Install openSUSE
- Compressed Package. This part will contain all the files and information necessary to allow the installation using One Click Install.
Shell Script
#!/bin/bash
PATH=/usr/bin:/bin
umask 022
TARGET_NAME="OSI"`date +%H%M%s`
if [ "`uname -s`" = "Linux" ]; then
tail_args="-n"
fi
trap 'rm -rf /tmp/$TARGET_NAME; exit 1' HUP INT QUIT TERM
echo "Unpacking..."
mkdir -p "/tmp/$TARGET_NAME"
tail ${tail_args} +36 "$0" > "/tmp/$TARGET_NAME.tar.gz"
cd "/tmp/$TARGET_NAME"
tar xvfz "/tmp/$TARGET_NAME.tar.gz"
cd root
sed -i "s/\${REPO_URL}/file:\/\/\/tmp\/$TARGET_NAME\/root\/repo\//" installer.ymp
/bin/bash /sbin/yast2 OneClickInstallUI /tmp/$TARGET_NAME/root/installer.ymp
echo "Deleting temporary files..."
cd /
rm -rf "/tmp/$TARGET_NAME"*
exit 0
This script file will be concatenated to the compressed package described below, thereby resulting file a single and that is enforceable.
Compressed Package
The compressed package in tar.gz format, contain the following directory structure and files:
- root
- repo
- Archivos RPMs
- repodata (Carpeta de datos creada con createrepo)
- installer.ymp (Archivo One Click Install)
- repo
root/repo Folder
This folder will have all the RPMs files needed for the possible installation of the application or group of applications that want to install. It should be borne in mind that it is assumed that the user has either the installation DVD or the repository standard installation of openSUSE, so there are certain basic packages that need not be included.
This folder, once containing all RPMs files required, it will create the folder using the tool repodata "createrepo" which has openSUSE.
installer.ymp
This will be an XML file containing the required information described as the Standard One Click Install. The only difference is that it will only have a single repository, which URI will be a wild card:
The Shell Script execution OSI will be responsible for replacing this wildcard for unzipped direction where the final repository.
Attention! There remains the possibility of using the state. Ymp that the repository is something temporary and should not under any circumstances be added permanently.
Once the call Shell Script One Click Install, any action is relegated to operating the technology itself One Click Install.
When the installation using One Click Install, the repository will be temporarily removed automatically.
According to latest news about the technology One Click Install, this will not only be used for the installation, but if you find that a package is already installed will allow removal. It is expected to use this feature to OSI, allowing the technology to be raised here a simple system to install / uninstall.
Example
Download an example OSI package from:
http://dl.getdropbox.com/u/363315/MozillaFirefox.osi
TODO
- One Click Install to allow indicate that the repository is proposed is temporary and should not under any circumstances be added permanently.
- Creating a Shell script that generates the OSI packages will automatically
- For the previous point, it would be interesting to 'zypper holds an option to "Download only" (download-only) and 'to lower the RPM of the application indicated its dependencies.

