Creating self extracting installer¶
Sources:
https://github.com/megastep/makeself
Setup¶
- Install makeself on ubuntu machine
sudo apt-get install makeself
Using mkrun¶
Attached archive contains several files used to create an installer.
installer.tar.gz
- installer/mkrun - Calls makeself on a directory to create a .run file.
- installer/files.txt - An example files.txt file. This allows you to easily list where files in the update need to be moved to.
- installer/update.sh - Script that gets run after .run file is extracted. Runs S** scripts, followed by copying files described in files.txt, followed by running F** scripts.
- installer/scripts/ - Contains example S** and F** scripts
- Create empty directory. All files in this directory will be archived by mkrun.
mkdir update_1_0
- Copy files.txt and update.sh into folder
Each entry is a line consisting of 3 values, separated by commas. [filename,destination,mode(permissions)]
i.e.helloworld,/home/root/bin/helloworld,755
Lines starting with # are ignored. - Copy S** and F** scripts into folder
- Copy files to be installed into folder and update files.txt to tell installer where to install them.
- Run mkrun on directory to create self extracting installer.
./mkrun update_1_0
- update_1_0.run will be produced.
Example:
Note: In this example files.txt is empty as no files need to be copied to filesystem. S01install_rsync script will install the ipk files.
$ ls update_1_0/* update_1_0/F99remount_root_ro update_1_0/S00remount_root_rw update_1_0/files.txt update_1_0/S01install_rsync update_1_0/libpopt0_1.14-r3.0.6_armv5te.ipk update_1_0/update.sh update_1_0/rsync_3.0.6-r0.5_armv5te.ipk
Go to top