Home    Решения    Услуги    Download    Публикации    Работа    Продукти    Документи
 

 

 
Print this page/Отпечатай тази страница  

Инсталиране на софтуер от изходния код

от Петър Върбанов

  Нека предположим, че Linux дистрибуцията ви е доста поостаряла и докато чакате новият "release" сте се натъкнали на чудесна според описанието програма, която бихте желали да инсталирате. В тази статия ще се опитам НАЙ-БЕГЛО да Ви ориентирам в не чак толкова сложният процес на компилиране и инсталиране на софтуер за Linux.

  Компилирането /и в последствие инсталирането/ на софтуер е основен момент в работата с Linux. Съществуват няколко начина на инсталиране на софтуер, но най-трудоемкият / но и най-добър/ си остава компилирането и инсталирането от изходния код на дадена програма . Това Ви позволява да компилирате съответната програма специално за вашата машина без да се притеснявате, че нещо ще се обърка. Повечето, ако не и всички Linux дистрибуции идват с пълен набор от инструменти за компилиране на софтуер, най-вече gcc, g++, make и autoconf. Последните два опростяват значително процеса на компилиране. Разбира се най-напред се нуждаете от самия изходен код , който можете да download-нете от безброй сървъри, които ви дават тази възможност. Най-вероятно програмата ще е архивирана или в .tar или в .tar.gz формат. Това са основните, но не и единствените формати. Всъщност ако имате програмата в .tar формат това не означава, че тя е компресирана. Командата tar не компресира, а само представя цели директории с файловете и поддиректории като един цял файл /архив/. Командата gzip извършва самото компресиране. Ако програмата е в .tar формат, за да я "деархивирате" изпълнете

   tar xvf [program].tar

 a ako е в .tar.gz формат:

  tar xvfz [program].tar.gz

 и в двата случая евентуално ще се създадат допълнителни директории, които вече съдържат изходния код на софтуера. Първата задача при инсталирането на дадена програма е да прочетете всички помощни файлове които идват заедно с изходния код, а именно README, INSTALL, TODO, HOWTO и така нататък. Най-важният от всички тях е INSTALL, който ще ви даде цялата необходима информация за инсталирането на съответната програма. Този файл може да е дълъг едва 5-6 реда, споменавайки само основните стъпки на инсталиране, но би могъл и да е няколко страници, описвайки даже някои често срещани проблеми при инсталирането , всичко това зависи от спецификата на програмата и най-вече от стила и настроението на нейния автор. Добре е да се прочете и README-то тъй като понякога инструкциите за инсталирането са там, той съдържа и някои общи положения, касаещи продукта, така че е полезно да сме запознати със съдържанието му. След като вече сме прегледали гореспоменатите файлове можем да пристъпим към същинското инсталиране. За пример ще вземем една малка програмка наречена Nmap. Първата стъпка е да стартираме "configure"-файла:

 ./configure

по този начин системата определя дали разполагаме с необходимия софтуер за инсталирането на Nmap, резултатът ще е списък подобен на:

loading cache ./config.cache
checking for gcc... (cached) gcc
checking whether the C compiler (gcc) works... yes
checking whether we are using GNU C... (cached) yes

ако скрипта приключва без да докладва за някакъв проблем значи всичко е наред и можем да продължаваме.Това обаче не означава, че трябва да се задоволяваме само с това.  "./configure" може да бъде стартиран с множество опции като най-полезната е "--prefix=", която Ви позволява да инсталирате дадена програма в директория, различна от тази по подразбиране, например във вашата home-директория без да ви трябват root провилегии. Например:

 ./configure --prefix=/home/pesho

по този начин програмата ще се инсталира в указаната директория, до която Вие имате достьп. Друга полезна опция на "configure" e "--with-" с която указвате пьтя до специфичен файл или библиотека нужна за компилирането на софтуер-a. Да преположим, че инсталираме някоя програма за Gnome и "./configure" излиза с грешка, че не може да намери Gnome. В такьв случай ако сме сигурни,че имаме инсталиран Gnome в директория /ues/local/gnome, просто стартираме ./configure така:

./configure --with-gnome=/usr/local/gnome

configure има още доста опции чиито описания можете да извикате с опция --help. При положение, че нито файльт "configure" нито пьк "makefile" са налице е добра идея да изпьлним следните три команди:

 aclocal
 autoconf
 autogen.sh

Така ще генерираме configure-файловете и ще стартираме скрипта за генериране ако такьв сьществува.Друг проблем , с който можем да се сбльскаме е липсата на "configure" и "Makefile", но пьк да разполагаме с "Imakefile". Тогава изпълняваме:

 xmkmf -a 

При това положение пьрвият етап от инсталирането приключи. Готови сме да компилираме самия код. Това става с команда "make":

 make 

"make" изчита файла "makefile" сьдьржащ всички команди необходими за компилирането на програмата и сьответно ги изпьлнява. На този етап ще бъде отпечатано огромно количество от объркваща информация на екрана изглеждаща горе-долу така:

Compiling libpcap
make[1]: Entering directory `/tmp/nmap-2.3BETA5/libpcap-possiblymodified'
gcc -O2 -I. -Ilinux-include -DHAVE_MALLOC_H=3D1
-DHAVE_ETHER_HOSTTON=3D1 -DHAVE_STRERROR=3D1
-DHAVE_NET_IF_ARP_H=3D1 -c ./pcap-linux.c
gcc -O2 -I. -Ilinux-include -DHAVE_MALLOC_H=3D1
-DHAVE_ETHER_HOSTTON=3D1 -DHAVE_STRERROR=3D1
-DHAVE_NET_IF_ARP_H=3D1 -c ./pcap.c

въпреки, че изглежда доста сложно всъщност това е просто информация показваща какво се компилира в момента и е само за сведение. При положение, че всичко приключи без проблеми можем да продължим нататък. Идва момента, в който за да продължите трябва да имате root права. С команда "su" и последващо задаване на паролата придобивате тези права. Остава само да инсталираме програмата с командата

make install

Tази последна стъпка отнема най-малко време и по принцип не би трябвало да срещнете трудност точно тук. Остава само да стартирате програмата и да и се наслаждавате!

Компилирането и инсталирането на софтуер от изходния код може би изгелжда изключително трудоемко и непосилно за начинаещите в Linux и UNIX, но с повече тьрпение и практика това ще се превьрне в рутина, която ще Ви позволи да се вьзползвате пьлноценно от богатството на Open Source-а. 

Напред кьм freshmeat.net !!! ;) 

Петър Върбанов