Linux
IV
System plików:
Najbardziej popularnym systemem plików Linuksa jest drugi rozszerzony system plików (ext2). System ten obsługuje nazwy plików składające się z 256 znaków oraz może mieć maksymalny rozmiar 4TB.
Montowanie systemu plików
Aby w Linuksie uzyskać dostęp do dowolnego systemu plików, musisz zamontować go w określonym katalogu. Dzięki temu pliki tego systemu plików będą wyglądały tak, jakby znajdowały się w tym katalogu, i będzie możliwość uzyskania do nich dostępu.
Służy do tego polecenie mount, które zazwyczaj musi być wykonane przez użytkownika root (zwykli użytkownicy mogą wykonywać polecenie mount, jeśli urządzenie to jest wymienione w pliku /etc/fstab). Ma ono następującą składnię:
mount -t rodzaj urządzenie pinkt_montowania
gdzie:
rodzaj - nazwa rodzaju systemu plików
urządzenie - jest fizycznym urządzeniem, na którym istnieje system plików
punkt_zamontowania - jest katalogiem, w którym ma być zamontowany (udostępniony) system plików.
np.:
mount -t ext2 /dev/hda2 /mnt
mount -t msdos /dev/fd0 /mnt
Opcja -o tego polecenia obsługuje automatyczną konwersję plików tekstowych z formatu dosowego (na końcu każdej linii występują znaki CR-LF) do formatu uniksowego (jedynie znak nowej linii na końcu każdego wiersza).Polecenie:
mount -o conv=auto -t msdos /dev/fd0 /mnt
włączy tę konwersję dla plików nie posiadających rozszerzenia nazwy plików. Popularną opcją montowania jest -o ro (lub -r), która montuje system plików jako przeznaczony tylko do odczytu.
Przeciwieństwem montowania systemu plików jest jego odmontowanie (demontowanie). Wywołuje ono dwa efekty: synchronizuje bufory systemu z aktualną zawartością systemu plików na dysku oraz powoduje, że system plików nie będzie więcej dostępny z tego punktu montowania.
Odmontowanie wykonuje się poleceniem umont:
umount /dev/fd
!!! Przenośne nośniki danych (dyskietki, cdrom) nie powinny być wyjmowane ze stacji lub wymieniane na inne w czasie montowania. Spowodowałoby to niezgodność informacji posiadanych przez system na temat urządzenia z tym, co się akurat dzieje. Zawsze, gdy chcesz przełożyć dyskietkę lub CD-ROM, najpierw je zdemontuj poleceniem umount, a potem ponownie zamontuj urządzenie. !!!
Zapisy w systemie plików i odczyty z niego są buforowane w pamięci tak samo jak w przypadku dysków twardych. Tzn. kiedy czytasz z dyskietki lub na niej piszesz, nie od razu musi to zaowocować aktywnością stacji dysków. System asynchronicznie obsługuje wejście/wyjcie dyskietki, więc zapisy i odczyty odbywają się tylko wtedy, gdy są absolutnie konieczne. Zatem jeśli kopiujesz na dyskietkę mały plik, a kontrolka stacji dysków się nie świeci, to nie wpadaj w panikę, gdyż dane zostaną zapisane później.
Jeśli chcesz zwykłym użytkownikom umożliwić montowanie i demontowanie pewnych urządzeń możesz dodać wpis w pliku /etc/fstab z opcją user.
Jeśli nie określisz systemu plików , polecenie mount samo usiłuje go rozpoznać samodzielnie (wybiera spośród systemu plików wymienionych w /proc/filesystems). Jeśli się to nie uda, mount kończy się niepowodzeniem.
Aby się dowiedzieć jakie urządzenia zostały zamontowane i gdzie, wydaj polecenie mount.
Kiedy używasz polecenia mount, musisz być pewny, że twoja powłoka użytkownika nie znajduje się w katalogu punkt_zamontowania.Najlepiej więc wykonać polecenie cd /, aby przejść do katalogu najwyższego poziomu.
Należy upewnić się, czy katalog punkt_montowania w ogóle istnieje. Jeśli nie, stwórz go poleceniem mkdir.
Niektóre systemy plików są montowane automatycznie w czasie inicjacji systemu. Jest to wykonywane przez plik /etc/fstab zawierający wpisy dla każdego systemu plików, który ma być zamontowany w czasie inicjacji systemu. Każda linia tego pliku ma następujący format:
urządzenia punkt_montowania rodzaj opcje
opcja
user umożliwia montowanie systemu plików przez użytkowników innych niż root.
default - włącza inne opcje
rw - system plików do odczytu i zapisu
async - bufory wejścia/wyjścia systemu plików działające asynchronicznie
Polecenie mount -a zamontuje wszystkie systemy plików wymienionych w pliku /etc/fstab
Sprawdzanie i naprawianie systemu plików
Do sprawdzania systemu plików i wprowadzania poprawek służy program fsck. Stosowanie tego polecenia jest dosyć proste, polecenie ma następujący format:
fsck -t rodzaj urządzenie
gdzie:
rodzaj - jest rodzajem systemu plików
urządzenie - jest urządzeniem (partycją dysku lub dyskietką ), na którym istnieje system plików
np. aby sprawdzić system plików ext2 na /dev/hda2 należy użyć polecenia:
fsck -t ext2 /dev/hda2
Nie powinno się sprawdzać zamontowanego systemu plików. Jak można sprawdzić system plików bez zamontowania go? Można zdemontować system plików poleceniem umount, zanim wyda się polecenie fsck. Natomiast główny system plików można zdemontować w czsie uruchamiania systemu. Innym sposobem sprawdzenia systemu plików jest zamontowanie go jako przeznaczonego tylko do odczytu. Można to zrobić za pomocą opcji „ro” po znaku zgłoszenia LILO.
W poleceniu fsck występuje opcja -a, która automatycznie odpowiada twierdząco na wszystkie pytania stawiane przez fsck, oraz opcję -c która szuka błędnych bloków, oraz opcję -v która wyświetla opisową informację w czasie operacji sprawdzania.
Jeśli chcesz się dowiedzieć, ile przestrzeni wymiany masz w swoim systemie, wydaj polecenie free. Ilość przestrzeni wymiany zgłaszana przez polecenie free jest trochę mniejsza, niż całkowity rozmiar twoich partycji wymiany. Jest to spowodowane tym, że kilka bloków każdego obszaru wymiany jest potrzebne do przechowywania mapy tego, w jaki sposób każda strona obszaru wymiany jest wykorzystana. Ten wydatek pamięci powinien być dosyć mały, jedynie kilka kB dla każdego obszaru wymiany.
Archiwizacja i kompresja
gzip
Podstawowe zadania programu gzip to: pobranie pliku, skompresowanie go, zapisanie skompresowanej wersji jako nazwapliku.gz oraz usunięcie oryginalnego, nieskompresowanego pliku.
Aby skompresować plik za pomocą gzip należy wydać poleceine:
gzip nazwapliku
Programowi gzip możesz podać listę plików, a on skompresuje każdy plik z listy i zapisze gooz rozszerzeniem .gz. gzip nie skompresuje domyślnie kilku plików w jeden plik archwialny .gz.
Informacje o pliku skompresowanym programem gzip można uzyskać za pomocą polecenia gzip -l:
gzip -l nazwa_pliku.gz
Aby odzyskać oryginalny plik na podstawie wersji skompresowanej, wykorzystuje się program gunzip
gunzip nazwa-pliku.gz
Aby zdekompresować plik z jego pierwotną nazwą, należy użyć opcji -N programu gunzip.
gunzip -N nazwa_pliku1.gz
Polecenie tar
Polecenie tar jest uniwersalnym programem użytkowym, który potrafi zapakować wiele plików e jeden plik archiwalny, zachowując przy tym informacje, takie jak prawa dostępu do pliku i prawa własności.
Polecenie tar ma następującą składnię:
tar funkcja/opcje pliki ...
gdzie:
funkcja - jest pojedynczą literą wskazującą operację, która ma być wykonana
opcje - są listą (jednoliterowych) opcji tej funkcji
pliki - lista plików, które należy zapakować w archiwum lub z niego odpakować.
Funkcja może przyjmować jedną z następujących wartości:
c - tworzy nowe archiwum
x - pobiera pliki z archiwum
t - wypisuje zawartość archiwum
r - dodaje pliki na końcu archiwum
u - aktualizuje pliki, które są nowsze od tych w archiwum
d - porównuje pliki w archiwum z tymi w systemie plików
Najczęściej stosowane są : c, x, t.
Najpopularniejsze opcje to:
v - drukuje opisową informację w trakcie pakowania lub odpakowania archiwum
k - zachowuje wszystkie istniejące pliki podczas pobierania z archiwum (nie pisze na żadnych istniejących plikach, które są zawarte w pliku tar).
z - dane zapisane w pliku tar mają zostać skompresowane za pomocą programu gzip.
v- pokazuje pliku które archiwizuje lub przechowuje
f - nazwa pliku
Aby zapakować zawartość jakiegoś katalogu w jeden plik archiwalny należy wydać polecenie:
tar cf nazwa_katalogu.tar nazwa_katalogu
(funkcja c, opcja f)
Dobrze jest użyć opcji v polecenia tar. Wypisuje ona każdy plik, który jest akurat archiwizowany. Np.:
tar cvf nazwa_katalogu.tar nazwa_katalogu
Jeśli zostanie użyta opcja v kilka razy, zostaną wydrukowane dodatkowe informacje, np.:
tar cvvf nazwa_katalogu.tar nazwa_katalogu
Aby rozpakować archiwum, należy wydać polecenie:
tar xvf nazwa.tar
(utworzy katalog nazwa i umieści w nim wszystkie oryginalne pliki z takimi samymi prawami dostępu jak w oryginalnym systemie. Nowe pliki będą należały do użytkownika, który wydał polecenie tar.Jeśli polecenie to wyda użytkownik root zostaną zachowani oryginali właściciele plików
Aby przejrzeć zawartość pliku tar, należy wydać polecenie:
tar tvf plik.tar
Aby odpakować tylko poszczególne pliki z archiwum tar, należy wydać polecenie:
tar xvf plik.tar pliki
Pakiet RPM
Instalowanie nowych aplikacji na podstawie kodu źródłowego może być wstrząsającym doświadczeniem nawet dla osoby o znacznej wiedzy i doświadczeniu. Dzięki RPM -om każdy jest w stanie w łatwością dodawać i usuwać oprogramowanie. Pakiet RPM zawiera wszystkie pliki potrzebne do uruchomienia oprogramowania, łącznie z samą aplikacją, plikami bibliotecznymi, dokumentacją i plikami konfiguracyjnymi. Wszystko to jest umieszczone w jednym pliku. Pakiet RPM zawiera informacje na temat swojej zawartości, o plikach, które zostaną zainstalowane w komputerze i o miejscach, w których nastąpi ta instalacja, a także instrukcje dotyczące instalowania się i odinstalowywania.
Obok instalowania i odinstalowywania, RPM -y umożliwiają upewnienie się, czy pakiety zostały zainstalowane poprawnie - czy nie brakuje określonych plików lub czy nie są one zniekształcone, a także czy wszystko jest zainstalowane w odpowiednich miejscach. T9o upewnienie się nosi nazwę odpytywania pakietu (querying).
Nazwa pliku pakietu RPM
Już sama nazwa pliku pakietu RPM dostarcza wielu informacji na temat tego pakietu. Użyjmy jako przykładu nazwy pliku apache-1.3.12-20.i386.rpm. pierwsza część nazwy oprogramowania, jakie znajduje się w pakiecie. W naszym przykładzie jest to serwer Apache Web. Następnie podawana jest wersja oprogramowania, w tym przypadku 1.3.12. po numerze wersji następuje kreska, po niej zaś liczba 20. Jest to numer wydania, oznaczający w tym przypadku dwudzieste wydanie pakietu, dotyczące tej samej wersji Apache. Nowe wydania RPM dotyczące tego samego oprogramowania publikuje się zwykle w celu usunięcia błędów spotykanych we wcześniejszych wydaniach. I386 oznacza, że pakiet został zbudowany dla platformy Intel 386 lub późniejszej. Wreszcie .rpm oznacza, że to pakiet RPM.
Zadanie: instalowanie pakietu RPM
Aby zainstalować pakiet RPM, wpisz plecenie
rpm -i [nazwa pakietu]
aby zaktualizować RPM( zalecane nawetw przypadku nowych instalacji), wpisz
rpm -u [nazwa pakietu]
podczas instalowania pakietu, zarówno z opcją - i , jak też - u, wykonywane są następujące operacje:
instalator RPM sprawdza zależności. Wiele pakietów oprogramowania potrzebuje plików, które nie znajdują się w danym RPM, lecz w innym pakiecie. Instalator RPM upewnia się najpierw, czy wszystkie wymagane pliki znajdują się już w systemie, a także, czy instalowany pakiet nie zastąpi plików potrzebnych innym, już zainstalowanym pakietom.
instalator RPM sprawdza, czy nie występują konflikty. Występują one np., gdy spróbujesz zainstalować pakiet, który jest już zainstalowany, lub jeśli chcesz zainstalować starszą wersję pakietu, podczas gdy jest zainstalowana już nowsza. Inny rodzaj konfliktu występuje wówczas, gdy instalacja pakietu spowodowałaby skasowanie pliku, który jest potrzebny innemu, już zainstalowanemu pakietów.
instalator RPM uruchamia wymagane skrypty i wykonuje inne zadania, które muszą być zrealizowane przed instalacją.
instalator RPM szuka w Twoim systemie jakichkolwiek dostosowanych plików konfiguracyjnych, które mogą się odnosić do danej aplikacji. Jeśli instalator natrafi na taki plik, spróbuje nie zastępować go, lecz utworzy inny plik konfiguracyjny o nieco innej nazwie na wypadek, gdybyś zdecydował się użyć piku konfiguracyjnego RPM zamiast własnego.
gdy wszystko znajdzie się już na swoim miejscu, instalator rozpakowuje pliki oprogramowania i instaluje je w odpowiednich miejscach. Ustawia również zezwolenia dotyczące tych plików, zgodnie z instrukcjami znajdującymi się w pakiecie.
po zakończeniu instalacji, instalator realizuje wymagane zadania końcowe, takie jak uruchomienie skryptu czyszczącego ( Idconfig), co ma na celu udostępnienie nowych, współużytkowanych bibliotek.
instalator RPM dodaje do bazy danych RPM informacje o zainstalowanym pakiecie.
!!! Rzeczywista nazwa pakietu RPM nie jest dla instalatora istotna. Jeśli np. pobrałeś taki pakiet podczas sesji Windows i jego nazwa została skrócona lub zmieniona w inny sposób, nadal możesz go zainstalować bez problemów. !!!
Możesz również zainstalować pakiet RPM poprzez FTP, bez pobierania i zapisywania samego pakietu w swoim komputerze. Wprowadź polecenie RPM, podając po nim adres URL, pod którym ten pakiet się znajduje;
Pakiet zostanie zainstalowany bezpośrednio z witryny.
Przydatne przełączniki i opcje RPM
Z poleceniem RPM można łączyć mnóstwo różnych przełączników i opcji, które modyfikują domyślne działanie tego polecenia, wzbogacają je lub powodują wyświetlenie raportu o stanie. W gruncie rzeczy nie można użyć polecenia RPM bez dodania przynajmniej jednego przełącznika, który dokładniej określa rolę tego polecenia.
Większość użytkowników używa polecenia RPM razem z opcjami - Uvh zarówno przy instalowaniu, jak i aktualizacji pakietów. -U oznacza aktualizację starszych pakietów tego samego oprogramowania lub instalowanie pakietu, jeśli nie istnieje jego wcześniejsza wersja. - U pełni taką samą funkcję, jak -i. Nie musisz się zastanawiać, czy nie masz już zainstalowanej wcześniejszej wersji. Przełącznik -v sprawia, że RPM przechodzi do trybu określanego jako rozwlekły ( verbose), w którym wyświetlony jest raport o stanie dotyczący każdego zainstalowanego pakietu - vv.
Przełącznik - h nakazuje wyświetlanie podczas instalowania specjalnych znaków. Informują one, że pakiet jest rzeczywiście pomyślnie zainstalowany. Wyświetlenie 50 znaków oznacza, że pakiet jest zainstalowany.
Powszechnie są również używane następujące opcje:
--test. Wykonujw wszystkie testy, wykonywane przed zainstalowaniem pakietu, jednak przerywa realizację skryptu i nie dokonuje samej instalacji. Opcja przydatna do określenia, czy planowany do zainstalowania pakiet nie wykazuje nieoczekiwanych zależności.
--replacepkgs. Instaluje RPM nawet wtedy, gdy taki RPM jest już zainstalowany. opcja przydatna wówczas, gdy sądzisz, że pliki oryginalnej instalacji zostały uszkodzone.
--replacefiles. Instaluje pakiet nawet wtedy, gdy powoduje to zastąpienie plików o takiej samej nazwie zainstalowanych z innego pakietu, np. z wcześniejszej wersji oprogramowania. Nie powinieneś używać tej opcji, jeśli nie jesteś pewien jej wyników.
--nodeps. Instaluje pakiety bez uprzedniego sprawdzania zależności. Używaj tej opcji tylko wówczas, gdy jesteś pewien wyników lub jeśli nie mają one znaczenia. Opcja może być przydatna podczas instalowania oprogramowania beta, dla celów testowania.
W odniesieniu do polecenia RPM jest dostępnych o wiele więcej przełączników i opcji. Więcej informacji możesz znaleźć na stronach info i man.
Przeszukiwanie pakietów RPM
Jeśli nie jesteś pewien, czy instalować dany pakiet, możesz uzyskać więcej informacji na jego temat, przeszukując(sprawdzając) go. Aby uzyskać podstawowe informacje o pakiecie RPM, kliknij go prawym przyciskiem myszy w menedżerze plików GNOME i wybierz Show Info (pokaż informacje). Otworzy się okno zawierające między innymi następujące informacje:
- datę i godzinę utworzenia pakietu
opis zawartości pakietu
łączny rozmiar plików instalowanych przez pakiet
kategorię pakietu
podpis pakietu
krótki opis oprogramowania
listę plików instalowanych przez pakiet
Podpis pakietu potwierdza jego autentyczność - że został rzeczywiście tworzony przez wymienionego twórcę i jego zawartość jest zgodna z etykietą. Podczas sprawdzania pakietu weryfikowana jest ważność jego podpisu. Zawsze sprawdzaj podpis przed zainstalowaniem pakietu pobranego z sieci WWW.
Aby uzyskać te same informacje, możesz wprowadzić do polecenia RPM (w wierszu poleceń) opcje sprawdzania. W celu wyświetlenia informacji o pakiecie RPM wpisz
rpm-qpi[nazwa_pakietu].
Aby stwierdzić, do którego pakietu należy określony plik, wpisz następujące polecenie:
$ rpm -qf /etc/httpd/conf
apache-1.3.12-20
Na ekranie został wyświetlony pakiet, z którego pochodzi zainstalowany plik.
Naprawianie błędów zależności
Błędem najczęściej występującym podczas instalacji pakietów RPM jest błąd zależności. Występuje on wtedy, gdy instalowany pakiet nie może odnaleźć w Twoim systemie plików, których potrzebuje. Załóżmy np.,że próbujesz zainstalować pakiet mgetty-sendfax. Może zostać wyświetlony komunikat, że musi być zainstalowany pakiet mgetty w wersji 1.1.21 i że nie został on znaleziony w Twoim systemie:
# rpm -Uvh mgetty-sendfax-1.1.21-11.i386.rpm
error: failed dependencies:
mgetty = 1.1.21 is needed by mgetty-sendfax-1.1.21-11
Jeśli zainstalujesz najpierw mgetty, będziesz mógł następnie zainstalować mgetty-sendfax.
Błędy zależności mogą powstawać z 3 powodów. Po pierwsze, aplikacja może potrzebować plików, których w ogóle nie ma w systemie. Po drugie, instalator RPM może niebyć w stanie odnaleźć tych plików. Po trzecie wreszcie, aplikacja może potrzebować plików pochodzących z nowszej lub wcześniejszej wersji pakietu, niż wersja instalowana.
Jeśli otrzymałeś komunikat o błędzie, zwróć uwagę na to, jakich plików potrzebuje instalator RPM. Może być konieczne uprzednie zainstalowanie innego pakietu RPM, albo też nowszej ( lub starszej) wersji tego samego pakietu.
Czasem trudno jest zorientować się, jak naprawić błąd zależności, ponieważ komunikat nie informuje, z którego pakietu pochodzi potrzebny plik:
#rpm -Uvh gnumeric*
error: failed dependencies:
libxml.so.0 is needed by gnumeric-0.27-1
[root@localhost RPMS]#
W powyższym przykładzie chcesz zainstalować arkusz kalkualcyjny gnumeric, brakuje jednak pliku libxml.so.0. Możesz wpisać polecenie rpm -q libxml, aby przekonać się, czy istnieje pakiet libxml. Jeśli tak, możesz wpisać rpm -qpl libxml*, aby stwierdzić, czy plik libxml.so.0 znajduje się w pakiecie libxml.
Jeśli tak ( a tak jest rzeczywiście), wtedy wiesz, że przed zainstalowaniem pakietu RPM gnumeric musisz zainstalować pakiet RPM libxml.
Usuwanie oprogramowania
Aplikacje zainstalowane jako pakiety RPM są łatwe do usunięcia. Aby odinstalować pakiet
Pakiet RPM, wpisz następujące polecenie:
rpm -e [nazwa_pakietu]
Gdy zamierzasz usunąć pakiet, nie wpisuj pełnej nazwy pliku RPM, a tylko nazwę oprogramowania. Aby np. usunąć z systemu Apache, wpisz
# rpm -e apache
a nie
# rpm -e apache-1.3.12-20.i.386.html
Wszystkie pliki zainstalowane przez ten pakiet zostaną usunięte.