Лекция 8

Конфигуриране на системата. Конфигурационен файл /etc/fstab. Прикачване и разкачване на устройства и опции на командата mount. Пакетни системи. Видове пакетни системи – tgz, rpm, deb. Инсталиране на бинарни пакети. Пакетна система на Slackware Linux. Команди за инсталиране, премахване и обновяване на пакети. Програми на трети страни за инсталация и създаване на пакети. Обновяване на системата през Интернет.


Както бе споменато още в началото, всеки хард диск или дял от хард диск представляват файлове в директорията /dev. За да може да се използва хард диска е необходимо преди това той да се монтира или прикачи. Командите, които монтират или демонтират блоково устройство (а такива са всички хард дискове, CD-ROM и др.) са mount (за монтиране) и umount (за демонтиране). Mount и umount използват за своята работа два важни файла – fstab и mtab. Fstab служи за описание на файловите системи, които може да се монтират, а в mtab се описват монтираните в момента файлови системи. Това описание се извършва автоматично от mount и umount. mount има множество опции, по-важните от които са:


Повечето файлови системи имат собствени опции, които се различават както по описание, така и по значение. Това, както и техния брой (над 30) прави запомнянето на всяка опция трудна задача. Информация за отделните файлови системи и техните опции може да се намери на man страницата на командата mount.

Командата umount има значително по-малко опиции от mount. По-важните от тях са:

Ето няколко примера за използването на двете команди:


#mount /dev/hdc1 /mnt/hd – монтира /dev/hdc1 в директорията /mnt/hd

#mount -t ntfs /dev/hda1 /mnt/hd – монтира /dev/hda1 в директорията /mnt/hd, като задава и типа на файловта система

#mount /dev/hda1 /mnt/hd -o ro – монтира файловата система в режим само за четене

# mount -r /dev/hda1 /mnt/hd – същото, но записано по друг начин

#umount /mnt/hd – демонтира файловата система прикачена към директорията /mnt/hd


Командата mount може да се използва и за монтиране на побитово копирани от дискета, CD-ROM или хард диск файлове. Пример за такива файлове са свалените от Интернет дистрибуции на Линукс с разширение iso. Ето как става това:

#mount /home/dino/knoppix-3.4.iso /mnt/tmp -o loop

След тази команда вие ще може да разгледате съдържанието на файла knoppix-3.4.iso преди да го запишете на CD-ROM.

Един от най-важните файлове в Линукс е файла fstab. Тук се описват файловите системи които трябва да се монтират при стартиране на операционната система и точките в които те се монтират. Освен това тук се задават и опции специфични за дадената файлова система. Един типичен fstab файл има следния вид:


/dev/hda6 swap swap defaults 0 0

/dev/hda7 / reiserfs defaults 1 1

/dev/hda8 /mnt/storage vfat uid=1000,users,iocharset=cp1251,codepage=866,exec,umask=000 0 0

/dev/hda1 /mnt/hd ntfs users,exec,uid=1000,iocharset=cp1251,ro 0 0

/dev/sr0 /mnt/cdrw iso9660 user,unhide,noauto,owner,users,iocharset=cp1251,exec 0 0

/dev/hdb /mnt/cdrom iso9660 user,unhide,noauto,owner,ro,users,iocharset=cp1251,exec 0 0

/dev/fd0 /mnt/floppy auto noauto,owner 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

proc /proc proc defaults 0 0


fstab е разделен на 5 колони. Първата от тях указва за кое устройство става дума. Втората колона задава т.нар. точка на монтиране, третата – типа на файловата система. Четвъртата колона е за задаване на опции към файловата система. Последната колона се състои от две числа. Първото от тях оказва дали на файловата система е позволено да се прави dump, а второто указва дали файловата система да се проверява за грешки при стартиране на операционната система. То трябва да бъде 1 за root файловата система (там където е инсталиран Linux, като в случая това е /dev/hda7), 2 за останалите и 0 за тези, които не трябва да се проверяват. Всички файлови системи зададени във fstab ще се монтират автоматично при стартиране на операционната система. Освен това за описаните тук файлови системи може да се използва и съкратен запис на командата mount:

#mount /mnt/storage

вместо

#mount /dev/hda8 /mnt/storage


Файла mtab се попълва автоматично и неговия формат не е толкова важен, затова няма да бъде разгледан.

Всяка Линукс дистрибуция се разпространява с множество по-малки програми и приложения. Всички те са организирани в пакети. Пакета е набор от файлове, които са архивирани и имат определена структура на архива. Тази структура е различна за различните видове пакетни системи. Тя е най-проста в пакетите на Slackware и най-сложна за пакетите на Debian. По средата стои пакетната система на Red Hat. Видовете пакетни системи се разпознават по разширението на файла – tgz за Slackware, rpm за Red Hat, Fedora, Mandrake ,SUSE и deb за Debian, Knoppix. От тях единствено tgz не притежава проверка на зависимости и обновяване през Интернет. Тук ще наблегна на пакетната система на Slackware, но в края ще бъдат разгледани и пакетните системи rpm и deb.

Пакета на Slackware представлява архивен файл с разширение tgz. Освен файловете на програмата във файла се намира и една директория наречена install. Тук се може да има следните файлове:

Всеки пакет има следния вид на името:

coreutils-5.2.1-i486-1.tgz

Тук coreutils е името на пакета, а 5.2.1 е неговата версия. i486 е архитектурата за която е създаден пакета. В случая това пакета е създаден за Intel процесор (или съвместим) и ползва оптимизации залегнали в архитектурата на 486 поколението процесори. Това означава, че този пакет няма да работи на машини с процесори по-ниски от 486 (386 например). Много дистрибуции предлагат своите пакети в няколко варианта – например за 586,486 и 386. Използването на пакет компилиран за ниска версия на процесора води до намалено бързодействие, особено за натоварващи приложения като сървъри. Последната цифра е т.нар. build номер. Разширението показва, че става дума за пакет на Slackware.

Slackware притежава вградени приложения за инсталиране, премахване и обновяване на пакети. Това съответно са installpkg, removepkg и upgradepkg. Опциите на installpkg са:


Опциите на removepkg са:


И тук може да премахнете пакет инсталиран в различна от / директория. Това става така:

#ROOT=/mnt removepkg package_name


Опциите на upgradepkg са:


Ето и няколко примера за работа с пакети:

#installpkg coreutils-5.2.1-i486-1.tgz

#installpkg -root /mnt k3b-0.11.9-i686-1.tgz

#upgradepkg coreutils-5.2.2-i486-1.tgz

#removepkg apache-1.3.29-i486-2.tgz


Освен тези програми за работа с пакети Slackware притежава и приложението наречено pkgtool. Това е приложение, което използва текстови диалогови кутии и менюта. Друга възможност за улеснено манипулиране с пакети е kpackage. Това е вградено в KDE приложение, което може да работи с пакетната система на Slackware.

Тъй като пакетната система на Slackware не разполага с обновяване през Интернет и проверка на зависимости в Мрежата се появиха приложения, които запълниха тази ниша. Някои от тях влязоха в EXTRA диска на Slackware, което означава, че са достатъчно сигурни за работа. Това са приложенията swaret и slapt-get. И двете притежават възможност за автоматично търсене и обновяване на пакети, както и поддръжка на проверка на зависимости. Разбира се, те са далеч от функционалността на приложения като apt-get на Debian, но все пак работата която вършат е много добра за техния размер. И двете приложения има зачатъци на графичен интерфейс, който прави работата с тях по-удобна.

Например обновяването на дистрибуцията със swaret става по следния елементарен начин:

#swaret --update

swaret 1.6.2-1


[ ftp://ftp.mirrors.unixsol.org/slackware/slackware-current/ ]

### Fetching CHECKSUMS List File... DONE!

FILELIST List File... DONE!

Packages Descriptions... DONE!

Extra Packages Descriptions... DONE!

ChangeLog... DONE!

#swaret –upgrade

След това програмата ще ви запита, кои от намерените нови пакети да инсталира като можете да избирате пакетите един по един или да кажете да се инсталират всички. Освен това преди да започенете обновяване е добре да добавите български огледала на версията current на Slackware. Това става като промените файла /etc/swaret.conf.

Ето и линкове на два огледални сайта на Slackware в България:

ftp://ftp.mirrors.unixsol.org/slackware/slackware-current/

ftp://mirrors.evrocom.net/slackware/slackware-current/

Чрез swaret може да инсталирате, обновявате и премахвате пакети точно както и с вградените инструменти, но в единен интерфейс. Не по-малко важен е и факта, че swaret притежва интерфейс на български.

Можете да намерите swaret на официалната му страница в Интернет:http://swaret.org/

Българския превод може да намерите на: http://swaret.org/i18n/swaret.lang.BULGARIAN

Една от най-широко разпространените пакетни системи е rpm (Red Hat Package Manager) на Red Hat. Тя се използва в множество популярни дистрибуции като Red Hat, Mandrake, SUSE, Fedora и др. rmp поддържа обновяване през Интернет и проверка на зависимости. Програмата чрез която се инсталират, премахват и обновяват пакети се нарича rpm. Ето примери за нейното използване:

#rpm -i foobar-1.0-1.i386.rpm – инсталиране на пакета foobar-1.0-1.i386.rpm

#rpm --force -i foobar-1.0-1.i386.rpm – принудително инсталиране на пакета. Използването на тази опция е опасно за дистрибуцията.

#rpm --nodeps -i foobar-1.0-1.i386.rpm – инсталиране на пакета без проверка на зависимости. Използването на тази опция също не се препоръчва.

#rpm -i ftp://ftp.redhat.com/pub/redhat/rh-2.0-beta/RPMS/foobar-1.0-1.i386.rpm – инсталиране на пакета от Интернет.

#rpm -e foobar – премахване на пакета foobar

#rpm --nodeps -e foobar – премахване на пакета foobar без проверка на зависимост. След това е възможно програмите, нуждаещи се от този пакет да не работят коректно или въобще да не работят.

#rpm -U foobar-1.1-1.i386.rpm – обновяване на пакета.

Това са много малко от опциите на програмата rpm (за повече информация man rpm).

Другия широко разпространен пакетен формат е deb. Приложението за работа с deb пакети се нарича dpkg. Ето примери за неговото използване:

#dpkg -i xpdf_2.02pl1-1_all.deb – инсталира пакета xpdf_2.02pl1

# dpkg -r xpdf_2.02pl1-1_all – премахва пакета xpdf_2.02pl1

#dpkg -l – показва списък с инсталираните пакетите

Използването на dpkg е сложна и неприятна дейност, особено за пакети с много зависимости. Затова е по-добре да се използва инструмента apt. Той изцяло стъпва върху dpkg за основните дейности по премахването или инсталирането на пакетите, но тук самото apt се грижи да доставката на файловете необходими за инсталирането на пакета. Преди да се използва apt трябва да се конфигурира. Тази конфигурация включва задаване на източници на пакети във файла /etc/apt/sources.list. Той има следния вид:

deb http://security.debian.org/ stable/updates main contrib non-free

deb http://mirrors.ludost.net/debian stable main contrib non-free

deb http://ftp.bg.debian.org/debian stable main contrib non-free

След това е необходимо само да се изпълнят командите:

#apt-get update

#apt-get upgrade

Инсталирането на пакети става по следния начин:

#apt-get install xpdf

Тази команда инсталира пакета xpdf и всички пакети необходими за неговата работа.

Чрез apt-get може и да се премахват пакети:

# apt-get remove xpdf

Това обаче не премахва пакетите инсталирани, за да се осигури нормална работа на пакета xpdf.

Информация за даден пакет може да се покаже с програмата apt-cache:

$ apt-cache show xpdf

Освен конфигурирането почти всички действия на apt-get могат да се извършат и с интерактивната програма aptitude. Употребата й е препоръчителна за не напреднали потребители.

Повече информация за пакетната система и програмите които работят с нея може да намерите на адрес http://debian-book.debian-nikola.homelinux.net/src/htmlsplit/node73.html като информацията е на български.

5