Re: GUI Interactive Shell
Thanks Ben. I think I will go with the approach of comparing the user's home directory cause as you said it is the most feasible one.
I am not planning on including an installer. Just a Live CD that is readily available and configured with software that a student needs to start programming in LeJOS.
Cheers for the detailed explanation. Makes a great deal of sense.
On 25 August 2010 12:39, Ben Armstrong <email@example.com>
On 08/25/2010 04:33 AM, Robert Spiteri wrote:
Hi, I am trying to build a Debian Live CD for our school where we will be using nxjc compiler for the LeJOS (Java for Lego Mindstorms).
A reasonable way to do this is:
I was planning to include Eclipse and an IDE, however once I install Eclipse I would need to make some configuration and I would prefer to work using the GUI.
Is there a way (while being in the interactive shell during debian image building) to launch some sort of GUI where I can modify the settings of certain programs before actually exiting the interactive shell and continue with the build?
Reason I am asking is that I want to create a live cd with all the settings predefined and not having to use persistence.
- boot the live system without your eclipse configurations
- tar up the user home directory (your "before")
- start eclipse
- configure eclipse
- exit eclipse
- tar up the user home directory into a separate file (your "after")
- copy both before/after tarballs to your build system
- compare before & after contents and observe what files changed (untar each into a separate directory and compare the directory trees with a visual diff/merge tool like 'meld', 'kompare', or 'xxdiff')
- save the changed files in config/chroot_local-includes/etc/skel/ (which will be used to populate the 'user' directory when it is created by adduser when the live system boots)
This method can be used to preconfigure almost any application with GUI configuration that you want to include in your live image, and is superior to what you propose because it doesn't rely on the fragile and labour-intensive step of having to manually configure things each time you build.
Nevertheless, there is a chroot_interactive helper (see --interactive in the lh_config man page) to start a shell in the chroot in the middle of your build, from which you might then start an X session, run an app in it, and play with it. I would strongly recommend against using this in your actual build, but instead only use it for debugging and experimentation.
Note: if you include an installer on the image, the files in /etc/skel will be copied into ever user's home directory created thereafter. This may or may not be what you intended. For an alternate approach that avoids this, consider making a live-config hook that will only run for the live system and that populates the user directory with this material after the live user is created.