Hello Guest, if you reading this it means you have not yet registered. Please take a second to Click here to register and in a few simple steps, you will be able to enjoy all the many features of our fine community. Please note that nicknames are prohibited lewd or meaningless (no numbers or letters at random) and introduce yourself in the section for you to meet our community.
Przygotowanie Mandriva do kompilacji oprogramowania
Przygotowanie Mandriva do kompilacji oprogramowania
How-To
Przygotowanie Mandriva do kompilacji oprogramowania
============================================= Uwaga :
Opis dotyczy Mandriva w wersji 32 bitowej.
Przy 64 bitowej należy dokonać stosownej korekty opisu
zainstalowaną wersję można sprawdzić poleceniem
Kod:
uname -a
Dla 64 bit kernel-source będzie np. :
kernel-source-2.6.17.5mdv-1-1mdv2007.0.x86_64.rpm
do pobrania np. z ftp
=============================================
Dla kompilacji wymagane są : kernel-devel
gcc
gcc-c++
gcc-cpp glibc-devel
libncurses5-devel
make
automake
autoconf
binutils
m4 jeśli program ma działać w iksach to jeszcze libx11-dev (może to być libx11_6-dev)
Sprawdzamy w konsoli czy mamy zainstalowane potrzebne do kompilacji pakiety
W przykładach widać, że zainstalowany i używany jest kernel-2.6.17.5mdv-1-1mdv2007.0 i są zainstalowane inne potrzebne do kompilacji pliki, w tym kernel-source zgodny z wersją używanego kernela (zgodny numer wersji) - jest bezwzględnie wymagane. kernel-2.6.17.5mdv-1-1mdv2007.0
kernel-source-2.6.17.5mdv-1-1mdv2007.0
Jeżeli właściwy plik kernel-source nie jest zainstalowany musimy go doinstalować.
Do tego musimy mieć skonfigurowane urpmi.
Można to zrobić na kilka sposobów : 1. W przeglądarce otworzyć stronę easyurpmi i postępować zgodnie z tam podanym opisem.
2.Gwiazdka > System > Konfiguracja > Konfiguracja komputera
Zakładka Zarządzanie oprogramowaniem > Wybór lokalizacji, z których pobierane są pakiety podczas aktualizacji systemu
Klikamy na Dodaj... (nie na Dodaj dowolny)
Klikamy na Nośniki dla dystrybucji i potwierdzamy na TAK
następnie wybieramy jeden z serwerów z listy (np. jakiś z Polski lub np z Czech) i klikamy na OK
Teraz czekamy aż operacja zakończy się powodzeniem, gdyby jednak wystąpił błąd ponawiamy wybór serwera, wybierając tym razem inny serwer.
3. Skorzystać np dla MDV2007 z poniższego przykładu Konsolę uruchamiamy z Gwiazdka > System >Terminale > Konsola
w konsoli jako root (su i Enter, hasło_roota /niewidoczne podczas wpisywania/ i Enter).
i cały kod wkleić do konsoli przez kombinację klawiszy Shift Insert
Kod:
urpmi.addmedia update2007 ftp://mandriva.contactel.cz/Mandrivalinux/official/2007.0/i586/media/main/updates with media_info/synthesis.hdlist.cz
urpmi.addmedia main2007 ftp://mandriva.contactel.cz/Mandrivalinux/official/2007.0/i586/media/main/release with media_info/synthesis.hdlist.cz
urpmi.addmedia contrib2007 ftp://mandriva.contactel.cz/Mandrivalinux/official/2007.0/i586/media/contrib/release with media_info/synthesis.hdlist.cz
urpmi.addmedia plf-non-free ftp://mandriva.contactel.cz/plf/mandriva/2007.0/non-free/release/binary/i586 with hdlist.cz
urpmi.addmedia plf-free ftp://mandriva.contactel.cz/plf/mandriva/2007.0/free/release/binary/i586 with hdlist.cz
Mając poprawnie skonfigurowane urpmi jako root wklejamy ten kod
Kod:
urpmi kernel-source-`rpm -qa | grep "kernel-$(uname -r | sed 's/\-.*//')" | sed 's/kernel\-//'`
Problem powstaje gdy nie mamy dostępu do internetu z linuksa.
Możemy temu zaradzić
Sprawdzamy w konsoli na jakim kernelu pracujemy
Kod:
uname -r
Na przykład (wynik)
Kod:
2.6.17-5mdv
Musimy zatem odszukać
kernel-source-2.6.17.5mdv-1-1mdv2007.0
Można też wyszukać i pobrać pakiet z http://rpm.pbone.net/ lub z serwera ftp dystrybucji Mandriva. Zapisać go na dysku i następnie zainstalować za pomocą polecenia urpmi jako root z poziomu katalogu z pobranym plikiem.
Kod:
urpmi kernel-source-2.6.17.5mdv*.rpm
Pozostałe pakiety powinny zostać doinstalowane automatycznie jako zależne, jeśli to nie nastąpi trzeba je doinstalować przez urpmi lub na wzór kernel-source pobrać, zapisać na dysku i zainstalować przez urpmi (lub rpm).
Kod:
urpmi gcc glibc-devel libncurses5-devel make
Miłego kompilowania pakietów.
Pamiętaj, że powyższy opis dotyczy przygotowania systemu do kompilowania oprogramowania.
Przy kompilacji oprogramowania mogą i zapewne będą komunikaty o braku bibliotek wymaganych przez kompilowane oprogramowanie, ale to już inna bajka.
================ Dopisane :
W MDV2008 możemy spotkać dodatkową trudność z dowiązaniem symbolicznym.
Sprawdzamy używany kernel
Kod:
uname -r
Sprawdzamy zgodność źródeł kernela
Kod:
rpm -qa|grep kernel
Jeżeli mamy tu zgodność wersji kernela i kernel-source, to przyszedł czas na sprawdzenie dowiązania symbolicznego /build.
W MDV2008 może być z tym problem.
Sprawdzamy
Kod:
ll /lib/modules/`uname -r`/build
Jeżeli otrzymany wynik w konsoli nie będzie protestował migającym podświetleniem i wskazuje poprawnie dowiązanie, to jesteśmy na dobrej drodze.
Jeżeli jednak otrzymamy błąd lub brak /build, to musimy go utworzyć.
Przy błędzie usuwamy plik build
Kod:
rm /lib/modules/`uname -r`/build
Czas na stworzenie dowiązania.
Sprawdzamy
Kod:
uname -r
Kod:
ls /usr/src
Kod:
ls /lib/modules
Normalnie dowiązanie symboliczne dla build tworzymy poleceniem
ale w np. w MDV2008 otrzymamy /usr/src/2.6.22.6-1mdv/
/lib/modules/2.6.22-6mdvlegacy/
zatem powyższe polecenie wywoła błąd.
Musimy zmodyfikować polecenie na takie
Podsumowując zgubił się linux- Uwaga dotyczy także innych opisów takich jak ten dotyczący broadcoma.
Ostatnio edytowane przez suncez ; 31.10.2010 o 10:47
Regulamin Forum - lektura obowiązkowa Pytania - jak mądrze je zadawać vbcode - jak formatować tekst w postach Reputacja - jak używać przycisków reputacji
Odp: Przygotowanie Mandriva do kompilacji oprogramowania
@ MAGx2,
Podajesz kernel-source, a obecnie dla większości kompilacji wymagany jest odpowiedni kernel-devel (kernel-desktop-devel, kernel-laptop-devel itp).
Doinstalowanie kernel-source po instalacji kernel-devel spowoduje problemy przy kompilacji oprogramowania.
kernel-source potrzebny przy kompilacji kernela.
Ostatnio edytowane przez POL_ED ; 03.08.2011 o 02:35