Navigation

Login

Username

Password



Not a member yet?
Click here to register.

Forgotten your password?
Request a new one here.

Users Online

· Guests Online: 1

· Members Online: 0

· Total Members: 1,261
· Newest Member: yokwol

Links

Get Nixstaller at SourceForge.net. Fast, secure and Free Open Source software downloads

About

About Nixstaller Nixstaller is an Open Source project with the goal to create user friendly and flexible installers that work on various UNIX like systems.

Project Goals

Nixstaller is created with the following goals in mind:
  • Work on various UNIX like systems. Ideally as much as possible.
  • Be fully translatable.
  • Small 'size overhead', meaning that installer packages should not be much bigger than a regular compressed (tar) archive would be.
  • Run on recent and less recent operating systems.
  • Very few dependencies, especially for the end user.
  • Support different frontends, to make sure that the installer will run on as much as possible systems and possibly have a native look.
  • Make the creation of installers both easy and flexible.
  • When using 'Package Mode' (see below), the installer's software should ideally be installed by the user's package manager, if not possible scripts will be provided to manage the software. All files, including dependencies, should not conflict with existing files or disturb the package manager.

Current Features

Most of the feature goals are already implemented, though in future releases many of them will be furtherly extended.

Supported Systems

Nixstaller runs on many different systems, the table below lists those which are currently supported.
OS Arch Tested on Unsupported versions
NetBSD x86, x86_64 3.1, 4.0, 5.0-rc2 Anything before 3.X is unknown to work.
FreeBSD x86, x86_64 6.2, 7.0, 7.1 and PC-BSD 7.02 Anything before 6.X
Linux x86, x86_64 PCLinuxOS 0.93 and 2009.1, OpenSUSE 11.1, Arch Linux, Fedora Core 10, Knoppix 3.3-2003-11-19, Debian Sarge, Sid and Lenny, Zenwalk 6.0, Kubuntu 7.10, Ubuntu 8.10, Mandriva 2008 and 2009. x86: Very old distributions (ie. systems using GCC 2.X).
OpenBSD x86 3.9, 4.4 Anything before 3.9 is unknown to work.
Solaris x86 Solaris 10-4, 10-6 and OpenSolaris 2008-11 Others (including older Solaris 10 versions) are unknown to work.

Translations

Nixstaller can be fully translated (including any new text coming from scripts). It's up to the install creator if a suitable translation will be autoselected or should be selected by the user.

User interaction

Nixstaller supports both attended and unattended installations.

With attended installations frontends are used to communicate with the end user. The frontends allow the user to control and view the installation process. Because not every system is the same, Nixstaller comes with three different frontends:
  • The ncurses frontend is a text based frontend. It should run on almost any system.
  • The FLTK frontend is a graphic frontend using X11. Because it's linked staticly it runs on almost every system which has X11 running.
  • The GTK+2 frontend is also a graphic frontend, but will only work with systems which have GTK 2.4 and later. For systems such as those using Gnome it will have a 'native' look.
When the installer is run, a suitable frontend is automatically choosen (in order: GTK+2, FLTK, ncurses). The install creator can decide which frontends should be included. As soon as a frontend is launched the user will be presented by several 'installation screens'. These screens are used to communicate with the user and can be used to show an intro, let the user fill in some info, show the installation progress etc. A range of predefined screens exist for most common operations. It's also possible to create new installation screens. The install creator can place a range of different 'widgets' on newly created screens, such as inputfields, checkboxes and images.

Unattended installations don't need any user interaction. The installation process is configured through commandline parameters and any output is directly printed to the console.

Configuration

The creation of new screens, the installation process itself and configuration of the installer is all done via Lua scripts. Lua is a simple and easy to read and write scripting language. More info can be found on the Lua homepage. The Nixstaller manual also has an extensive Lua guide.

Nixstaller has extended the Lua libraries with a whole range of new functions. These functions are used to communicate with the user's OS (Operating System), interact with the user, install desktop menu entries, extract installation files etc.

Installation Types

Nixstaller is flexible about how the software is installed. Some examples are installers that simply extract some files to a specified location or an installer that will compile software. Nixstaller also has a special installation type called 'Package Mode' which can be used to let the user's package manager package and install the software.

Package Mode is especially handy for software managing (uninstallation, updating). Currently the following package managers are supported: rpm, dpkg (deb), pacman (arch linux) and installpkg (slackware). If the installer is unable to use a package manager (or told not to), the installer will instead simply install the files and create an uninstallation script. When this script is called, it will verify all installed files with MD5 sums before they are removed.

Dependency handling

When using 'Package Mode' (see above) Nixstaller can also handle software dependencies. Required dependencies can easily be found by scanning binaries for required shared libraries. It's also possible to specify your own method for gathering required dependencies. In case a dependency is missing or is (binary) incompatible the user will then either be notified or the installer can install it's own supplied version.

Nixstaller knows two dependency types: simple and full. Simple dependencies don't provide any files and are purely used to let the installer know what to find. If a simple dependency is not found (or incompatible) the installer will warn the user about it. Full dependencies are used to ship dependency files with the installer. In case a full dependency was not found (or incompatible) these files will be installed. Any installed dependency files are installed to a seperate place so they cannot disturb or be disturbed by for example package managers. To keep the size of the installer low one or more full dependencies can be made 'external' so the installer can download them when it needs to.

Nixstaller has a tool that helps the install creator for finding and handling necessary software dependencies. Some of the tool's features are dependency scanning and automatically creating 'dependency packages' (= a bundle of files used to define a dependency).

Other Features

  • Creation of desktop menu entries (following the freedesktop standards).
  • Installers can be compressed with gzip, bzip2 and lzma.
  • The (default) logo and appicon can easily be customized.
  • Usage of su or sudo, so that the user can grant the installer root access only when it needs too, instead of running it as the root user.
  • To save space, similar frontend binaries are compared to each other and only the differences are packaged with the installer.

Future Releases

The following features are planned or will be extended in future releases:
  • Language translations: A way to handle different encodings, currently only UTF-8 is supported.
  • Improved dependency handling: currently dependencies will only be installed if they are necessary (missing, incompatible etc.) during install time. This could mean that if for example the user updates a dependency the software cannot run anymore. A possible solution would be to hardlink or copy existing dependencies to a seperate place so the software can use that as a fallback.
  • Support for more package managers, such as BSD and Solaris packages.
  • GUI tool for creating installers (see Nixstbuild).
  • A QT frontend.
This list is far from complete and it's very likely that other features will be added to further releases.
Render time: 0.26 seconds
527,913 unique visits