Jak uaktualnić/zmienić swoją dystrybucję Linux-a. Greg Louis, glouis@dynamicro.on.ca v1.11, 6 Czerwca 1996. WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii BB..MMaarruusszzeewwsskkii@@zzssmmeeiiee..ttoorruunn..ppll v1.02, 26 Lipca 1997 Wskazówki jak przechodzić z jednej dystrybucji Linux-a na inną. Doku­ ment ten został napisany w standardzie ISO-8859-2. Wersja oryginalna znajduje się pod adresem ftp.icm.edu.pl . ______________________________________________________________________ Spis treści 1. Prawa autorskie i zrzeczenie (disclaimer). 2. Wprowadzenie. 2.1 Jak uśmiercić i przywrócić do życia twojego Linux-a! 2.2 Dlaczego ktoś chciałby w ogóle to robić ? 2.3 Czy musisz "niszczyć i ponownie instalować" ? 2.4 Jak długo to będzie trwało ? 3. Sam proces uaktualnienia. 3.1 Zapisuj wszystko co robisz. 3.2 Zrób pełne archiwum aktualnego systemu. 3.3 Zarchiwizuj /etc wraz z podkatalogami na jednej lub więcej dyskietkach. 3.4 Utwórz osobne archiwa dla każdej grupy plików, które chcesz zachować. 3.5 Przygotuj dyskietki "root" i "boot" do nowej instalacji. 3.6 Sformatuj dyskietki na tymczasowe jądro i na końcową wersję. 3.7 Zablokuj logowanie się i zarchiwizuj katalogi /root i /home. 3.8 Zrestartuj komputer z nowych dyskietek "boot" i "root". 3.9 Skasuj partycje Linux-owe fdiskiem i stwórz je ponownie. 3.10 Uruchom nową instalację. 3.11 Wyedytuj /etc/fstab po wystartowaniu nowego systemu. 3.12 Odtwórz pliki konfiguracyjne do katalogu /etc i jego podkatalogów. 3.13 Skonfiguruj i skompiluj jądro. 3.14 Odtwórz archiwa, które wcześniej zrobiłeś. 3.15 Sprawdź bezpieczeństwo. 3.16 Odblokuj logowanie się. 3.17 Przepraszam, ale jeszcze raz: 3.18 Podziękowania. 4. Od tłumacza. ______________________________________________________________________ 11.. PPrraawwaa aauuttoorrsskkiiee ii zzrrzzeecczzeenniiee ((ddiissccllaaiimmeerr)).. Procedura, którą dokument ten próbuje opisać jest wysoce niebezpieczna dla twoich programów i danych zapisanych na dysku. Wykonujesz to wszystko TYLKO I WYŁĄCZNIE na własne ryzyko. Opisane tutaj kroki działały u autora; nie ma żadnej gwarancji, że będą one działać u ciebie ani że postępując zgodnie z nimi nie uszkodzisz sobie programów czy danych zawartch na dysku. Jesteś zdany całkowicie na siebie podczas robienia użytku z podanych tu procedur i autor nie jest odpowiedzialny za jakiekolwiek uszkodzenia czy niewygody wynikłe z ich użycia. Prawa autorskie do tego dokumentu należą do Dynamicro Consulting Limited i jest on wydany na podstawie licencji GNU. Ogólnie oznacza to, że możesz go kopiować i modyfikować, ale nie możesz zabraniać innym robienia tego samego. Komentarze i pytania proszę kierować do autora. Szczególnie mile widziane są opisy udanych uaktualnień złożonych systemów, które zostaną wykorzystane do przyszłych wersji. Zmiany od wersji 1.1 ˇ Dodałem tę sekcję historyczną. ˇ Dodałem sugestię Zoltán Hidvégi odnośnie _m_t_i_m_e _i _c_t_i_m_e. Dzięki Zoltán ! ˇ Dodałem sekcję Podziękowania. 22.. WWpprroowwaaddzzeenniiee.. 22..11.. JJaakk uuśśmmiieerrcciićć ii pprrzzyywwrróócciićć ddoo żżyycciiaa ttwwoojjeeggoo LLiinnuuxx--aa!! Celem tego dokumentu jest zaoferowanie wskazówek, które pomogą ci w niszczeniu i ponownej instalacji twojego Linux-a. Nie jest to żadna głupko-odporna książka kucharska; ale mam nadzieję, że posłuży jako pewnego rodzaju wykaz tego o czym musisz pomyśleć, i wykaz kolejności w jakiej musisz zrobić różne rzeczy. Jeśli ktoś napisałby takie coś zanim dokonałem swojego pierwszego uaktulanienia, byłoby to dla mnie bardzo pomocne. Tak więc mam nadzieję, że będzie to pomocne dla ciebie, jeśli masz jakiegoś Linux-a do przerobienia. Ale nie bierz tego za świętą prawdę: twoja droga do przebycia będzie prawie na pewno się różniła od mojej. Nawet nazwy katalogów z tego dokumentu mogą być różne od tych, które ty będziesz musiał użyć; na przykład niektórzy mają /usr/home zamiast /home; inni nazywają to /u, a niektórzy (brrr) to nawet umieszczają swoich użytkowników bezpośrednio w /usr ! Nie można odnieść się dokładnie do twojego systemu także użyłem tu nazw, które wystepowały u mnie. Zauważysz także, że używam dystrybucji Slackware oraz że zakładam, że masz wystarczająco dużo RAM-u i miejsca na dysku, żeby skopiować źródła do jądra na dysk i zrobić swoje jądro. Jeśli twój system jest inny, niektóre z moich zaleceń nie będą pasowały; ale mam nadzieję, że generalnie będziesz się mógł w dalszym ciągu opierać o ten dokument w swoim projekcie przebudowy. 22..22.. DDllaacczzeeggoo kkttoośś cchhcciiaałłbbyy ww ooggóóllee ttoo rroobbiićć ?? Dobre pytanie ! Jeśli można tego uniknąć, to nie rób tego ! (Jest to najprostsza najważniejsza rekomendacja w tym przewodniku !!!) Ale przychodzi taki czas, że po prostu musisz. Na przykład: Zainstalowałem sobie dysk 4GB i okazało się, że mój Slackware 2.0 biedaczek nie wiedział, że dysk może mieć więcej jak 2GB i poczuł się bardzo zawstydzony. Tak więc musiałem uaktualnić go do wtedy-świeżej wersji 2.3. Operacja ta była dla mnie ciężkim przeżyciem, i jest jednym z powodów, dla których piszę te uwagi. Zrobiłem prawie wszystko źle i tylko szczęście i fakt, że miałem obok drugiego chodzącego Linux-a uratowało mnie od katastrofy. Jako inny przykład mogę podać, że nie mogłem skompilować działającego jądra "a.out" z serii 1.3, używając Slackware 2.3 spoza komputera, który przedtem spartaczyłem. Wziąłem się w garść, kupiłem Slackware 3.0 na CD-ROM-ie i przeszedłem na ELF-a. Tym razem ponowna instalacja poszła lepiej, po części dzięki poprzedniemu gorzkiemu doświadczeniu, które posłużyło jako źródło większości pomysłów, które wam tutaj oferuję. 22..33.. CCzzyy mmuussiisszz ""nniisszzcczzyyćć ii ppoonnoowwnniiee iinnssttaalloowwaaćć"" ?? Jest bezpieczniej. Jeśli zainstalujesz nową wersję dystrybucji na starszą, to będziesz miał mieszaninę starych i nowych binariów, starych i nowych plików konfiguracyjnych i nie będzie to zbyt ciekawe miejsce do administrowania. Wyczyszczenie systemu i ponowna instalacją tego co rzeczywiście chcesz mieć, jest drastycznym lecz efektywnym sposobem na osiągnięcie przejrzystego i dobrze działającego systemu. (Oczywiście mówimy tu o instalacji kompletnie nowej dystrybucji a nie o uaktulanieniu dwóch pakietów ! Aby uniknąć całkowitej instalacji nowego systemu najlepiej w miarę pojawiania się nowych wersji konkretnych pakietów uaktualniać je -- szczególnie chodzi tu o _g_c_c i jego biblioteki oraz _b_i_n_u_t_i_l_s. Jeśli potrafisz w ten sposób utrzymać w miarę bieżące wersje pakietów, to nie potrzebujesz całkowitego uaktualnienia.) Jak pisze Patrick Volkerding (on także zaleca procedurę z kompletnym wyczyszczeniem systemu), instalacja systemu ELF na systemie "a.out" jest przepisem na katastrofę; bo jeżeli wiedziałbyś dostatecznie duży, żeby spróbować, to nie czytałbyś tego dokumentu ! Chociaż nawet bez tych komplikacji lepiej, żebyś zaczął zupełnie od nowa. 22..44.. JJaakk ddłłuuggoo ttoo bbęęddzziiee ttrrwwaałłoo ?? To oczywiście zależy od tego, jak złożony jest twój system. Ale oceniłem, że na udane uaktualnienie (to drugie - nie pytaj ! ;) ) poświęciłem około 10 godzin na robienie archiwów, 6 godzin na przebudowanie systemu spowrotem do momentu, w którym mogłem się zalogować a następne pół dnia czy coś koło tego na odtwarzanie niekrytycznych danych. Z biegiem czasu odkrywam jeszcze małe szczegóły, które nie są do końca takie jakie chciałem -- naprawiam je wraz z odkrywaniem ich -- ale generalnie 20 godzin powinno wystarczyć na sensowną odbudowę systemu. Może mniej jeśli instalujesz z dysku (ja używałem CD-ROM-u), albo więcej jeśli musisz instalować z dyskietek. Może mniej jeśli masz szybkie Pentium - więcej jeśli jest to 386. No, rozumiesz o co chodzi. To tyle tytułem wstępu. Oto jak się przygotować jak już się zdecydowałeś, że to zrobisz. Uzbroj się w cierpliwość i: 33.. SSaamm pprroocceess uuaakkttuuaallnniieenniiaa.. 33..11.. ZZaappiissuujj wwsszzyyssttkkoo ccoo rroobbiisszz.. Bardzo ważne jest to, żebyś zapisywał wszystko co robisz w czasie przygotowywania się i przeprowadzania uaktulanienia. Szczególnie ważna jest lista archiwów, które będziesz robił przed zniszczeniem swojego systemu. 33..22.. ZZrróóbb ppeełłnnee aarrcchhiiwwuumm aakkttuuaallnneeggoo ssyysstteemmuu.. Ogólnie mówiąc archiwa są zapisywane na mediach, które mają dostęp sekwenycyjny. Przez to, nie będziesz chciał użyć tego całkowitego archiwum do odtworzenia znaczącej ilości plików; jest tam za dużo plików, których nie chcesz. Lepiej jest stworzyć mniejsze archiwa, fragmentów dysku, które będziesz chciał później odtworzyć. Później podam listę przykładów. Dlaczego więc powinieneś zacząć od całkowitego archiwum ? Dwa podstawowe powody: 1. w przypadku całkowitego niepowodzenia instalacji nowszej wersji systemu będziesz mógł bezboleśnie powrócić do sytuacji wyjściowej. 2. niezależnie od tego jak dokładnie przygotujesz się do uaktulanienia, istnieje bardzo duża szansa, że jeden lub dwa ważne pliki zostaną przeoczone. W tym przypadku cała niewygoda w odtwarzaniu tych dwóch plików z całego archiwum będzie lepsza od obchodzenia się bez nich. Aby zaoszczędzić czas i miejsce, jeśli ciągle masz nośnik ze swoją starą dystrybucją, możesz chcieć zarchiwizować tylko te pliki, których _m_t_i_m_e czy _c_t_i_m_e jest późniejszy niż oryginalnych z instalacji. 33..33.. ZZaarrcchhiiwwiizzuujj //eettcc wwrraazz zz ppooddkkaattaallooggaammii nnaa jjeeddnneejj lluubb wwiięęcceejj ddyysskkiieettkkaacchh.. To jest inna ekstremalna sytuacja: nie będziesz odtwarzał tych plików (przynajmniej w większości); będziesz je porównywał z tymi, które powstały po nowej instalacji. Dlaczego ? Ponieważ te nowe mogą zawierać dane, których nie ma w tych starych, albo mogą wyrażać stare dane w nowy sposób. Zmiany w protokołach, nowe narzędzia albo implementacje nowych właściwości w istniejących narzędziach mogą nieść za sobą zmianę formatów plików konfiguracyjnych i startować skrypty, które znajdują się w /etc i będziesz przypuszczalnie musiał edytować te pliki konfiguracyjne, tak żeby odpowiadały nowemu formatowi. 33..44.. UUttwwóórrzz oossoobbnnee aarrcchhiiwwaa ddllaa kkaażżddeejj ggrruuppyy pplliikkóóww,, kkttóórree cchhcceesszz zzaacchhoowwaaćć.. To jest najbardziej zmienna część pracy i wszystko co mogę zrobić, żeby ci pomóc to opisanie tego co zrobiłem u siebie, w nadziei, że posłuży ci to jako przewodnik. Ogólnie powinieneś zajrzeć do każdego katalogu, który zawiera ˇ pliki, które nie są częścią standardowej instalacji albo ˇ pliki, które są nowsze od tych z nowej instalacji. i oddziel tylko te pliki, które chcesz przenieść. (Inną możliwą strategią jest zarchiwizowanie plików z _m_t_i_m_e lub _c_t_i_m_e późniejszym niż dzień instalacji i potem odtworzenie ich. Jeśli to zrobisz, to musisz mieć na uwadze, że nowa dystrybucja może i tak zawierać nowsze wersje plików, które zarchiwizowałeś.). W moim przypadku, skończyło się na archiwach następujących katalogów: ˇ /usr/lib/rn ˇ /usr/lib/smail ˇ /usr/lib/trn (reszta /usr/lib zostałaby przeinstalowana) ˇ /usr/local/src ˇ /usr/local/bin ˇ /usr/local/lib ˇ /usr/local/lpfont ˇ /usr/local/man ˇ /usr/local/sbin ˇ /usr/local/thot (w /usr/local były pliki, których niepotrzebowałem) ˇ /usr/openwin ˇ /usr/src/lilo-17 (ponieważ mój nowy Slackware miał wciąż wersję 16) ˇ /usr/src/linux-1.2.13 (ponieważ skonfigurowałbym od nowa) ˇ /usr/X11R6/lib/X11/app-defaults ˇ /usr/X11R6/lib/X11/initrc (reszta X11 miała być przeinstalowana ˇ /var/named ˇ /var/openwin ˇ /var/texfonts Mój system był względnie łatwy ponieważ nie było żadnych plików _s_p_o_o_l, o które trzebaby się troszczyć. Nie mam katalogu do _n_e_w_s_-_ó_w, a ponieważ jest tylko dwóch użytkowników, najprościej było przeczytać pocztę przed zamknięciem systemu. W innym przypadku katalog /var/spool musiałby zostać zarchiwizowany w ostatniej minucie. (No i oczywiście biblioteka _n_e_w_s_-_ó_w i katalogi lokalne !) 33..55.. PPrrzzyyggoottuujj ddyysskkiieettkkii ""rroooott"" ii ""bboooott"" ddoo nnoowweejj iinnssttaallaaccjjii.. Szczegóły na ten temat znajdziesz w podręczniku do twojej nowej dystrybucji. Od tłumacza: Możesz też zajrzeć do Bootdisk-HOWTO . 33..66.. SSffoorrmmaattuujj ddyysskkiieettkkii nnaa ttyymmcczzaassoowwee jjąąddrroo ii nnaa kkoońńccoowwąą wweerrssjjęę.. Będziesz potrzebował dwóch - po jednej na każde. Jak to wszystko jest już zrobione jesteś gotowy na WWiieellkkąą CChhwwiillęę.. Następny krok usuwa system z powierzchni ziemi. 33..77.. ZZaabbllookkuujj llooggoowwaanniiee ssiięę ii zzaarrcchhiiwwiizzuujj kkaattaallooggii //rroooott ii //hhoommee.. Jest to ostatnia rzecz jaką będziesz robił na starym systemie zanim go zniszczysz. 33..88.. ZZrreessttaarrttuujj kkoommppuutteerr zz nnoowwyycchh ddyysskkiieetteekk ""bboooott"" ii ""rroooott"".. 33..99.. SSkkaassuujj ppaarrttyyccjjee LLiinnuuxx--oowwee ffddiisskkiieemm ii ssttwwóórrzz jjee ppoonnoowwnniiee.. Podręcznik do instalacji wyjaśni jak to zrobić. W tym momencie niszczysz stary system i jesteś zależny od jakości archiwów, które zrobiłeś ! Zostałeś ostrzeżony ! 33..1100.. UUrruucchhoomm nnoowwąą iinnssttaallaaccjjęę.. Jest już kilka dokumentów, które opisują procedurę instalacji, tak więc nie będę się zagłębiał w szczegóły. Kontunuuj od tego miejsca jak już nowy system będzie startował z twardego dysku. W czasie instalacji zrób także dyskietkę, z której będziesz mógł startować ponieważ zainstalowane jądro będzie musiało zostać podmienione a wypadki się zdarzają. Upewnij się, że zainstalowałeś pakiety do rozwoju (development) i źródła do jądra. 33..1111.. WWyyeeddyyttuujj //eettcc//ffssttaabb ppoo wwyyssttaarrttoowwaanniiuu nnoowweeggoo ssyysstteemmuu.. I dodaj swoją partycję _s_w_a_p. Potem wydaj polecenie swapon -a. Nie wiem dlaczego, ale program do instalacji Slackware'u nie daje możliowści zrobienia tego jeśli twoja partycja _s_w_a_p już istnieje. Potem jak próbujesz wystartować system, skrypt _r_c_._S próbuje włączyć _s_w_a_p_-_o_w_a_n_i_e i nie znajduje partycji _s_w_a_p - ten krok naprawia ten błąd. 33..1122.. OOddttwwóórrzz pplliikkii kkoonnffiigguurraaccyyjjnnee ddoo kkaattaalloogguu //eettcc ii jjeeggoo ppooddkkaattaa­­ llooggóóww.. Jak to jest opisane powyżej, nie możesz po prostu skopiować wszystkich plików spowrotem do tego katalogu i oczekiwać, że wszystko będzie ładnie działać. Niektóre pliki, z którymi możesz tak postąpić, np. _/_e_t_c_/_X_F_8_6_C_o_n_f_i_g (o ile używasz tej samej wersji _X_F_r_e_e_8_6 i tej samej karty graficznej). Chociaż w większej części najlepiej jest użyć programu diff do porównania plików przed rozpoczęciem kopiowania. Uważaj szczególnie na znaczące zmiany w /etc/rc.d, które mogą wymagać ręcznej restabilizacji twojego systemu, zamiast kopiowania zarchiwizowanych skryptów. Jak już wszystko jest gotowe - zrestartuj system. 33..1133.. SSkkoonnffiigguurruujj ii sskkoommppiilluujj jjąąddrroo.. Nawet jeśli w ogóle nie musisz tego robić, żeby otrzymać jądro, które obsługuje twój sprzęt, opłaca się to zrobić, choćby dlatego, żeby pozbyć się kupy niepotrzebnych sterowników z jądra, które tylko je spowalniają. Szczegóły znajdziesz w Kernel-HOWTO . Najpierw zainstaluj nowe jądro na dyskietce - jeśli wszystko działa, to zainstaluj je na dysku twardym, uruchom LILO jeśli go używasz, i zrestartuj komputer. 33..1144.. OOddttwwóórrzz aarrcchhiiwwaa,, kkttóórree wwcczzeeśśnniieejj zzrroobbiiłłeeśś.. Niektóre binaria będą musiały zostać zainstalowane z katalogów źródłowych; musiałem tak zrobić z _l_i_l_o, na przykład, ponieważ miałem nowszą wersję niż w dystrybucji i nie zarchiwizowałem katalogu /sbin. Będziesz pewnie chciał sprawdzić programy z archwium czy wszystkie się poprawnie zainstalowały oraz czy wszystkie pliki konfiguracyjne i biblioteki są na miejscu. W niektórych przypadkach musisz odtworzyć programy w określonej kolejności; robiłeś notatki podczas archiwizacji, czyż nie ? ;) 33..1155.. SSpprraawwddźź bbeezzppiieecczzeeńńssttwwoo.. Sparwdź prawa dostępu do plików i katalogów, żeby dowiedzieć się czy dostęp nie jest zbyt mały lub zbyt szeroki. Dowiedziałem się np., że Slackware dąży do bardziej otwartego środowiska niż ja lubię, więc przechodzę przez katalogi i zmieniam 755 na 711 dla plików w .../bin i podobnych rzeczy. A nawet zmieniam na 700 dla plików w /sbin. Szczególna ostrożność jest potrzebna jeśli miałeś serwer ftp - ale jeśli już go miałeś, to na pewno o tym pomyślałeś wcześniej :) 33..1166.. OOddbbllookkuujj llooggoowwaanniiee ssiięę.. System już działa. Przez następną chwilę, będą pewnie jakieś szczegóły do dopracowania; ale większość roboty jest już zrobiona. Miłej zabawy ! 33..1177.. PPrrzzeepprraasszzaamm,, aallee jjeesszzcczzee rraazz:: UUŻŻYYWWAAJJ IINNFFOORRMMAACCJJII TTUU ZZAAWWAARRTTYYCCHH NNAA WWŁŁAASSNNEE RRYYZZYYKKOO !!!!!! (Zobacz sekcję ``Prawa autorskie i zrzeczenie.'') 33..1188.. PPooddzziięękkoowwaanniiaa.. Wielkie podziękowania za wkład wniesiony do tego mini-HOWTO dla Zoltána Hidvégi. 44.. OOdd ttłłuummaacczzaa.. Jeśli znalazłeś jakieś rażące błędy ortograficzne, gramatyczne, składniowe, techniczne to pisz do mnie: B.Maruszewski@zsmeie.torun.pl Oficjalną stroną tłumaczeń HOWTO jest http://www.jtz.org.pl/ Aktualne wersje przetłumaczonych dokumentów znajdują się na tejże stronie. Dostępne są także poprzez anonimowe ftp pod adresem ftp.ippt.gov.pl/pub/Linux/JTZ/ Przetłumaczone przeze mnie dokumenty znajdują się także na mojej stronie WWW. Są tam też odwołania do Polskiej Strony Tłumaczeniowej. Kontakt z naszą grupą, grupą tłumaczy możesz uzyskać poprzez listę dyskusyjną jtz@ippt.gov.pl. Jeśli chcesz sie na nią zapisać, to wyślij list o treści subscribe jtz Imię Nazwisko na adres listproc@ippt.gov.pl Zmiany wprowadzone przeze mnie do tego dokumentu to polskie odnośniki do serwerów ftp i WWW oraz informacja o Bootdisk-HOWTO.