The updated doc:
The postinstall and cleanup files are processed respectively when bootstrapping
an image and after image is built.
The file format is the same for both .bootstrap or .cleanup
- empty lines (or with only spaces or tabs) are ignored
- # character is for comments. everything after this char is ignored. (space
or tabs before # are also ignored)
- Commands:
- bind <host mountpoint>
=> Mount the host mountpoint using -o bind in the image. Created the
mountpoint in the image if needed.
Example: "bind /dev" will mount /dev in the image
- del <space separated file list with wildcards>
=> remove recursively the files or directories.
- mkpath <absolute path in the image>
=> Creates the path in the image.
Example: "mkpath /var/lib/yum" will create $imagepath/var/lib/yum
Note: permission/owner canot be set here as passwd file does not
exist yet in the image
- pkgs <space separated list of pacakges to install>
=> Installs the packages and dependancies into the image.
In case of multiple instance of pkg comands, multiple install
instances will be done (in order)
Note: on rpm system, packages can be also "capabilities" like
'perl(File::Path)'. In that case, simple quotes must be used
around the "capabilities".
- post <scriptname>
=> Runs the script after everything is processed.
=> Multiple post can be specified. They will be processed
in the same order they've been decrared.
=> Path can be relative to this directory or absolute.
- pre <scriptname>
=> Runs the script before doing everything else.
=> Multiple pre can be specified. They will be processed
in the same order they've been decrared.
=> Path can be relative to this directory or absolute.
- unbind <mount_point>
=> unmounts $imagepath/mount_point
- Processing order:
- pre
- mkpath
- del
- bind
- unbind
- pkgs
- post
Regards,
Olivier.
Le jeudi 31 juillet 2014 11:32:21 Olivier LAHAYE a écrit :
> Hi,
>
> I've just discovered that some package are not correctly installed in the
> created image (mksiimage).
>
> For example, the screen package in rpm distro has it's postinstall not run
> and thus the screen user and group is not created and thus, the systemd
> service fails.
>
> When digging into the code of mksiimage that uses SystemInstaller::Package
> and OSCAR::PackMan, I've discovered many problems.
>
> - For all distros: packages are installed one at a time which triggers full
> dependancy computation each time and takes ages.
> - For an rpm distro, packages are installed one by one twice! One during the
> bootstrapping of the image (no bootstrapping on deb side as it's done in
> rapt) and One for normal operation.
> - Finally, some files or devices are missing in the image at early stage and
> we get some bad installs.
>
> We need a clear image bootstrap for all distros (not a if condition for rpm
> only in PackMan::smart_install)
>
> I'm planning to create a bootstrap config file for each distro so we can
> tune for all different technologies.
> The file would look like this for a rhel-7-x86_64 for example:
>
> # File centos-7-x86_64.bootstrap
> pre prebootstrap.sh
> post postbootstrap.sh
> post post_rhel7.sh
> bind /dev
> bind /proc
> path /var/lib/yum
> pkg ldconfig
> pkg yum
> pkg passwd
> pkg vim-minimal
> pkg dhclient
> pkg authconfig
> # End
> pre and post scripts would be ran with the image path as argument.
> then the path commands would be honored (mkpath for all path lines)
> then the bind lines (mkpath for the mount points if needed) and then:
> mount -o bind $ARG $imagepath/$arg
> then a smart_install of an array of all pkg lines
>
> Aside that, we also need a clean cleanup so we can unmount "binds" and
> remove unncecessary files
>
> # File centos-7-x86_64.cleanup
> pre precleanup.sh
> post postcleanup.sh
> post create_missing_files.sh
> unbind /dev
> unbind /proc
> del /tmp/*
> del /etc/fstab
> # End
>
> As you can see, multiple pre and post for bootstrap and cleanup would be
> allowed and would be run in declared order.
> PATH to look for those files could be relative or absolute.
>
> Parser for both files would be the same of course.
>
> With that in place, the image creation would be more smart, more flexible
> (easier to adapt to all distros) and far far faster.
>
> I'm experimenting on my side and see if at least, that solves the screen
> group not created when building the rhel7 image.
>
> In the meantime, if you see some misconception or duplicate or any other
> problem, don't hesitate to comment.
>
> Best regards,
>
> Olivier.
Cordialement,
Olivier.
--
Olivier Lahaye
DRT/LIST/DIR
------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls.
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
Oscar-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oscar-devel