Uberinstaller
Uberinstaller is a ruby gem that make easy to install system packages from a JSON configuration file. Thinked for Ubuntu, can handle pre and post installation commands, repositories and PPA, package installation from system repositories, git repositories or local files.
Has support for different Package Managers as the one in use now can be modified and extended as needed.
Installation
Add this line to your application's Gemfile:
gem 'uberinstaller'
And then execute:
$ bundle
Or install it yourself as:
$ gem install uberinstaller
Also, you need to have sudo
installed and working on your machine to execute the uberinstaller executable and for every command launched from uberinstaller.
Usage
duplicates are overridden! order is respected!
Architecture verification:
- system => leave to the system to handle architecture package version resolution
- i386 => can be run only on 32 bit systems
- x86_64 => can be run only on 64 bit systems
Version verification:
- codename of OS ( precise on ubuntu )
Installation type:
- system
- git
- local
- json ( no extension )
Command before/after:
- in the right folder: cmds/after/ cmds/before/, so specify only the filename, with extension
- array of commands
before all => cmds/before/all.sh after all => cmds/after/all.sh
Blocking package configuration as Debconf in Debian system must be properly avoided ( APT Package Manager use gnome DEBIAN_FRONTEND to avoid apt-get hangs)
Folder structure
package ├── cmds ├── log ├── pkgs └── package.json
Variables substitution
You can use some variables in package.json:
-
:cmds
: path to package/cmds folder -
:pgks
: path to package/pkgs folder -
:json
: path to package/package.json file
Docs
http://rubydoc.info/docs/yard/file/docs/GettingStarted.md http://rubydoc.info/docs/yard/file/docs/Tags.md
http://gorails.com/setup/ubuntu
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request