Zpětná kompatibilita knihovny GNU LibC 2.1 na úrovni zdrojových kódů a binárních souborů znamená, že většina programů z předcházející distribuce bude běžet i v této distribuci (ale opačně to obecně neplatí). Všechny balíky ve vydání Debian GNU/Linux 2.2 byly sestaveny pro běh v novém prostředí, většinu programů je samozřejmě možné znovu přeložit v novém prostředí bez nutnosti zásahu do jejich zdrojových kódů. Samozřejmě, existuje několik výjimek, takže některé vaše lokální programy možná budou potřebovat modifikaci a/nebo přeložení proti nové knihovně, aby běžely korektně.
Pokud váš systém poběží na jádře 2.2 a knihovně glibc 2.1, systém automaticky
namountuje další virtuální zařízení ,,devpts'' sloužící pro podporu Unix98 PTY.
Některé servery (démoni) automaticky přejdou na používání zařízení
/dev/pts/*
místo původních /dev/ttyp*
.
V řadě jader 2.2.x je první zařízení tiskárny lp0 namísto zařízení lp1 ve
starých jádrech 2.0.x. Asi byste měli provést revizi vašeho souboru printcap a
používat zařízení /dev/lp0
místo /dev/lp1
,
/dev/lp1
místo /dev/lp2
atd.
Přechod na nová jádra proběhl zcela hladce, protože jsme vydání 2.1 téměř kompletně připravili pro běh s jádry 2.2. Některé otázky zůstávají otevřeny, zejména otázky spojené se sítí.
ipfwadm
manipulující s firewallem byla nahrazena programem
ipchains
. Upgrade balíku netbase
vás vyzve k
nastavení symbolických odkazů na wrapper skript, takže váš firewall bude dále
fungovat. Pokud chcete jaksepatří nakonfigurovat firewall pomocí ipchains,
přečtete si /usr/share/doc/netbase/ipchains-HOWTO.txt.gz.
/etc/init.d/network
může s novým jádrem vypisovat chybová
hlášení, jelikož byl nastaven starými instalačními procedurami Debianu. Tato
chyba může být odstraněna přidáním správných ,,netmask'' a ,,dev'' parametrů
příkazu route
volaném v tomto skriptu.
Pokud se chcete dozvědět víc o upgrade softwaru při přechodu na nová jádra,
přečtěte si dokument Documentation/Changes
, který je součástí
zdrojových kódů jádra.
Upgrade na aplikace používající PAM byl vytvořen tak, aby byl co možná nejvíc
integrovaný a nenápadný. Ve většině případů bude nová konfigurace napodobovat
vaši konfiguraci před použitím PAMu. Obecně to ale platit nemusí. Pokud
potřebujete udělat změny v konfiguraci, nainstalujte si balík
libpam-doc
obsahující všestrannou dokumentaci k PAMu, dokonce i
rady jak upravovat stávající aplikace nepoužívající PAM, aby podporovaly tento
autentifikační model.
Jednou z hlavních částí upgrade bylo sloučení balíku secure-su
a
hlavního balíku obstarávajícího přihlašování. Implicitní su
,
které bylo v shellutils
je nyní obstaráváno balíkem
login
, aby byla integrace PAMu co možná největší. Jestliže
používáte standardní su
, neměli byste s novou verzí zaznamenat
žádné změny. Uživatelé zastaralé verze secure-su
by si měli pro
zabezpečení kompatibility zkontrolovat jejich konfiguraci PAMu.
Možná jste zaznamenali, že toto vydání distribuce obsahuje dvě verze Perlu:
5.004 (v balících perl-5.004*) a 5.005 (v balících perl-5.005*). Vřele
doporučujeme používat vyšší verzi a starou verzi odstranit, která je tu
ponechána spíš pro programátory, kteří si chtějí zkontrolovat kompatibilitu.
[1] Pokud ve vašich skriptech
používáte nějaké Perl moduly z nových balíků lib*-perl
, měli byste
nastavit symbolický odkaz /usr/bin/perl
(pomocí
update-alternatives
) tak, aby ukazoval na Perl 5.005. Jinak by
mohly nastat problémy.
Poznamenejme, že archiv non-US byl v distribuci mírně reorganizován tak, aby
bylo možné podporovat dodatečné rozčlenění balíků na volně šiřitelný (free
software) a jiný software (non-free software). Pokud chcete používat tyto
balíky pomocí APT, měli byste nejprve změnit v souboru
sources.list
řádky pro non-US na:
deb http://non-US.debian.org/debian-non-US potato/non-US main contrib non-free
Předcházející verze démona inetd
(součást balíku
netbase
) měla chybu. Pokud byl démon zastaven, některé běžící
konekce na interní služby mohly způsobit, že inetd
nebylo možné
restartovat. V současné verzi balíku netbase
je již chyba
opravena, ale inetd
ze starší verze netbase může být takto
zranitelný. Pokud jste zjistili, že se inetd
nerestartujte
korektně, podívejte se na běžící procesy spouštěné démonem inetd
nebo procesy jako ,,-discard'' nebo ,,-echo''. Pokud máte nainstalovaný balík
psmisc
, spuštěním (jako superuživatel root) příkazu
sed 's/[[:space:]][[:space:]]*/ /g' /etc/inetd.conf | grep '^ *[^#]' | cut -d" " -f1,3 | while read serv type; do fuser -n $type $serv; done
lze zjistit, které procesy používají porty o něž se inetd
zajímá.
Uživatelé poštovního serveru smail jistě zaznamenali, že ve vydání 2.2 se již
tento balík nevyskytuje. Je to způsobeno objevením vážných chyb během
testovacích cyklů. Aktualizované balíky jsou k dispozici v nestabilní
(unstable) distribuci nebo na adrese http://www.fs.tum.de/~bunk/smail.html
.
Nový systém XFree86 a ostatní balíky xserver-*
představené v tomto
vydání mohou obsahovat mnohem větší podporu vašeho grafického hardware než tomu
bylo u předchozího vydání 2.1 Konkrétně se jedná o ovladače pro nové grafické
karty a 3D akcelerátory. Pokud přesně nevíte, jaký balík s příslušným X
serverem potřebujete, zkuste použít nástroj xviddetect
(balík
xviddetect
). Tento program by měl vypsat jméno příslušného X
serveru, vykalkulované z informací o PCI/AGP sběrnici.
Uživatelé grafických karet s chipsetem Intel i810 by si měli uvědomit, že
jejich X server pro korektní funkci potřebuje modul jádra, který není
standardní součástí jeho zdrojových kódů. Zdrojový kód tohoto modulu a
instrukce jak jej přeložit, naleznete na stránce X Strike Force
.
Pokud vámi používaný X server používá služeb font serveru xfs
,
který běží na upgradovaném hostiteli, během upgrade ztratíte v okamžiku
zastavení xfs
spojení na font server. To nemusí nutně vést ke
krachu, ale může to být docela nepříjemné. Do podobných situací se můžete
dostat i s ostatními démony.
Následující balíky byly přejmenovány. Ve většině případů, jestliže ne ve všech, byly informace o závislostech ,,Conflicts:'', ,,Replaces:'' a ,,Provides:'' přizpůsobeny tak, že nové balíky se nainstalují automaticky a bezpečně překryjí/nahradí starší verze.
ada-rm -> gnat-doc [2] alsa-modules -> alsa-base alsalib -> libasound0.4 ax25-utils -> libax25 blt8.0-unoff -> blt8.0 c-client-dev -> libc-client4.7-dev console-tools-data -> console-tools [3] cti-ifhp -> ifhp cwnn -> freewnn-cserver cwnn-dev -> freewnn-cserver-dev data-dumper -> perl-5.005-doc dhcp-beta -> dhcp dhcp-client-beta -> dhcp-client dhcp-relay-beta -> dhcp-relay egcc -> gcc egcs-docs -> gcc-doc emacspeak-bs-tcl, emacspeak-dt, emacspeak-dt-tcl -> emacspeak-ss eterm-backgrounds -> eterm fte-cfgdocs -> fte-docs fvwm -> fvwm1 fvwm2 -> fvwm gltt2 -> libgltt2 gltt2-dev -> libgltt2-dev gmp2 -> libgmp2 gmp2-dev -> libgmp2-dev gnome-gnobots -> gnome-gnobots2 gnome-gnothello -> gnome-iagno gnome-gyahtzee -> gnome-gtali gsl -> libgsl0 gsl-dev -> libgsl0-dev gstep-base -> gstep-base0 gstep-base-dev -> gstep-base0-dev gstep-extensions -> gstep-extensions0 gstep-gui -> gstep-gui0 gstep-gui-dev -> gstep-gui0-dev gstep-guile -> gstep-guile0 gtkicq -> gnomeicu intlfonts-arabic -> xfonts-intl-arabic intlfonts-asian -> xfonts-intl-asian intlfonts-chinese -> xfonts-intl-chinese intlfonts-chinese-big -> xfonts-intl-chinese-big intlfonts-european -> xfonts-intl-european intlfonts-japanese -> xfonts-intl-japanese intlfonts-japanese-big -> xfonts-intl-japanese-big intlfonts-phonetic -> xfonts-intl-phonetic ivtools -> ivtools-unidraw kwnn -> freewnn-kserver kwnn-dev -> freewnn-kserver-dev lam -> lam-runtime lesstifg-dbg -> lesstif-dbg lesstifg-dev -> lesstif-dev libapache-mod-auth-sys -> apache-common libapache-mod-put -> apache-common libatalk1 -> netatalk libatalk1-dev -> netatalk-dev libc6-doc -> glibc-doc libdatecalc-perl -> libdate-calc-perl libg++2.8.2-dev -> libg++2.8.1.3-dev libgg0 -> libgii0 libgg0-dev -> libgii0-dev libggi1 -> libgii0, libggi2 libgnome0 -> libgnomesupport0 libjpegg-dev -> libjpeg62-dev liblockdev0-perl -> liblockdev1-perl liblockdev0g-dbg -> liblockdev1-dbg liblockdev0g-dev -> liblockdev1-dev libmd5-perl -> libdigest-md5-perl libpam0g-util -> libpam-runtime libwcsmbs, wcsmbs-locale-ja -> locale-ja libwine0.0.971116 -> libwine libxml0 -> libxml1 maplay -> maplay3 mysql-base -> mysql-gpl-client, mysql-client mysql-dev -> libmysqlclient6-dev newt0.25-dev -> libnewt-dev open -> console-tools palmpython -> pyrite perl -> perl5 perl-base -> perl5-base popt -> libpopt0, libpopt-dev ppp-pam -> ppp [4] ptx -> textutils python-bsddb, python-curses, python-misc, python-net -> python-base [5] python-mysql -> python-mysqldb python-pil -> python-imaging r-pdl -> pdl sgmlspm -> libsgmls-perl smbfsx -> smbfs sorcerer -> pccts t1lib0-bin -> t1lib-bin t1lib0-dev -> t1lib-dev tcd -> gnome-media timezones -> libc6 [6] tm -> wemi toshiba-fan, toshiba-hotkey -> toshutils v-bin -> libv-bin v-dbg -> libv-dbg v-dev, vm-dev -> libv-dev v1g -> libv1.22 vnc-doc -> xvncviewer, vncserver wcsmbs-locale-ko -> locale-ko wnn -> freewnn-jserver wnn-common -> freewnn-common wnn-dev -> freewnn-jserver-dev www-search -> libwww-search-perl wxxt1 -> libwxxt1 wxxt1-dev -> libwxxt-dev xfntbig5p-cmex24m -> xfonts-cmex-big5p xfntil2 -> xfonts-biznet-iso-8859-2-{base,75dpi,100dpi} xntp3-doc -> ntp-doc xpm-bin -> xpm4g-dev [7]
Ačkoliv jsme se snažili zkompletovat tento výpis, přesto nemusí být vyčerpávající.
Přechodem z verze 2.1 (,,slink'') na 2.2 (,,potato'') bylo několik balíků rozděleno do dvou nebo více částí. Důvod pro tato rozdělení je obecně ten, že originální balíky poskytovaly rozmanitou sadu funkcí, a jen velice málo uživatelů (jestli vůbec někdo) použilo všechny jejich komponenty. Některé balíky zobrazují poznámku o rozdělení během instalace, některé se o tom zmiňují v popisu balíku, jiné ignorují.
Jestliže shledáte, že známý balík postrádá něco nebo vše z jeho funkčnosti,
podívejte se do níže uvedeného seznamu, jestli nepotřebujete nainstalovat další
balíky, abyste dosáhli původního efektu. Jestliže tento postup selže,
zkontrolujte changelog jednotlivých balíků, který může být nalezen v
/usr/doc/package/changelog.Debian.gz
.
Následuje seznam balíků, které byly rozděleny (tento seznam nemusí být kompletní):
gmc: mc gmc mc-common [8] libpgtcl: libpgtcl pgaccess mozilla: mozilla libnspr3 libnspr3-dev netbase: netbase tcpd libwrap0 libwrap0-dev netstd: bootp bootparamd bootpc finger fingerd fping ftp ftpd icmpinfo pidentd rdate rdist routed rsh-client rsh-server ruptime rusers rusersd rwall rwalld rwho rwhod tftp tftpd traceroute wdsetup [9] perl-base: perl-base perl-5.004-base perl-5.005-base [10] perl: perl-5.004 perl-5.004-doc perl-5.005 perl-5.005-doc [11] postgresql: postgresql postgresql-client postgresql-test vim: vim vim-gtk [12]
Před upgradem (přechodem na vyšší verzi) vašeho systému je velmi vhodné vytvořit úplnou záložní kopii, nebo přinejmenším zálohovat data a konfigurační soubory, které byste jen neradi ztratili. Nástroje pro upgrade jsou zcela spolehlivé, ale selhání hardware by mohlo silně poškodit systém.
Nejdůležitější pro vás asi bude zazálohovat obsah adresářů /etc
,
/var/lib/dpkg
a zazálohovat výstup z dpkg
--get-selections.
Je dobré informovat uživatele o změnách, které v sytému vlivem upgrade
nastanou. Je to vhodné i v případě, že uživatelé se na váš systém napojují
vzdáleně (pomocí ssh) a vůbec nemusejí změny během upgrade zaregistrovat a
kteří chtějí pokračovat ve své práci. Pokud chcete upgradeovat obzvlášť
bezpečně, zazálohujte nebo odmountujte před upgradem uživatelskou oblast
(/home
).
Upgrade distribuce je možné provést lokálně z textové virtuální konzoly (nebo z
přímo propojeného sériového terminálu), nebo vzdáleně pomocí ssh
klienta.
Na druhou stranu byste upgrade neměli provádět pomocí utilit
telnet
, rlogin
, rsh
nebo ze stroje,
jehož X session je obstaráváno strojem, který upgradujete. Není to dobré z
toho důvodu, že tyto služby se během upgrade mohou přerušit, což může v
důsledku vést až k nepřístupnému systému, který je pouze z poloviny
upgradeován.
Nehledě na metodu upgrade je doporučeno nejdříve zkontrolovat stav všech balíků a prověřit, jestli jsou všechny balíky schopny upgradovat. To můžete provést příkazy
dpkg -l | pager
nebo
dpkg --get-selections > filename
(potom si prohlédněte a zazálohujte soubor filename
) nebo stav
balíků prohlédněte přímo v programu dselect
.
Veškeré instalační operace musejí být prováděny s právy superuživatele, bude
třeba přihlásit se k systému jako root nebo použít programů su
nebo sudo
k získání těchto práv.
Důrazně doporučujeme použít program /usr/bin/script
k záznamu
průběhu upgrade. [13] Jestliže
se objeví nějaký problém, minimálně budete mít záznam o tom, co se stalo, navíc
potom můžete podat přesnou informace do vašeho bug reportu. Záznam je možné
zahájit příkazem:
script -a /upgrade-2.2.typescript
a podobně. Poznamenejme, že není vhodné umísťovat soubor se záznamem do
dočasného adresáře (jako /tmp
nebo /var/tmp
).
Před provedením samotného upgrade je třeba odstranit všechna označení ,,hold''. Jestliže balík pro upgradeování bude označen jako ,,hold'' (podržení v aktuálním stavu), upgrade se neprovede. Pokud jste měnili a rekompilovali nějaký balík sami a neměnili jste jeho jméno a období ve verzi, měli byste jej označit jako ,,hold'', abyste předešli jeho upgrade. ,,Hold'' může být odstraněno v dselectu (v nabídce [V]ýběr nebo [S]elect pomocí kláves ,,H'' a ,,G''). Druhá možnost je spustit
dpkg --get-selections > filename
a upravit editací soubor filename
v němž změníme ,,hold'' na
,,install'' (případně můžete i obráceně obráceně). Změny se aplikují po zadání
příkazu (s přístupovými právy uživatele root)
dpkg --set-selections < filename
Pokud nechcete, aby byl váš dosavadní ssh
démon nahrazen démonem
OpenSSH (to je nový balík ssh
), který má ještě mírně
nekompatibilní konfigurační soubory což by mohlo způsobit nenaběhnutí této
služby (démona sshd
), označte balík ssh
jako ,,Hold''
(jestli je instalován). Pokud jej označíte jako ,,Hold'', zaručíte tím, že váš
systém bude dostupný z venčí. Tento problém můžete vyřešit později nebo si pro
instalaci zvolit balík ssh-nonfree
, což je sice plně kompatibilní,
ale stále non-free verze ssh. (Poznámka: spojení bude přerušeno, jen když
upgradujete ssh bez označení ,,Hold'')
Poznamenejme, že v této distribuci balík ssh
implicitně neumožňuje
vzdálené přihlášení superuživatele root. Pokud trváte na možnosti vzdáleného
přihlášení jako root, měli byste po provedení upgrade v souboru
/etc/ssh/sshd_config
nastavit přepínač
PermitRootLogin na hodnotu yes.
Před provedením upgrade je rovněž důležité, aby byl vytvořen adresář
/etc/rcS.d
, v opačném případě se nemůže nainstalovat balík
libc6
a instalace selže.
Nezapomeňte namountovat všechny potřebné diskové oblasti (zejména oblasti s
kořenovým souborovým systémem a adresářem /usr
) pro čtení i zápis
(read-write) příkazem:
mount -o remount,rw /mountpoint
Adresář /usr/share/doc
(pokud již existuje) by neměl být
symbolický link (třeba do adresáře /usr/doc
), to by mohlo způsobit
některým balíkům potíže. Avšak linkování /usr/doc
do
/usr/share/doc
je možné. Pamatujte, že pokud použijete nějaký
podobný link, může se objevit spousta hlášení o adresářích v
/usr/doc
, které nemohou být zrušeny. To je normální a můžete to v
klidu ignorovat.
Doporučená metoda upgrade je přímé použití apt-get
. APT je
nástroj z příští generace nástrojů pro správu balíků v Debianu, který umožňuje
hladké upgrady a jednoduché instalace.
S implicitním nastavením přístupových metod v programu dselect
byste neměli dělat větší upgrade balíků, protože tyto metody, narozdíl
od apt
nedělají během instalace žádné třídění balíků podle
závislostí a proto nejsou tak spolehlivé. Konečně takové upgrady jsou mnohem
méně testované a nejsou skutečně Debianem podporované.
Pokud se chystáte provést upgrade ze sady CD nebo z distribuce Debian
GNU/Linux vydání 2.0 (nebo dřívější), potřebujete verzi apt
a
dpkg
, které je možné získat v adresáři http://http.us.debian.org/debian/dists/potato/main/upgrade-alpha/
ve vašem archivu Debianu nebo v adresáři upgrade/
na prvním CD-ROM
ze sady Debian CD. Proveďte stažení (download) těchto souborů pomocí příkazů
(v tomto pořadí):
dpkg -i dpkg_1.6.13_alpha.deb dpkg -i apt_0.3.19_alpha.deb
To jsou speciální, staticky přeložené binární soubory, které je možné nainstalovat (a spustit) na libovolném systému Debianu.
Pokud upgradujete z distribuce Debian GNU/Linux verze 2.1 a chcete upgradeovat
buďto ze sítě (FTP, HTTP) nebo z lokálního zrcadla (pravděpodobně JEDNO
namountované CD, diskové oblast, nebo NFS), potom můžete použít balíky
apt
a dpkg
, které jsou v této distribuci Debianu.
Samozřejmě, pokud dosud není apt
nainstalováno, tak si jej
nainstalujte.
Mějte na paměti, že pokud provádíte upgrade metodou multiple CD z
jakéhokoliv vydání Debianu, potřebujete statické verze programů
apt
a dpkg
viz předcházející odstavce.
Doporučujeme nyní přečíst manuálové stránky apt-get(8)
a
sources.list(5)
. Pokud jste si nainstalovali statickou verzi
apt
a dpkg
, potom si můžete stránky prohlédnou jen
příkazy jako man -l /usr/share/man/man8/apt-get.8.gz. Poté, co
provedete upgrade balíku man-db
bude možné je prohlížet tradičním
způsobem.
Před provedením upgrade bude třeba nastavit konfigurační soubor pro
apt
, /etc/apt/sources.list
.
apt
uvažuje všechny balíky, které jsou k nalezení na libovolném ze
zdrojů uvedených na řádcích začínajících na ,,deb'' a používá ten
zdroj, který má největší čísla verzí, přičemž prioritu mají dřívěji uvedené
soubory (v případě, že používáte více zdrojů, se typicky nejprve uvádějí
lokální disky, potom CD-ROM a nakonec FTP/HTTP zrcadla).
Implicitní nastavení je nastaveno pro instalaci z našich hlavních Internetových
serverů, to si však asi budete přát změnit. Editací souboru
/etc/apt/sources.list
je možné používat i jiné zdroje, především
archivy, které jsou k vám na síti blíže. V tomto případě v souboru
/etc/apt/sources.list
nejprve zakomentujte existující
,,deb'' řádky tím, že před ně vložíte znak mřížka
(#).
Adresy FTP a HTTP archivů Debianu je možné najít na http://www.debian.org/distrib/ftplist
(podívejte se na kapitolu ,,Full list of mirrors'').
Například, váš nejbližší archiv je ftp://alea.iacta.est/debian/. Při jeho prohledávání pomocí WWW prohlížeče nebo pomocí FTP klienta jste zjistili, že hlavní adresáře jsou:
ftp://alea.iacta.est/debian/dists/potato/main/binary-alpha/... ftp://alea.iacta.est/debian/dists/potato/contrib/binary-alpha/...
Pokud chcete používat tento archiv pomocí APT, přidejte následující řádku do
vašeho souboru sources.list
:
deb ftp://alea.iacta.est/debian potato main contrib
Podadresář dists je do cesty přidán implicitně a argumenty za názvem distribuce jsou určeny pro rozšíření takto specifikované cesty do několika adresářů.
Pokud archiv obsahuje také non-US/* sekce na ftp://alea.iacta.est/debian/debian-non-US, pak přidejte:
deb ftp://alea.iacta.est/debian potato main contrib non-free deb ftp://alea.iacta.est/debian/debian-non-US potato/non-US main contrib
Všechny balíky, které jsou potřeba pro instalaci, které jsou nahrány za sítě,
jsou uloženy v adresáři /var/cache/apt/archives
(a v podadresáři
partial/
). Před započetím instalace byste se měli přesvědčit, že
máte na disku dostatek místa. Pro průměrnou instalaci Debianu očekávejte něco
kolem 300 MB.
Poznámka: Pokud používáte statickou verzi apt
a balíku
dpkg
, nebude možné zjistit IP adresu hostitele (to je jeden z
důvodů, proč používat apt
ze slinku). Řešení tohoto problému je
jednoduché, místo jména hostitele vložte do řádky za deb jeho IP
adresu. (Pro její zjištění použijte: nslookup hostitel)
Místo používání FTP nebo HTTP archivů budete asi chtít použít lokální archiv,
proto upravte soubor /etc/apt/sources.list
pro použití zrcadla na
lokálním disku (třeba exportovaného před NFS). V tomto případě nejprve
zakomentujte stávající deb řádky v souboru
sources.list
tím, že před ně napíšete znak mřížka
(#).
Pokud jsou například vaše balíky v adresáři /var/ftp/debian/
a
mají následující hlavní adresáře:
/var/ftp/debian/dists/potato/main/binary-alpha/... /var/ftp/debian/dists/potato/contrib/binary-alpha/...
Potom je nutné pro použití apt
přidat následující řádek do souboru
sources.list
:
deb file:/var/ftp/debian potato main contrib
Poznamenejme, že adresář dists je přidáván implicitně a argumenty za jménem distribuce jsou určeny pro rozšíření cesty do jednotlivých adresářů.
Pokud váš lokální archiv obsahuje sekci non-US/* v podadresáři
/var/ftp/debian-non-US
, pak rovněž přidejte následující řádku:
deb file:/var/ftp/debian-non-US potato/non-US main contrib
Nejprve potřebujete nainstalovat apt
(verze 0.3.*) z prvního
CD-ROM disku, jak je popsáno výše.
Pokud chcete používat výhradně sadu CD, zakomentujte v souboru
/etc/apt/sources.list
existující řádky začínající deb
tím, že na začátek vložíte znak mřížka (#).
Přesvědčte se, že je ve vašem souboru /etc/fstab
řádek umožňující
namountovat (připojit) CD-ROM mechaniku na uzel /cdrom
(pro metodu
apt-cdrom
je nutné mít mountpoint přesně v /cdrom
).
Např. pokud /dev/hdc
je vaše CD-ROM mechanika, soubor
/etc/fstab
by měl obsahovat obdobný řádek:
/dev/hdc /cdrom auto defaults,noauto,ro 0 0
Ve čtvrtém sloupci by mezi slovy defaults,noauto,ro neměly být mezery.
Pokud chcete ověřit funkčnost, vložte do mechaniky CD a spusťte
mount /cdrom (namountuje CD do adresáře /cdrom) ls -alF /cdrom (vypíše se obsah kořenového adresáře na CD) umount /cdrom (odmountuje CD)
Nyní spusťte:
apt-cdrom add
pro každý binární CD-ROM z vaší sady Debian CD, tím se přidají data o každém CD do vaší APT databáze.
Pokud jste nakonfigurovali apt
, spusťte (jako root):
apt-get update
Tento příkaz znovu sesynchronizuje přehled o balících z jejich zdrojů a aktualizuje informace o nových balících.
Občas je dobré spustit
apt-get --fix-broken --show-upgraded --simulate dist-upgrade | pager
tím si lze prohlédnout, co se stane. I když to může chvíli trvat, může to předejít nečekaným překvapením. Tento výpis vám mimo jiné napoví, co je ve vašem systému nastaveno špatně (a jak to vyřešit) a také, ve většině případů, přesně co se stane během instalace. Speciálně si všímejte souborů, které by měly být odstraněny, žádné hlavní balíky by zde neměly být uvedeny.
Poté, co jste se přesvědčili, že apt-get
by mělo dělat to, co
očekáváte, spusťte:
apt-get --fix-broken --show-upgraded dist-upgrade
Tento krok způsobí kompletní upgrade systému, tj. nainstaluje nejnovější verze dostupných balíků a vyřeší všechny možné problémy mezi balíky z rozdílných distribucí. Pokud to bude nezbytné, nainstalují se další nové balíky (zpravidla nové verze knihoven nebo přejmenované balíky), ale v žádném případě se nebudou žádné balíky odstraňovat.
Pokud provádíte upgrade ze sady CD, budete během upgrade na různých místech vybídnuti ke vložení konkrétního CD. Je možné, že budete muset vložit jedno CD i několikrát, protože některé balíky závisejí na jiných, které jsou uloženy na jiném CD.
Nové balíky, které nemohou být instalovány beze změny instalačního statusu
jiných balíků budou ponechány v jejich původní verzi (zobrazováno jako ,,held
back''). A proto může být nezbytné použít programy dpkg
a
dselect
pro odstranění a reinstalaci balíků s nekorektními
závislostmi. Eventuálně můžete použít apt-get dselect-upgrade po
příkazu apt-get -f dist-upgrade. (Pro detaily se podívejte na
manuálovou stránku apt-get(8)
.)
Parametr --fix-broken (nebo jen -f) způsobí, že
apt
se pokusí spravit systém se špatnými závislostmi.
apt
v systému neumožňuje existenci špatných závislostí mezi
balíky.
Někdy je potřebné nastavit parametr APT::Force-LoopBreak pro APT, tím se umožní
dočasné smazání hlavního balíku způsobené cyklem Conflicts/Pre-Depends.
apt-get
vás o podobné situaci informuje a přeruší se upgrade. V
tomto případě spusťte apt-get
s parametrem -o
APT::Force-LoopBreak=1.
Je možné, že systém závislostí mezi balíky bude do té míry poškozen, že si to
vyžádá ruční opravu. To obvykle znamená spustit dselect
nebo
spustit příkaz
dpkg --remove packagename
pro odstranění pochybných balíků, nebo
apt-get -f -u install dpkg --configure --pending
V extrémním případě byste měli znovu vynutit reinstalaci balíku příkazem
dpkg --install /path/to/packagename.deb
Po těchto krocích, byste měli být schopni pokračovat v upgrade pomocí předešle popsaného příkazu dist-upgrade.
Během upgrade budete vyzváni ke konfiguraci nebo opětovnému nastavení některých
balíků. Pokud budete vyzváni, zda-li nahradit nějaký soubor v adresářích
/etc/init.d
, /etc/terminfo
nebo soubor
/etc/manpath.config
, měli byste odpovědět kladně (,,yes''), tím
zaručíte systémovou konzistenci. Vždy se můžete vrátit ke starším verzím
souborů, jelikož budou uloženy s příponou .dpkg-old.
Pokud si nevíte rady, napište si jméno balíku nebo souboru a nechte jeho
konfiguraci na později. Můžete si pak prohlédnou typescript (výstup z programu
script
) a podívat se na údaje, které byly na obrazovce během
upgrade.
Formální upgrade je dokončen, jakmile je apt-get dist-upgrade hotov. Ale na některé věci byste si před rebootem stroje měli dát pozor.
Snad nejdůležitější je, abyste nainstalovali balíky locales
,
util-linux
. To můžete udělat příkazem:
apt-get install locales util-linux
Jestliže jste upgradeovali ze systému Debian verze 2.0 nebo dřívější, předešlý
příkaz odstraní balík getty
, protože program getty
je
nyní v balíku util-linux
.
Pravděpodobně existuje víc balíků, které musejí být nainstalovány a nejsou
zaznamenány programem apt-get
, protože apt-get
automaticky nezvolí balíky, které nejsou závislé na ostatních (tj. balíky
označené v polích Recommends:, Suggests:). Je ale snadné je nalézt pomocí
programu dselect
nebo jiné grafické nástavby. V programu
dselect
nastavte přístupovou metodu ,,apt'' (pokud jste tak
doposud neučinili) a aktualizujte databázi o nových balících pomocí volby
[A]ktualizace (nebo [U]pdate). Potom vejděte do nabídky [V]ýběr (nebo
[S]elect), stiskněte ,,o'', ,,o'', ,,v'' a ,,Shift-d'', potom najděte hlavičku
--- Obsolete and local packages present on system ---
nebo pokud používáte lokalizovanou verzi programu dselect
--- Zastaralé a lokální balíky v systému ---
V této sekci jsou zobrazeny ,,zastaralé'' a ,,lokální'' balíky. Např. staré
balíky gimp-smotif
a gimp-dmotif
jsou nyní v
distribuci Debian GNU/Linux 2.1 nahrazeny balíkem gimp
. Nový
balík můžete nainstalovat buďto pomocí programu dselect
(který
potom zobrazí obrazovku ,,řešení problémů s konflikty'' vyjadřující to, že
starý balík může být uvolněn), nebo pomocí:
apt-get install gimp
což odstraní starší verzi balíku a provede instalaci naráz (jediné co potřebujete je akci potvrdit).
Další příklad, který často není vidět ani v programu dselect
jsou
klienti a servery služby telnet a talk a také NFS server, které byly odděleny z
balíku netstd
. Můžete je nainstalovat pomocí příkazu jako:
apt-get install telnet telnetd talk talkd nfs-server
To samé platí pro balík manpages-dev
, který byl oddělen z balíku
manpages
.
Pokud se chcete o dozvědět víc o balících, které byly rozděleny, přečtěte si Poznámky k vydání distribuce Debian GNU/Linux 2.1 a také si přečtěte sekce Přejmenované balíky, Oddíl 3.2, Rozdělené balíky, Oddíl 3.3, kde se dozvíte, jaké balíky byly rozděleny v této distribuci.
Poznamenejme, že těmito procedurami se neupgradeovalo jádro vašeho systému. To
musíte udělat sami, buďto instalací nějakého balíku kernel-image-*
nebo překladem vámi upraveného jádra z jeho zdrojových kódů.
Těšte se z vaší distribuce Debian GNU/Linux 2.2! :-)
debian-boot@lists.debian.org