To install sh MakeSelfInstaller.run in terminal
if running in normal way is impossible.
Like in Linux Mint Mate 17.1
"By the way makedeb is in the package
all downloaded *.deb files to 1 install file"
is a small shell script that generates a self-extractable tar.gz archive from a directory. The resulting file appears as a shell script (many of those have a .run suffix), and can be launched as is. The archive will then uncompress itself to a temporary directory and an optional arbitrary command will be executed (for example an installation script). This is pretty similar to archives generated with WinZip Self-Extractor in the Windows world. Makeself archives also include
checksums for integrity self-validation (CRC and/or MD5 checksums).
The makeself.sh script itself is used only to create the archives from a directory of files. The resultant archive is actually a compressed (using gzip, bzip2, or compress) TAR archive, with a small shell script stub at the beginning. This small stub performs all the steps of extracting the files, running the embedded command, and removing the temporary files when it's all over. All what the user has to do to install the software contained in such an archive is to "run" the archive, i.e sh nice-software.run. I recommend using the "run" (which was introduced by some Makeself archives released by Loki Software) or "sh" suffix for such archives not to confuse the users, since they know it's actually shell scripts (with quite a lot of binary data attached to it though!).
I am trying to keep the code of this script as portable as possible, i.e it's not relying on any bash-specific features and only calls commands that are installed on any functioning UNIX-compatible system. This script as well as the archives it generates should run on any Unix flavor, with any compatible Bourne shell, provided of course that the compression programs are available.
As of version 2.1, Makeself has been rewritten and tested on the following platforms :
- Linux (all distributions)
UsageThe syntax of makeself is the following:
makeself.sh [args] archive_dir file_name label startup_script [script_args]
- args are optional options for Makeself. The available ones are :
- --version : Prints the version number on stdout, then exits immediately
- --gzip : Use gzip for compression (is the default on platforms on which gzip is commonly available, like Linux)
- --bzip2 : Use bzip2 instead of gzip for better compression. The bzip2 command must be available in the command path. I recommend that you set the prefix to something like '.bz2.run' for the archive, so that potential users know that they'll need bzip2 to extract it.
- --compress : Use the UNIX "compress" command to compress the data. This should be the default on all platforms that don't have gzip available.
- --nocomp : Do not use any compression for the archive, which will then be an uncompressed TAR.
- --notemp : The generated archive will not extract the files to a temporary directory, but in a new directory created in the current directory. This is better to distribute software packages that may extract and compile by themselves (i.e. launch the compilation through the embedded script).
- --current : Files will be extracted to the current directory, instead of in a subdirectory. This option implies --notemp above.
- --follow : Follow the symbolic links inside of the archive directory, i.e. store the files that are being pointed to instead of the links themselves.
- --append (new in 2.1.x): Append data to an existing archive, instead of creating a new one. In this mode, the settings from the original archive are reused (compression type, label, embedded script), and thus don't need to be specified again on the command line.
- --header : Makeself 2.0 uses a separate file to store the header stub, called "makeself-header.sh". By default, it is assumed that it is stored in the same location as makeself.sh. This option can be used to specify its actual location if it is stored someplace else.
- --copy : Upon extraction, the archive will first extract itself to a temporary directory. The main application of this is to allow self-contained installers stored in a Makeself archive on a CD, when the installer program will later need to unmount the CD and allow a new one to be inserted. This prevents "Filesystem busy" errors for installers that span multiple CDs.
- --nox11 : Disable the automatic spawning of a new terminal in X11.
- --nowait : When executed from a new X11 terminal, disable the user prompt at the end of the script execution.
- --nomd5 and --nocrc : Disable the creation of a MD5 / CRC checksum for the archive. This speeds up the extraction process if integrity checking is not necessary.
- --lsm file : Provide and LSM file to makeself, that will be embedded in the generated archive. LSM files are describing a software package in a way that is easily parseable. The LSM entry can then be later retrieved using the '-lsm' argument to the archive. An exemple of a LSM file is provided with Makeself.
- archive_dir is the name of the directory that contains the files to be archived
- file_name is the name of the archive to be created
- label is an arbitrary text string describing the package. It will be displayed while extracting the files.
- startup_script is the command to be executed from within the directory of extracted files. Thus, if you wish to execute a program contain in this directory, you must prefix your command with "./". For example, ./program will be fine. The script_args are additionnal arguments for this command.
makeself.sh /home/joe/mysoft mysoft.sh "Joe's Nice Software Package" ./setup
Here is also how I created the makeself.run archive which contains the Makeself distribution :
makeself.sh --notemp makeself makeself.run "Makeself by Stephane Peter" echo "Makeself has extracted itself"
Archives generated with Makeself 2.1 can be passed the following arguments:
- --keep : Prevent the files to be extracted in a temporary directory that will be removed after the embedded script's execution. The files will then be extracted in the current working directory and will stay here until you remove them.
- --verbose : Will prompt the user before executing the embedded command
- --target dir : Allows to extract the archive in an arbitrary place.
- --nox11 : Do not spawn a X11 terminal.
- --confirm : Prompt the user for confirmation before running the embedded command.
- --info : Print out general information about the archive (does not extract).
- --lsm : Print out the LSM entry, if it is present.
- --list : List the files in the archive.
- --check : Check the archive for integrity using the embedded checksums. Does not extract the archive.
- --nochown : By default, a "chown -R" command is run on the target directory after extraction, so that all files belong to the current user. This is mostly needed if you are running as root, as tar will then try to recreate the initial user ownerships. You may disable this behavior with this flag.
- --tar : Run the tar command on the contents of the archive, using the following arguments as parameter for the command.
- --noexec : Do not run the embedded script after extraction.
- Check out the "Loki setup" installer, used to install many Linux games and other applications, and of which I am the co-author. Since the demise of Loki, I am now the official maintainer of the project, and it is now being hosted on icculus.org, as well as a bunch of other ex-Loki projects (and a lot of other good stuff!).
- Bjarni R. Einarsson also wrote the setup.sh installer script, inspired by Makeself. Check it out !
ContactThis script was written by Stéphane Peter (megastep at megastep.org) I welcome any enhancements and suggestions.
Contributions were included from John C. Quillan, Bjarni R. Einarsson, Francois Petitjean, and Ryan C. Gordon, thanks to them! If you think I forgot your name, don't hesitate to contact me.
icculus.org also has a Bugzilla server available that allows bug reports to be submitted for Loki setup, and since Makeself is a part of Loki setup, you can submit bug reports from there!
Stéphane Peter Last modified: Fri Jan 4 15:51:05 PST 2008
OneClickInstall Deb Creator