Filesystems-Volumes and Directories
Filesystem jest zawsze montowany jako katalog, więc cały system katalogów jest zawsze montowany do / co znów jest korzeniem całej struktury katalogów w Linux'ie. Przy instalacji systemu jest dobra praktyką tworzenie osobnych punktów montowania dla takich struktur jak boot/, home/, usr/, var/. Daje nam to większe pole manewru, np. umiejscowienie katalogu home/ na innej partycji ułatwia backup.
GRUB and Filesystems
Czasami musimy sami zainstalować GRUB(GRand Unified Bootloader) i dodać wskaźnik do MBR(Master Boot Loader), możemy tego dokonać wykorzystując komendę grub-install ona to dodaje wskaźnik do MBR jak i używa pierwszy możliwy twardy dysk w tym celu. Jeśli chcemy wykonać operacje na innym dysku lub też partycji należy podać ścieżkę grub-install /dev/hda : użyje pierwszego dysku typu PATA zaś komenda grub-install /dev/sda : użyje pierwszego dysku typu SATA lub SCSI. Analogicznie jeśli chcemy zainstalować go na innej partycji dodajemy cyfrę na końcu ścieżki. Gdy chcemy wejść bardziej w ustawienia GRUB podajemy komendę grub co spowoduje że przejdziemy w stan grub>, poprzez wpisanie help dostaniemy informacje o dostępnych komendach. Za pomocą tego programu możemy zrekonstruować ustawienia GRUB.
GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename.] grub>help blocklist FILE boot cat FILE chainloader [--force] FILE clear color NORMAL [HIGHLIGHT] configfile FILE device DRIVE DEVICE displayapm displaymem find FILENAME geometry DRIVE [CYLINDER HEAD SECTOR [ halt [--no-apm] help [--all] [PATTERN ...] hide PARTITION initrd FILE [ARG ...] kernel [--no-mem-option] [--type=TYPE] makeactive map TO_DRIVE FROM_DRIVE md5crypt module FILE [ARG ...] modulenounzip FILE [ARG ...] pager [FLAG] partnew PART TYPE START LEN parttype PART TYPE quit reboot root [DEVICE [HDBIAS]] rootnoverify [DEVICE [HDBIAS]] serial [--unit=UNIT] [--port=PORT] [-- setkey [TO_KEY FROM_KEY] setup [--prefix=DIR] [--stage2=STAGE2_ terminal [--dumb] [--no-echo] [--no-ed terminfo [--name=NAME --cursor-address testvbe MODE unhide PARTITION uppermem KBYTES vbeprobe [MODE] grub>
superblock - każdy system plików jest inny np. ext2, ext3, ..., każdy system plików ma rozmiar jak 5 GB, 10 GB i statusy takie jak wskaźnik zamontowania. W skrócie każdy system plików ma superblok, który zawiera informacje o systemie plików, takie jak:
- typ systemu plików
- rozmiar
- status
- Informacje o innych strukturach metadanych
Tak więc Linux utrzymuje kilka zbędnych kopi tegoż bloku, jest to ważne w pewnych przypadkach zagrożenia, na przykład można użyć kopii zapasowych w celu przywrócenia uszkodzonego podstawowego superblock'u. Następująca komenda wyświetla podstawowy jak i backup superblock'u ulokowanego na /dev/sda1:
[nonus25@localhost ~]$ sudo /sbin/dumpe2fs /dev/sda1 | grep -i superblock dumpe2fs 1.39 (29-May-2006) Primary superblock at 1, Group descriptors at 2-2 Backup superblock at 8193, Group descriptors at 8194-8194 Backup superblock at 24577, Group descriptors at 24578-24578 Backup superblock at 40961, Group descriptors at 40962-40962 Backup superblock at 57345, Group descriptors at 57346-57346 Backup superblock at 73729, Group descriptors at 73730-73730
Pierwszy backup przeważnie na bloku 8193.
Identify and Install Shared Libraries
Linux'ie do uruchomienia pewnych komend/aplikacji wykorzystywane są biblioteki większość ich można znaleźć w katalogach lib/ i usr/lib/. Tak więc czasami aby uruchomić lub zainstalować jakąś aplikacje musimy wiedzieć jakich bibliotek taka aplikacja używa. Aby wyświetlić tego typu informacje służy do tego komenda ldd.
[nonus25@localhost ~]$ ldd /bin/grep
linux-gate.so.1 => (0x00737000)
libpcre.so.0 => /lib/libpcre.so.0 (0x00494000)
libc.so.6 => /lib/libc.so.6 (0x002d7000)
/lib/ld-linux.so.2 (0x002b3000)
[nonus25@localhost ~]$ ldd /bin/ls
linux-gate.so.1 => (0x0017a000)
librt.so.1 => /lib/librt.so.1 (0x00494000)
libacl.so.1 => /lib/libacl.so.1 (0x0047f000)
libselinux.so.1 => /lib/libselinux.so.1 (0x00805000)
libc.so.6 => /lib/libc.so.6 (0x002d7000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00464000)
/lib/ld-linux.so.2 (0x002b3000)
libattr.so.1 => /lib/libattr.so.1 (0x00dba000)
libdl.so.2 => /lib/libdl.so.2 (0x0045d000)
libsepol.so.1 => /lib/libsepol.so.1 (0x007ad000)
Powyższe wykonanie komendy ldd dla dwóch innych komend pokazuje z jakich bibliotek korzysta program.
Komendą do sprawdzenia jakie biblioteki aktualnie buforuje system, jest komenda ldconfig -p a oto wynik komendy :
[nonus25@localhost ~]$ /sbin/ldconfig -p 655 libs found in cache `/etc/ld.so.cache' libz.so.1 (libc6) => /lib/libz.so.1 libz.so.1 (libc6) => /usr/lib/libz.so.1 libyaml-0.so.0 (libc6) => /usr/lib/libyaml-0.so.0
Debain Package Commands
Głównym narzędziem do obsługi pakietów w Debain'ie jest narzędzie zwane Debain Pakage Managment Tool w skrócie dpkg. Wszystkie pakiety obsługiwane przez to narzędzie posiadają rozszerzenie .deb.
Komenda dpkg zdolna jest potwierdzić nam instalacje, podać numer wersji, i podać nam opis. dpkg -l pacagename, a oto przykład:
nonus25@localhost:~$ dpkg -l gedit Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii gedit 2.30.3-0ubuntu official text editor of the GNOME desktop en
Jak widzimy linia zaczyna się od liter ii co daje nam informację o tym że dany pakiet jest zainstalowany. Jeżeli komendę podamy bez pakagename, dpkg -l dostaniemy pełną listę zainstalowanych pakietów w naszym systemie. Komenda dpkg -L pakagename podan nam listę wszystkich plików używanych przez ten pakiet. Następnym ważnym przełącznikiem jest przełącznik -S, komenda dpkg -S path/to/file podaje nam do jakiego pakietu należy dany plik przykład :
nonus25@localhost:~$ dpkg -S /bin/ping iputils-ping: /bin/ping
Gdzie widzimy że plik ping należy do pakietu iputils-ping. Narzędzie służy do instalacji, usuwania pakietów. Więc komenda dpkg -i pakagename zainstaluje nam pakiet, zaś komenda dpkg -r pakegname usunie nam pakiet z sytemu. Należy również pamiętać, że jeżeli posiadamy starszą wersję pakietu to przy instalacji nowej wersji pozbędziemy się plików konfiguracyjnych, tak więc przed instalacją dobrze jest wykonać jakiś backup. Również istnieje drugi sposób usunięcia pakietu, przy którym również usuwane są pliki konfiguracyjne dpkg -P pakagename.
Również przydatnymi narzędziami do zarządzania pakietami są apt-* i aptitude ułatwiają one instalację pakietów które posiadają szereg zależności od innych pakietów. Teraz omówię kilka opcji jakie daje nam narzędzie apt-get
apt-get install packagenamepozwala nam zainstalować pakiety wraz z ich zależnościami.apt-get remove packagenameusuwa dany pakiet wraz jego zależnościami.apt-get purge packagenameusuwa pakiet jego zależności i pliki konfiguracyjne.apt-get updateinstaluje dostępne aktualności
Pliki konfiguracyjne dla apt-* znajdują się w /etc/apt/sources.list plik ten zawiera listę repositories, którą możemy modyfikować. Repositories mogą używać różnych połączeń np. HTTP, FTP, NFS. Narzędzie apt-* umożliwia również przeszukiwanie bazy danych w poszukiwaniu odpowiedniego pakietu. Aby skorzystać z tej opcji należy posłużyć się narzędziem apt-cache search name. Komenda ta wy listuje nam wszystkie pakiety powiązane z naszą nazwą. Komenda aptitude, zastąpić nam może komendy apt-get i apt-cache. Wywołana sama bez opcji przeniesie nas do graficznego interfejsu w konsoli, za którego pomocą możemy zarządzać pakietami.
Red-Hat Package Commands
Pakiety obsługiwane i przeznaczone dla Red-Hat'a posiadają rozszerzenie .rpm. Narzędziem do ich zarządzania jest narzędzie zwane RPM Package Manager, narzędzie to używamy poprzez użycie komendy rpm. Teraz kilka przykładów z wykorzystaniem tej komendy.
[nonus25@localhost ~]$ rpm -q passwd passwd-0.73-2 [nonus25@localhost ~]$ rpm -ql passwd /etc/pam.d/passwd /usr/bin/passwd /usr/share/man/man1/passwd.1.gz [nonus25@localhost ~]$ rpm -qi passwd Name : passwd Relocations: (not relocatable) Version : 0.73 Vendor: CentOS Release : 2 Build Date: Wed 11 Aug 2010 01:42:38 PM IST Install Date: Wed 25 Jan 2012 07:32:36 PM GMT Build Host: builder17.centos.org Group : System Environment/Base Source RPM: passwd-0.73-2.src.rpm Size : 23809 License: BSD Signature : DSA/SHA1, Mon 07 Mar 2011 02:44:28 PM GMT, Key ID a8a447dce8562897 Summary : The passwd utility for setting/changing passwords using PAM Description : The passwd package contains a system utility (passwd) which sets and/or changes passwords, using PAM (Pluggable Authentication Modules). To use passwd, you should have PAM installed on your system.
U góry mamy kilka przykładów z użyciem komendy rpm. Przełącznik -q informuje nas czy pakiet jest zainstalowany czy nie, przełącznik -qi podaje nam listę plików powiązanych z tym pakietem, zaś przełącznik -qi podaje generalne informacje na temat pakietu. Aby wyświetlić listę wszystkich pakietów obecnie zainstalowanych w systemie używamy komendy rpm -qa. Komenda rpm -K packagename sprawdza nam sumę kontrolną pobranego pakietu. I oczywiście aby zainstalować jakiś pakiet posługujemy się komendą rpm -i packagename. Aby zaktualizować dany pakiet mamy dwie komendy do wyboru oto one rpm -U packagename gdzie ta komenda aktualizuje dany pakiet lub jeśli pakiet nie istnieje w systemie instaluje go, rpm -F packagename, ta komenda jest zaś bardziej rygorystyczna i tylko aktualizuje pakiet jeśli on jest zainstalowany w systemie. Aby odinstalować dany pakiet używamy komendy rpm -e packagename. Jedną z głównych słabości rpm jest to, że może nie działać przy instalacji pakietu z zależnościami. Komenda rpm2cpio pozwala nam czytać strumień danych RPM.
Red-Hat posiada również inne narzędzie do zarządzania pakietami i repositories yum. Narzędzie to radzi sobie z zależnościami pakietów i ułatwia cały proces instalacji. Program ten był napisany dla innej dystrybucji Linux'a, z stąd też nazw tego narzędzia yum - Yellowdog Updater Modified. Komenda yum install packagename za instaluje nam pakiet, jeśli zaś pakiet posiada zależności od innych pakietów, program pobierze zależności i zainstaluje niezbędne zależności. Aby usunąć pakiet należy posłużyć się komendą yum erase packagename. Informacje o danym pakiecie możemy uzyskać podając komendę yum info packagename. Polecenie yum check-update sprawdza jakie mogą być wykonane aktualizacje, zaś yum update instaluje aktualizacje. Lista repositories znajduje się /etc/yum.conf.

Brak komentarzy:
Prześlij komentarz