[ předchozí ] [ Obsah ]

Poznámky k distribuci Debian GNU/Linux 2.2 (,,potato''), Alpha
Kapitola 3 Upgrade z předešlého vydání


3.1 Změny v systému

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í.

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.


3.2 Přejmenované balíky

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í.


3.3 Rozdělené balíky

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]


3.4 Nezbytné činnosti předcházející upgrade

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é.


3.5 Proces upgrade

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).


3.5.1 Nastavení upgrade přes Internet

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)


3.5.2 Nastavení upgrade z lokálního archivu

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


3.5.3 Nastavení upgrade z CD-ROMů

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.


3.5.4 Provedení upgrade

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.


3.5.5 Možné problémy během nebo po upgrade

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! :-)


[ předchozí ] [ Obsah ]
Poznámky k distribuci Debian GNU/Linux 2.2 (,,potato''), Alpha
$Id: release-notes.cs.sgml,v 1.4 2000/07/30 22:21:32 vychodiv Exp $
Josip Rodin, Bob Hilliard, Adam Di Carlo, Anne Bezemer
debian-boot@lists.debian.org