Всъщност през последните дни се чудех дали не бъркаме генерално. Искам да кажа че това усещане за сухота може би се дължи на това че форума е станал прекалено технически. В смисъл че се обяснява как а не и защо. Може би един начинаещ идва тук с проблема си и очаква стюардеса която с усмивка да му помогне а не атвеян рошав хакер говорещ на някакъв странен диалект и то много пестеливо. Питам се в отговор на въпроса "как да инсталирам програма Х" давайки линка към rpm.org или изплювайки командата rpm Uhv ..... дали не вредя повече отколкото помагам. Искам да кажа че сега през лятото е пълно с въпроси на начинаещи свързани с ИНСТАЛАЦИЯ и настройка на Linux Питам се ако им даваме само готови отговори дали няма да затвърдим погрешното впечатление че и при Linux-а както и при джама нещата се оправят по един начин и не е необходимо да се задълбаваш повече. Питам се дали не убиваме по тоя начин зачатъците на свободно и критично мислене (въобще). И наесен когато ваканцията и свободното време свършат а вече ще е излязла кракнатата версия на Windows 7 колко ще продължат да ровят из /etc Дали технологията не измества по този начин философията, идеята, логиката, увереността ако щете че всичко е възможно и по силите ми нищо че съм начинаещ. Дали не трябва освен КАК да обясняваме и ЗАЩО Такива въпроси ми бръмчат из главата. Мисля освен това че на хората не им се чете много Даже и търсачка не им се ползва много много. Ако има уроци - това хубаво но доколкото се познаваме и това ще е обемисто и сухо (т.е. трудносмилаемо в началото) Може би трябва да има няколко къси статии в които има повече отговори на въпросите ЗАЩО и повече линкове към подробностите на въпроса КАК Незнам как гледата на тая идея Обмислях и как да я изложа пред вас за обсъждане защото не съм сигурен дали се изразявам правилно Затова написах една "бележка" за инсталиране на пакети в която няма абсолютно нищо оригинално. Ето я:
Вече имаме прясно инсталиран Linux. Предизвикано от необходимостта или просто от любопитство се налага да инсталираме или премахнем някоя програма. Тогава възникват доста въпроси които освен че изглеждат доста сложни зависят и от конкретната дистрибуция. Различните дистрибуции ползват различни пакетни системи за разпространяване на програмите. Например Debian и базираните на него използват deb. RedHat и дериватите и, Mandriva, SuSe и др. използват rpm. Освен пакетирането и компресирането на програмата пакетната система върши и една много важна работа – проследява зависимостите. Например ако искаме да инсталираме програмата X то пакетната система ще разбере че за инсталацията ще трябва Y а може би и Z и ще предложи да бъдат инсталирани и те.
ОТКЛОНЕНИЕ: В Linux важи правилото да се ползват много на брой програми които са тясно специализирани. Например програма „А“, която показва на екрана буквата А. Всяка друга програма, чиято работа е да извежда текст на екрана, вместо да съдържа в себе си кода за извеждане на буквата А, използва програмката „А“. От тук следва че да ни работи програмата за извеждане на текст, трябва да е инсталирана и програмата „А“. Тази обвързаност и проследяването и са известни като dependency hell.
Това обаче не означава че не можем да инсталираме по друг начин – например от сорс. Напротив – може, а даже в някои случаи е препоръчително, но тогава ние ще трябва да осигурим зависимостите.
Добре. Нека да видим как става това с rpm базирана дистрибуция (в случая Fedora11). Нека предположим че искаме да инсталираме mc (
http://www.midnight-commander.org). Ако я има в хранилището/хранилищата (repository или съкратено repo) описани в системата ни тогава е лесно.
ОТКЛОНЕНИЕ: Хранилищата са складове на пакети (програми) които са с проверени зависимости, компилирани за съответната процесорна архитектура (i386, x86_64, ppc и т.н. ) и подбрани спрямо вижданията на общността. Освен това има и неофициални repo-та които допълват основните. Например Fedora не включва в изданията си поддръжка на mp3 формата защото не е отворен. В същото време пакетите осигуряващи слушането на mp3 са в друго repo – rpmfusion.
Отваряме конзола с root-ски права и пишем yum install mc. След проверка на зависимостите ще ви бъде предложено да потвърдите инсталацията ( може и да бъде предложен и цял списък от програми ). Това обикновено е типичния случай на инсталация. В повечето инструкции за инсталиране на пакети (за Fedora) ще го срещнете по този начин.
Съществува и още по-лесен начин – чрез търсене през някаква графична обвивка на yum – например packagekit (
http://www.packagekit.org/) , yumex (
http://www.yum-extender.org/blog/) или smart (
http://labix.org/smart). Ако сте свикнали с Debian може да ползватe synaptic.
Ок. А ако го няма в repo-то? Тогава търсим в интернет, намираме и сваляме пакет с някакво подобно име mc-4.6.3-6.20081224svn425.fc11.x86_64.rpm. Отваряме любимата root-ска конзола и пишем rpm -uhv mc-4.6.3-6.20081224svn425.fc11.x86_64.rpm. Rpm командата е с много параметри и е изключително гъвкава. За описанието и ще е необходимо доста време и място, абе цяла книга, но тя вече е написана
http://www.rpm.org/max-rpm ОТКЛОНЕНИЕ: Йерархията е следната: Най ниско е rpm. За да се улесни работата с различните параметри на командата и за да е по-ясен и разбираем синтаксиса са написани скриптове – например yum е скрипт. За да е още по-лесно и нещата да стават с цъкане на мишката са написани графичните програмки (по-точно frontend-и)
Представете си че е излязла нова версия на mc Няма го в repo-тата защото още не е компилиран по някаква причина. Ако не искаме да да чакаме сваляме сорса (изходния код) и го компилираме. Дотук ставаше дума за инсталиране на пакети под Fedora (RedHat, CentOS и т.н.) и до известна степен е специфично за дистрибуцията. Инсталирането от сорс като техника и последователност, е валидно за всички видове дистрибуции.
Та вече сме свалили от
http://www.midnight-commander.org/downloads/ файла mc-4.7.0-pre1.tar.gz или mc-4.7.0-pre1.tar.bz2. Това са архивирани и компресирани файлове с изходния код (source code) Декомпресираме и деархивираме с командата (в конзолата без която не можем) tar xzvf mc-4.7.0-pre1.tar.gz или tar xjvf mc-4.7.0-pre1.tar.bz2 (различието в параметрите на командата tar е защото имаме различев вид компресия – gz и bz2) В резултат на тази магия имаме директория mc-4.7.0-pre1 в която смело влизаме с cd и се оглеждаме с ls или ls – l. Забелязваме един зелен файл configure Това е конфигурационен скрипт. При изпълнението му се събира информация за това каква е системата, какво има и какво няма инсталирано за да завърши компилацията успешно. Могат да се задават настройки за компилиране и т.н. Тъй като има различия в дистрибуциите е хубаво да се пусне скрипта с опция хелп. Например ./configure –help. Излиза дълъг списък с параметри като е отбелязано какви са те по подразбиране. Те обаче може да не са същите като за вашата система и затова е добре да ги коригирате. Например по подразбиране mc ще се инсталира в /usr/local но конвенцията на Fedora да се инсталира в /usr. Така че след разглеждането на хелпа можем да стартираме ./configure –prefix=/usr. Можем да добавим и още параметри според желанията ни. В резултат от изпълнението на скрипта или ще имаме подготвени инструкции за компилиране или съобщения за неудовлетворени зависимости (е това вече е dependency hell)
Ако всичко мине добре и без грешки минаваме към същинската компилация. Това става с командата make. Ако и тук всичко е О.К. Изпълняваме make install но вече с root-ски права - su – c “make ustall“, sudo make install и т.н. Защо? Защото предните две команди работят локално, в рамките на правата и пространството на конкретния потребител. Командата make install върши само едно – копира компилираните файлове в различни директории ( /usr/bin/, /etc и където още е необходимо). Тъй като това са глобални директории необходими са и глобални привилегии. В противен случай програмата ще може да се изпълнява само от юзъра който я е компилирал.
Надявам се сега да съм по-ясен Нека обсъдим това Нека намерим формата и начина не само да решим проблема на някого но и да му покажем многообразието на Linux-а Това че невъзможни неща няма а има неща които немогат да станат СЕГА. Мисля че ако някой допълни бележката с инсталация Debian/Ubuntu Slackware Gentoo SuSe Mandriva и май сме готови. Може bloody mary аааа ъъъъъъ исках да кажа bop_bop_mara
да го ковне на входа на секцията за начинаещи Мисля че още няколко бележки на основни базови теми могат да оформят нещо като визитка Като листовка така че даже да не се налага и да ползваш търсачката на първо време Та това е Извинете ме за дългото писане и обърканите мили но не мога да ви мисля - на мен ми олекна и почна да ми се изяснява
Наздраве и лека нощ