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 packagename
pozwala nam zainstalować pakiety wraz z ich zależnościami.apt-get remove packagename
usuwa dany pakiet wraz jego zależnościami.apt-get purge packagename
usuwa pakiet jego zależności i pliki konfiguracyjne.apt-get update
instaluje 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