Menu Chiudi

Ubuntu Piu

UbuntuPiu è un iso per Ubuntu con applicazioni che generalmente servono agli utenti desktop, ma che non sono disponibili sul CD originale e non sempre si ha a disposizione una connessione per scaricarli, le istruzioni che seguono servono a indicare la strada per costruirsene una ad hoc.

Supponendo di avere già una ubuntu installata sul proprio PC ed almeno un paio di giga liberi su disco, si comincia con l’installare i pacchetti necessari allo scopo:

sudo su

apt-get install apt-proxy

aggiungere in /etc/apt-proxy/apt-proxy-v2.conf:

UbuntuPiu è un iso per Ubuntu con applicazioni che generalmente servono agli utenti desktop, ma che non sono disponibili sul CD originale e non sempre si ha a disposizione una connessione per scaricarli, le istruzioni che seguono servono a indicare la strada per costruirsene una ad hoc.

Supponendo di avere già una ubuntu installata sul proprio PC ed almeno un paio di giga liberi su disco, si comincia con l’installare i pacchetti necessari allo scopo:

sudo su

apt-get install apt-proxy

aggiungere in /etc/apt-proxy/apt-proxy-v2.conf:

[ubuntu-openoffice]
;; Openoffice 2.0
backends = http://people.ubuntu.com/~doko/OOo2

[ubuntu-plf]
;; libdvdcss2 w32codecs sun-j2re1.5 skype
backends = http://packages.freecontrib.org/ubuntu/plf/

[ubuntu-seveas]
backends = http://seveas.ubuntulinux.nl/

o qualsiasi altro repositori in cui ci sono pacchetti di interesse (con un occhio di riguardo alle licenze..):

/etc/init.d/apt-proxy restart

apt-get install debootstrap

mkdir ubuntufs

debootstrap --arch i386 breezy ubuntufs/ http://archive.ubuntu.com/ubuntu

chroot ubuntufs/

creazione dei vari device altrimenti base-config potrebbe terminare brutalmente (“Terminated” or “openpty failed”):

cd /dev ; ./MAKEDEV pty; ./MAKEDEV hd{a..d}

mount -t devpts none /dev/pts
mount -t proc none /proc
mount -t sysfs none /sys/

creazione del mountpoint per il CD di ubuntu:

mkdir /cdrom

base-config

scegliere cdrom come fonte per i pacchetti e inserire il cd della breezy, successivamente aggiungere nel file /etc/apt/sources.list:

#lasciando sempre il CD per prima la riga
deb cdrom:[Ubuntu 5.10 _Breezy Badger_ - Release i386 (20051012)]/ breezy main restricted

deb http://localhost:9999/ubuntu-security breezy-security main restricted universe multiverse
deb http://localhost:9999/ubuntu breezy main restricted universe multiverse
deb http://localhost:9999/ubuntu-openoffice ./
deb http://localhost:9999/ubuntu-plf breezy free non-free
deb http://localhost:9999/ubuntu-seveas ubuntu-seveas breezy-custom breezy-extras freenx madwifi

apt-get update
apt-get upgrade
apt-get install ubuntu-desktop

a grosso modo si avrà una ubuntu ufficiale in chroot,con in più gli aggiornamenti di sicurezza, a questo punto scegliere i pacchetti che interessano tramite:

apt-get install nomepacchetto

è possibile anche creare una lista di pacchetti in un file di testo per poi passarlo in pasto ad apt-get in questo modo:

apt-get install `cat lista_dei_pacchetti.txt`

Esempio di lista di pacchetti liberi: aspell-it myspell-it abiword-gnome mono-devel emacs21 gcompris gnumeric gnopernicus dia subversion screem scribus nasm kalzium kig kmplot kpercentage kcontrol gnome-ppp kppp 3ddesktop labplot hydrogen lyx qcad oregano openuniverse stellarium supertux spe scribus scigraphica wine xeukleides anjuta billard-gl boa-constructor celestia checkinstall frozen-bubble gazpacho gnuplot geomview glade-2 gperiodic gnomebaker gambas vpnc acroread scilab flashplayer-mozilla module-assistant sl-modem-daemon sl-modem-source lame mplayer-386 mplayer-fonts gnome-vlc python-mode inkscape

Esempio di lista di pacchetti non liberi: opera realplay skype sun-j2re1.5

supponendo di mettere queste liste in due file distinti si può automatizzare il processo con:

apt-get update
apt-get --download-only --force-yes upgrade
apt-get --download-only --force-yes -y install `cat free.txt`; apt-get --download-only --force-yes -y install `cat nonfree.txt`

a questo punto è possibile creare la struttura di directory necessaria per creare l’iso, uscendo quindi dal chroot:

exit

mkdir ubuntupiu

cd ubuntupiu

ln -s /var/cache/apt-proxy/ubuntu/pool/ ubuntu
ln -s /var/cache/apt-proxy/ubuntu-security/pool/ ubuntu-security
ln -s /var/cache/apt-proxy/ubuntu-openoffice/ ubuntu-openoffice
ln -s /var/cache/apt-proxy/ubuntu-plf/pool/ ubuntu-plf
ln -s /var/cache/apt-proxy/ubuntu-seveas/pool/ ubuntu-seveas

l’ultimo passo è quello di creare la lista dei pacchetti disponibili sul CD:

apt-ftparchive packages ./ /dev/null | gzip > Packages.gz
apt-ftparchive sources ./ /dev/null | gzip > Sources.gz
apt-ftparchive release .

eventualmente è possibile inserire un file di info che verrà interpretato da apt-cdrom add:

mkdir .disk
echo "Ubuntu+ per breezy di ciccio pasticcio" > .disk/info

finalmente si può creare l’immagine iso con mkisofs:

mkisofs -f -v -J -r -V "ubuntupiu" -o ubuntupiu.iso ubuntupiu

è possibile automatizzare anche queste operazioni con uno script:

#!/bin/sh

cd ubuntupiu

apt-ftparchive packages ./ /dev/null | gzip > Packages.gz
apt-ftparchive sources ./ /dev/null | gzip > Sources.gz
apt-ftparchive release .


#dpkg-scanpackages ./ /dev/null | gzip > Packages.gz tanto per ricordare il passato..
#dpkg-scansources ./ /dev/null | gzip > Sources.gz

gunzip -c Packages.gz > Packages

VERSION=0.4
DATE=`date +%Y%m%d`
echo $DATE > creationdate
echo $VERSION > version
cd ..

mkisofs -f -v -J -r -V "ubuntupiu" -o ubuntupiu$VERSION.iso ubuntupiu

FFFFFFFattttooooo? BBBBBBBene ora avete la vostra ubuntu+ da spacciare in giro:)

Un doveroso ringraziamento ad Azazel per il suggerimento di debootstrap

WordPress Appliance - Powered by TurnKey Linux