← Back to team overview

lubuntu-desktop team mailing list archive

Re: minimal install.

 

Am 18.10.2010 15:25, schrieb Julien Lavergne:
> On Mon, 18 Oct 2010 10:59:06 +0200
> Leszek Lesner <leszek.lesner@xxxxxx> wrote:
>
>   
>> I created a Install CD by simply creating a minimal install CD plus a repo. Unfortunetly the Installation fails after installing the base system, because it tries to install a package called lubuntu-desktop^ in the tasksel process which it cant find. I tried this with the modified tasksel version of yours. I even checked the modification you made but cant find the error. 
>>     
> I'm not sure I made the correct fix for tasksel, it probably needs another fix somewhere. But I interesting to know how you made the initial CD, because I only find how doing an iso with squash filesystem, but not with .deb packages.
>   
Ok I see it wasn't quite the right fixes you made as the last line in
lubuntu-desktop from the ubuntu-tasks folder contains
> Packages: task-fields
This would as far as I understand connect to the ubuntu server and
search for a corresponding task. But there isn't one.
> Packages: list
>   lubuntu-desktop
works much better and fixes the error I got before.

To create the CD I basically took the xubuntu alternate cd. Then I
copied over the whole ISO and put it into one directory(lets call it
cd-img). Replaced the isolinux folder with the fancy isolinux folder
from the livecd with the cool looking logo png and where you can set
language with F2 and with F3 the keymap and so on.
The first thing that I did afterwards was taking the xubuntu.preseed
file that ships with the xubuntu-10.10-alternate-i386.iso and changing
it basically from xubuntu-desktop to lubuntu-desktop(I know there is a
lubuntu.seed file on the live cd but I took the one from the other
alternate cds as they were more entries and I didn't want to mess ups
things). Then I put this preseed file back to my copy of the minimal
install cd(so the cd-img folder) into the preseed folder.
I did change the txt.cfg file in isolinux so that the default option
would boot with the preseed file option of the lubuntu.seed .
Then the little bit more tricky part create a repository. For creating
this repository I know that I need every package that needs to be
installed when installing lubuntu-desktop. Every means every , so also
xorg and those other stuffs. As I had a Minimal Install ISO aswell I
simply created a minimal installed cli only system in virtualbox and
apt-get install(ed) lubuntu-desktop. All the required deb files are
stored in /var/cache/apt/. The only thing to do now is getting those deb
files outside the virtual machine. Then there is a cool package called
apt-move which is pretty handy as it can automatically copy or move
those deb files in a repository like hierarchical folder view. So it
will create automatically the structure of a repository that you need,
by putting in lubuntu-desktop for example  in a
pool/l/lubuntu-meta/lubuntu-desktop_xXX-i386.deb file/folder structure.
By default this repository structure will be put into /mirrors/debian so
you need root right to run apt-move. But I guess the default folder is
changeable I just was to lazy to read the manpage ;)
Then we copy over the pool directory to the cd-img folder. Again me as
being lazy I didn't overwrite all the packages that where already in the
xubuntu pool directory (they can be deleted later I guess or you can
delete the whole pool directory with the exception of the udeb files. So
'find . -name "*.udeb"' and copy over all udeb files as they are
necessary for the installer). Then we have the pool directory almost
ready. I had to repackage the ubuntu-keyring package as I don't have the
private key to sign the cd and the new repository with official ubuntu
keyring. So I downloaded the keyring and added my own private key to it.
This step is really important because otherwise the installer won't
install if the repo isn't signed. So I repackaged this package and put
it into the pool structure unter u/ubuntu-keyring I think it was.
That should be all for the pool directory. Basically we need the Release
and Packages.gz file for the repository now and sign it.
So I created a release.conf file ( storing the basic info like distro
name , codename and main + universe repos) and a config file you can see
here to get an Idea how it works:
http://pastebin.ca/1965874
This is basically the file that will scan the pool files and create the
Packages.gz for each repo (means main and universe).
As you can see here you need also some override files that you can get
from here: http://archive.ubuntu.com/ubuntu/indices
As the above config file will only create a package listing for debs I
created also a config which scans all the udebs.
Here is the config: http://pastebin.ca/1965876
As you can see I basically only replaced the deb with udeb :)
Now we have all the config files lets build the packages and release
files with:
> apt-ftparchive -c /path/to/release.conf generate ../apt-ftparchive/apt-ftparchive-deb.conf
> apt-ftparchive -c /path/to/release.conf generate ../apt-ftparchive/apt-ftparchive-udeb.conf
> apt-ftparchive -c /path/to/release.conf release path/to/cd-img/dists/maverick > path/to/cd-img/dists/maverick/Release
> gpg --default-key "YOURKEYID" --output path/to/cd-img/dists/maverick/Release.gpg -ba path/to/dists/maverick/Release   #This will sign the Releasefile
>   
Then you can simply update the md5sums.txt :

find . -type f -print0 | xargs -0 md5sum > md5sum.txt

And this is basically all. Of course you can edit .info directory and
the files in there to change them so that the CD Label will change to
Lubuntu .... rather then Xubuntu. Rebuild the ISO with mkisofs and you
have it ready the Lubuntu Alternate Install CD :)
I can also upload my version of the image somewhere so you don't need to
do everything by hand ;)

Hope that answers you questions. I also didn't found a documentation
which explains or does this building of the alternate cd easier.

Regards,
Leszek

Follow ups

References