Návod pro pokročilejší uživatele, jak vytvořit vlastní malý repozitář na externím médiu. Lze použít CD, DVD, externí disk. (Disketa se nedoporučuje, lze ji ale s jistým sebezapřením použít také.) Budeme pracovat s aktuální verzí Ubuntu 7.10 Gutsy Gibbon.
Hodí se zejména, když vytváříme vlastní Live DVD s Ubuntu. Chceme uživateli bez internetového připojení umožnit instalaci dalších programů (a to i s rozsáhlými závislostmi, které nemůže dohledávat a stahovat ručně). Zároveň ale s použitím tohoto postupu máme plnou kontrolu nad tím, co na DVD bude - nemusíme stahovat repozitáře s desítkami GB software, které stejně nevyužijeme.
Tento návod se opírá o návod Vytvoření vlastního LiveCD. Prosím, pročtěte jej a důkladně vyzkoušejte nejdříve.
Na CD budeme nejen přidávat balíčky do ISO obrazu, ale upravíme i živý systém na komprimovaném oddíle squashfs.
Stáhneme nebo jinak opatříme ISO obraz:
wget http://releases.ubuntu.cz/gutsy/ubuntu-7.10-desktop-i386.iso ./
Rozbalíme CD, chvíli to trvá a zabere cca 2 GB:
sudo su mkdir cd-mnt mkdir cd-data mkdir sq-mnt mkdir sq-data mount ubuntu-7.10-desktop-i386.iso cd-mnt/ -o loop -t iso9660 rsync --exclude=/casper/filesystem.squashfs -a cd-mnt/ cd-data mount cd-mnt/casper/filesystem.squashfs sq-mnt -o loop -t squashfs cp -a sq-mnt/* sq-data/ umount sq-mnt/; rmdir sq-mnt umount cd-mnt/; rmdir cd-mnt exit
Nastavíme defaultní jazyk na češtinu:
echo "cs" > lang && sudo mv lang cd-data/isolinux/
Volitelné: přidáme na DVD české offline-wiki (předpokládáme, že je rozbaleno v ~filip/ubuntu-wiki/) a zařídíme, aby měl odkaz každý uživatel liveCD. Do souboru Ubuntu_Navody.html vložíme odkaz na /usr/share/doc/ubuntu-wiki/index.html a cokoli, co nás napadne.
sudo su mkdir sq-data/doc/ cp -r ~filip/ubuntu-wiki sq-data/doc/ cd sq-data/etc/skel/ vim Ubuntu_Navody.html cd ../../ chmod -R +w doc/ chmod -R +r doc/ chmod +x doc/ubuntu-wiki/attachments/ doc/ubuntu-wiki/attachments/* doc/ubuntu-wiki/ubuntu/css/ doc/ubuntu-wiki/ubuntu/ exit
sudo cp /etc/resolv.conf sq-data/etc/ sudo cp /etc/hosts sq-data/etc/ sudo chroot sq-data mount -t proc none /proc mount -t sysfs none /sys export HOME=/root export LC_ALL=C
Nyní je naším kořenovým adresářem adresář sq-data. Můžeme pracovat s balíčkovacím systémem na CD a upravovat skladbu programů.
Nejdříve na DVD povolíme repozitáře universe a multiverse, abychom měli přístup ke všem možným balíčkům. (Tj. odstraníme # na začátku řádků končících na „universe“ a na jejich konec připíšeme „multiverse“).
sudo vim /etc/apt/sources.list
Na tvar:
deb http://archive.ubuntu.cz/ubuntu gutsy main restricted deb-src http://archive.ubuntu.cz/ubuntu gutsy main restricted #Uncomment the following (...) deb http://archive.ubuntu.cz/ubuntu gutsy universe multiverse deb-src http://archive.ubuntu.cz/ubuntu gutsy universe multiverse
Případně přidáme repozitáře a vzpomeneme si na ně při instalaci/stahování balíčků:
# Canonical - partner repositories deb http://archive.canonical.com/ubuntu gutsy partner deb-src http://archive.canonical.com/ubuntu gutsy partner # Wine deb http://wine.budgetdedicated.com/apt gutsy main #WineHQ - Ubuntu 7.10 deb-src http://wine.budgetdedicated.com/apt gutsy main #WineHQ - Ubuntu 7.10 # Cinelerra deb http://www.kiberpipa.org/~gandalf/ubuntu/feisty/cinelerra/i686/ ./
A tyto repozitáře autentizujeme, např. wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
Instalujeme nezbytné nástroje (jsou v repozitáři universe). Dobudoucna totiž budeme potřebovat program dpkg-scanpackages.
apt-get update apt-get install dpkg-multicd
Na DVD je spousta věcí, které pravděpodobně nevyužijeme.
apt-get remove ttf-arabeyes ttf-arphic-uming ttf-indic-fonts-core ttf-kochi-gothic ttf-kochi-mincho ttf-lao ttf-malayalam-fonts ttf-thai-tlwg ttf-unfonts-core example-content --assume-yes apt-get remove language-pack-xh language-pack-gnome-xh language-pack-gnome-xh-base --assume-yes apt-get remove language-pack-bn language-pack-gnome-bn language-pack-gnome-bn-base --assume-yes apt-get remove language-pack-ar language-pack-gnome-ar language-pack-gnome-ar-base --assume-yes apt-get remove language-pack-hi language-pack-gnome-hi language-pack-gnome-hi-base --assume-yes apt-get remove language-pack-pt language-pack-gnome-pt language-pack-gnome-pt-base --assume-yes
Zbydou jazyky: angličtina, němčina, španělština, francouzština. Pokud chceme odebrat i NJ, ŠJ a FJ:
apt-get remove language-pack-de language-pack-gnome-de language-pack-gnome-de-base --assume-yes apt-get remove language-pack-es language-pack-gnome-es language-pack-gnome-es-base --assume-yes apt-get remove language-pack-fr language-pack-gnome-fr language-pack-gnome-fr-base --assume-yes
Upgradujeme všechny balíčky na nejnovější verzi, která je dostupná.
apt-get dist-upgrade
Instalujeme plné počeštění, případně plné poslovenštění:
aptitude install language-pack-cs language-pack-gnome-cs language-pack-kde-cs language-pack-sk language-pack-gnome-sk language-pack-kde-sk
Volitelně instalujeme, co se hodí mít na liveDVD i v instalovaném systému po ruce:
apt-get install inkscape vim-gtk mplayer brasero numlockx sl gconf-editor brasero tilda apt-get install gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gxine ogle ogle-gui lame lame-extras apt-get install flashplugin-nonfree apt-get install sun-java6-jre sun-java6-plugin
Otestujeme funkčnost programu sl:
sl
Je na našem rozhodnutí, i co budeme chtít v repozitářích na DVD. U všech následujících příkazů sice použijeme apt-get, ale s volbou –download-only.
Instalátor aptitude vždy nejdříve patřičné balíčky stáhne do cache v adresáři /var/cache/apt/archives/ a až pak je instaluje. Parametrem –download-only jej donutíme stáhnout požadované programy i včetně jejich závislostí. Následující programy nechť slouží jako inspirace, čím se může hodit doplnit CD.
Po přidání jiných repozitářů nebo ručním stažení je možno přidat instační balíčky dalších programů, jako je openwengo, moonlight, cinelerra, nvu, deluge, tuxanci, regnum online, coccinella, battle for wesnoth…
sudo apt-get install --download-only ubuntu-desktop kubuntu-desktop xubuntu-desktop language-pack-kde-cs language-pack-kde-cs-base language-pack-kde-sk language-pack-kde-sk-base
Ufo - Alien invasion zde:
cd /var/cache/apt/archives/ wget http://harrisony.com/getdeb.net/uf/ufoai_2.1-0~getdeb1_i386.deb wget http://harrisony.com/getdeb.net/uf/ufoai-data_2.1-0~getdeb1_all.deb cd ../../../../
Zaindexujeme balíčky, jmenovku nastavíme jako Ubuntu7.10 :
dpkg-scanpackages /var/cache/apt/archives/ /dev/null > /var/cache/apt/archives/Packages apt-cdrom add -m -d=/var/cache/apt/archives/
rm -rf /tmp/* rm /etc/resolv.conf /etc/hosts umount /proc umount /sys exit
Změníme jmenovku DVD:
sudo chmod u+w cd-data/README.diskdefines sudo vim cd-data/README.diskdefines
tzn. na prvním řádku bude:
#define DISKNAME Ubuntu7.10
A zabalíme obraz DVD. Chvíli to trvá.
sudo su mv sq-data/var/cache/apt/archives/*.deb sq-data/var/cache/apt/archives/Packages cd-data/ rm cd-data/casper/filesystem.manifest chroot sq-data dpkg-query -W --showformat='${Package} ${Version}\n' > cd-data/casper/filesystem.manifest cp cd-data/casper/filesystem.manifest cd-data/casper/filesystem.manifest-desktop sed -ie '/ubiquity/d' cd-data/casper/filesystem.manifest-desktop rm cd-data/casper/filesystem.squashfs nice mksquashfs sq-data/ cd-data/casper/filesystem.squashfs cd cd-data sudo mkisofs -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-7.10-desktop-i386-mojeDVD.iso . ls -l echo 'Ufff! Hotovo.' exit
NEPLATNÉ Upravíme mv sq-data/var/cache/apt/archives/*.deb cd-data/
sudo vim sq-data/etc/apt/sources.list
a přidáme řádek:
deb cdrom:[Ubuntu7.10]/ /
Zapíšeme, že je repozitář na samotném DVD:
sudo vim sq-data/var/lib/apt/cdroms.list
a přidáme magické řádky:
CD::b18f9ce7ee7037fcb9b4bda843f5a863-2 "Ubuntu7.10"; CD::b18f9ce7ee7037fcb9b4bda843f5a863-2-Label "Ubuntu7.10";
KONEC NEPLATNÉHO