от Курс за ССОК
Лекцията запознава читателя с начините за разпространяване на софтуер в Линукс и разликите между отделните дистрибуции.
Как се разпространява софтуер в Линукс
Всички програми в една Линукс дистрибуция са достъпни във вид на файлове, които могат да се инсталират, т.нар. пакети. Пакетите представляват архиви съдържащи софтуер, документация или други файлове, които ще бъдат инсталирани и служебна информация, която се използва от програмите за инсталация/премахване на пакетите.
За разлика от други ОС пакетите представляват файл с данни, а не изпълним файл. Операциите по инсталиране, премахване, обновяване и др. се изпълняват от системни програми по един и същ начин за всички пакети.
Пакетите обикновено са събрани в групи и са организирани в хранилища, които са достъпни през Интернет или на диск. Всички съвременни дистрибуции използват хранилища в Интернет.
Процесът на създаване, разпространение и инсталиране на софтуер протича в следните стъпки:
- Задачи за програмиста на приложението
- Писане на кода на програмата
- Компилиране на кода и създаване на изпълнима програма
- Определяне на файловете, които са нужни за правилна работа на програмата - изпълним файл, конфигурационен файл, файлове с данни
- Пакетиране на горните файлове в пакет за инсталация
- Публикуване на пакета в Интернет - на сайта на проекта, в хранилищата на дистрибуциите и т.н.
- Задачи за администратора на системата
- Определяне на приложението, което ни е необходимо - име, име на пакета, хранилище и т.н.
- Стартиране на програма за инсталация на пакета. Трябва да свалим пакета от Интернет, ако програмата неможе да го направи автоматично (или пакета не се намира в хранилището).
Разлики между дистрибуциите
Дистрибуция се нарича съвкупността от Линукс ядрото и множество допълнителни системни и потребителски програми. Разликите между дистрибуциите са в списъка на достъпните програми, идеологията зад проекта или начина на организация на пакетите. Пр. има дистрибуции създадени с цел игра и в техните хранилища има преимуществено игри. Това не значи обаче, че неможем да инсталираме и други програми ако са в подходящия формат.
Най-големи са разликите в идеологията зад дистрибуцията. Дали ще разпространява само софтуер с отворен код или всякакъв софтуер за Линукс. Големите дистрибуции използват само софтуер с отворен код, но поддържат и допълнителни хранилища с комерсиален софтуер за Линукс. Използването им обаче трябва да се конфигурира ръчно.
Според формата на пакетите дистрибуциите се делят на два основни вида. Използващи rpm или .deb пакети. По-долу ще разгледаме само rpm формата, т.к. той се използва в дистрибуцията Федора.
Инсталиране, премахване и обновяване на програми
За да инсталирате програма е необходимо да знаете името на пакета и. В повечето случаи това име съвпада с името на програмата. Пр. openoffice.org-impress е името на пакета на програмата за презентации Impress от офис пакета OpenOffice.org. Можете да извършвате търсене по име/ключови думи чрез програмата за управление на пекети или от уеб сайта на вашата дистрибуция. За Федора това е https://admin.fedoraproject.org/pkgdb
Инсталиране чрез графична програма
В съвременните дистрибуции е налична графичната програма за управление на пакети PackageKit. gnome-packagekit е името на пакета, който предоставя интеграция на тази програма с работната среда GNOME.
PackageKit може да се интегрира с други програми от вашата работна среда посредством различни добавки (plugins). Например PackageKit се интегрира с програмата за гледане на филми или слушане на музика, за да инсталира подходящите кодеци, когато отворите файл, който неможе да бъде възпроизведен.
Използването на PackageKit в графичен режим е интуитивно. Можете да разгледате страницата с прихванати екрани за повече информация: http://www.packagekit.org/pk-screenshots.html
Инсталиране в текстов режим
PackageKit е наличен и в текстов режим, но няма да се спираме на него. Ако работите на Линукс дистрибуции използващи различни формати за пакети е полезно да изучите командите на PackageKit в текстов режим - това ще ви помогне по-лесно да администрирате няколко различни системи.
Федора и много други популярни дистрибуции използват пакетния формат rpm. Yum е помощна програма, работеща съвместо с rpm. Т.к. много от програмите зависят (имат нужда) от други програми или програмни библиотеки те трябва да бъдат инсталирани заедно, за да функционират. rpm неможе да се справи с този проблем и затова на помощ идва yum. Ще разгледаме някои от основните команди за работа в текстов режим.
За инсталиране използваме командата yum install <име_на_пакет>. Тя ще се свърже с хранилището, ще провери дали има пакет с даденото име, ще определи дали е необходимо да се инсталират допълнителни пакети, за да функционира програмата правилно и ще изкара списък с имената на тези пакети на екрана. След натискането на "y" (yes), yum ще свали от Интернет пакетите и ще ги инсталира един по един.
Ако желаем да инсталираме програма, която не е налична в хранилището трябва да свалим rpm файла от Интернет и след това: yum localinstall <име_на_файл>.rpm. Тази команда инструктира yum да инсталира сваления файл като провери зависимостите и потърси в хранилищата всички необходими допълнителни пакети. Процеса протича по същия начин както при инсталиране на пакети директно от хранилището.
Премахването на вече ненужна програма става по подобен начин: yum remove <име_на_пакет>. Ако имате достатъчно място на диска на компютъра и инсталираните програми не са в конфликт с програми, които искате да инсталирате (обикновено не са), то тогава не премахвайте ненужните програми, а просто не ги използвайте.
Обновяването става с yum update <име_на_пакет>. Ако пропуснете името на пакета yum ще обнови всички инсталирани пакети, за които е налична по-нова версия.
Важно
Инсталиране, обновяване и премахване на пакети (т.е. операции които ще променят компютърната конфигурация) се извършва винаги като root. Търсене, информация за пакет, листинг на файловете и др. операции, които нямат ефект върху компютърната конфигурация обикновено могат да се извършват като обикновен потребител.
Повече за yum може да намерите на:
http://fedoraproject.org/wiki/Docs/Drafts/SoftwareManagementGuide
Информация за rpm и полезни команди можете да намерите на:
http://docs.fedoraproject.org/drafts/rpm-guide-en/index.html
Упражнения
Задача : Да се определи кои файлове влизат в състава на даден пакет, който е инсталиран.
Решение: Използваме командата rpm -ql <име-на-пакет>, за да изведем списък с файловете на пакета.
$ rpm -ql firefox
/usr/bin/firefox
/usr/lib/firefox-3.0.5
/usr/lib/firefox-3.0.5/.autoreg
/usr/lib/firefox-3.0.5/LICENSE
/usr/lib/firefox-3.0.5/README.txt
/usr/lib/firefox-3.0.5/application.ini
/usr/lib/firefox-3.0.5/blocklist.xml
.....
Задача: Да се определи даден файл от кой пакет е.
Решение: Използваме rpm -qf <път-до-файл>
$ rpm -qf /usr/bin/firefox
firefox-3.0.5-1.el5_2
Задача: Извеждане на информация за даден пакет
Решение: Използваме rpm -qi <име-на-пакет> или yum info <име-на-пакет>
$ rpm -qi firefox
Name : firefox Relocations: (not relocatable)
Version : 3.0.5 Vendor: Red Hat, Inc.
Release : 1.el5_2 Build Date: Tue 09 Dec 2008 05:14:27 PM EET
Install Date: Tue 30 Dec 2008 03:00:05 PM EET Build Host: hs20-bc1-7.build.redhat.com
Group : Applications/Internet Source RPM: firefox- 3.0.5-1.el5_2.src.rpm
Size : 15046479 License: MPLv1.1 or GPLv2+ or LGPLv2+
Signature : (none)
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL : http://www.mozilla.org/projects/firefox/
Summary : Mozilla Firefox Web browser.
Description :
Mozilla Firefox is an open-source web browser, designed for standards
compliance, performance and portability.
Задача: Търсене на пакет
Решение: Използваме yum search <ключова-дума>. Пр. за да потърсим програма уеб браузър може да пробваме: yum search browser