Poniższy opis/poradnik powstał przy znacznym wykorzystaniu następujących materiałów dostępnych w Internecie:
- KDE TechBase: Build KDE4.6 on Kubuntu (opis kompilacji KDE 4.6 w Kubuntu 10.04)
- KDE TechBase: Getting Started/Build/KDE4 (oficjalna dokumentacja kompilacji KDE)
- Blog: Who Says Penguins Can't Fly?: Building KDE SC from SVN.
Kubuntu w podstawowej konfiguracji zawiera jedynie wpisy do przetestowanych repozytoriów, co do których w miarę jest pewność, że pakiety tam zawarte będą działać stabilnie. Nie ma dodanych tych, które zawierają rozwojowe i testowe wersje pakietów. One właśnie są potrzebne w momencie kompilacji KDE. Dodajemy zatem te repozytoria i instalujemy aktualizacje:
sudo add-apt-repository ppa:kubuntu-ppa/backports sudo add-apt-repository ppa:kubuntu-ppa/beta sudo apt-get update sudo apt-get upgrade
Nie wiem dlaczego, ale po wykonaniu tych kroków narzędzie do aktualizacji z Kubuntu poinformowało mnie (trzeba sprawdzić odpowiednią ikonkę w zasobniku systemowym koło zegara), że jeszcze nie wszystkie zostały zainstalowane. Instalujemy wszystkie aktualizacje, które zostały zaproponowane.
Instalujemy dodatkowe pakiety
Tak jak wspomniałem na początku tego wpisu, na potrzeby kompilacji wymagane jest zainstalowanie wielu dodatkowych pakietów. Poniższa lista została opracowana na podstawie oficjalnej dokumentacji kompilacji KDE pod Debiana i Ubuntu/Kubuntu: http://techbase.kde.org/Getting_Started/Build/KDE4/Kubuntu_and_Debian oraz na podstawie własnych doświadczeń zebranych podczas kilku prób kompilacji KDE.
sudo apt-get install subversion git-core gcc g++ sudo apt-get install build-essential xorg-dev cdbs debhelper cmake kdesdk-scripts subversion ssh xserver-xephyr doxygen dbus-x11 libxml2-dev libxslt1-dev shared-mime-info libical-dev libgif-dev libssl-dev libboost-dev libboost-program-options-dev libboost-graph-dev libgpgme11-dev libxine-dev libqimageblitz-dev libbz2-dev libdbus-1-dev libpam0g-dev libpcre3-dev libkrb5-dev libsm-dev libclucene0ldbl libclucene-dev libjpeg62-dev libxtst-dev xsltproc libxrender-dev libfontconfig1-dev automoc librdf0-dev libdbusmenu-qt-dev docbook-xsl docbook-xml libattica-dev libqt4-webkit-dev shared-desktop-ontologies libphonon-dev sudo apt-get install graphviz libqt4-dev libstreamanalyzer-dev libstrigiqtdbusclient-dev libxml2-utils libopenexr-dev libjasper-dev libenchant-dev libavahi-common-dev libaspell-dev libasound2-dev libldap2-dev libsasl2-dev libsmbclient-dev libxkbfile-dev libxcb1-dev libxklavier-dev libxdamage-dev libxcomposite-dev libbluetooth-dev libusb-dev network-manager-dev libsmbclient-dev libsensors-dev libnm-util-dev libusb-dev libcfitsio3-dev libnova-dev libeigen2-dev libopenbabel-dev libfacile-ocaml-dev libboost-python-dev libsvn-dev libsvncpp-dev libqt4-dev libqca2-dev libstreamanalyzer-dev libstrigiqtdbusclient-dev libcommoncpp2-dev libidn11 libidn11-dev libpci-dev libxss-dev libxft-dev libpoppler-qt4-dev libpolkit-agent-1-dev libpolkit-backend-1-dev libpolkit-qt-1-dev libspectre-dev sudo apt-get install kdesdk kdelibs5-dev kdebase-workspace-dev libakonadi-dev libsoprano-dev libkonq5-dev libv4l-dev sudo apt-get install flex bison libacl1-dev hspell
Utworzenie nowego użytkownika
Przed przystąpieniem do właściwego procesu kompilacji KDE, warto zadać sobie pytanie: w jaki sposób chcemy mieć dostęp zarówno do nowego środowiska pracy jak również do wersji stabilnej, której używaliśmy do tej pory? W Internecie można znaleźć wiele odpowiedzi na to pytanie, m.in.: skorzystanie z środowiska wirtualnego (np. VirtualBox) lub przełączanie głównej gałęzi struktury plików przy użyciu chroot. W tym poradniku zostanie opisane jeszcze inne podejście, które jest zalecane w oficjalnej dokumentacji KDE. Zostanie utworzony nowy użytkownik, na koncie którego zostanie przeprowadzona kompilacja i lokalna instalacja KDE. "Lokalna" w tym wypadku oznacza, że tylko ten użytkownik będzie mógł korzystać z tej wersji KDE.
Tworzymy nowego użytkownika i dodajemy go do grup. Jeśli chcemy, aby użytkownik miał dostęp do trybu poleceń administratora (sudo) zamiast do grupy users dodajemy go do grupy admin.
sudo useradd -m -G users,audio,video,cdrom,plugdev -s /bin/bash kde-devel sudo passwd kde-devel
Logujemy się na konto właśnie utworzonego użytkownika:
su - kde-devel
Konfiguracja skryptów startowych
Oficjalna dokumentacja zaleca, aby zaraz po zalogowaniu skonfigurować skrypty startowe w celu usprawnienia procesu kompilacji. Można to zrobić wykonując następujące czynności:
- Robimy kopię zapasową oryginalnego pliku .bashrc:
cp .bashrc .bashrc_backup
- Ze strony http://techbase.kde.org/Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc kopiujemy zawartość przykładowego pliku .bashrc i wklejamy go do pliku .bashrc_KDE:
nano .bashrc_KDE
- Dodajemy do oryginalnego pliku .bashrc ładowanie pliku .bashrc_KDE:
echo "source ~/.bashrc_KDE" >> ~/.bashrc
- Wczytujemy ponownie zawartość pliku .bashrc, aby jego zawartość była widoczna również dla bieżącej sesji:
source ~/.bashrc
Na potrzeby kompilacji KDE najłatwiej skorzystać ze skryptu kdesrc-build, który można pobrać ze strony: http://kdesvn-build.kde.org/. Skrypt ten automatyzuje wiele zadań, takich jak pobieranie źródeł, przygotowanie i uruchamianie procesu kompilacji.
Pobranie i konfigurację skryptu kdesrc-build wykonujemy za pomocą poniższych poleceń (na stronie projektu warto najpierw sprawdzić, czy nie ma nowszej wersji tego narzędzia):
mkdir -p ~/kdesrc/kdesrc-build wget http://kdesvn-build.kde.org/releases/kdesrc-build-1.12.tar.bz2 tar xjvf kdesrc-build-1.12.tar.bz2 -C ~/kdesrc/kdesrc-build/ rm kdesrc-build-1.12.tar.bz2 cp ~/kdesrc/kdesrc-build/kdesrc-build-1.12/kdesrc-buildrc-sample ~/.kdesrc-buildrc
Uruchomienie procesu kompilacji:
~/kdesrc/kdesrc-build/kdesrc-build-1.12/kdesrc-build
Domyślnie proces kompilacji jest uruchamiany w trybie zrównoleglonym (opcja -j programu make) w 2 procesach. Warto jednak pamiętać, że:
- jeśli mamy 1 jeden rdzeń obliczeniowy to nie przyniesie to żadnego efektu;
- w przypadku większej liczby rdzeni warto z nich skorzystać i uruchomić proces kompilacji z odpowiednio ustawionym parametrem make-options skryptu kdesrc-build. Przykład dla 4 procesorów:
~/kdesrc/kdesrc-build/kdesrc-build-1.12/kdesrc-build --make-options=-j4
Problemy
Podczas kompilacji pojawił mi się następujący komunikat o błędzie:
Building phonon-git (3/15) Waiting for source code update. Source update complete for phonon-git: 0 files affected. Compiling... Build succeeded after 1 second. Installing phonon-git. Unable to install phonon-git! Overall time for phonon-git was 1 second.
Warto podejrzeć co znajduje się w logach. U mnie odpowiedni plik znajdował się w następującej lokalizacji:
cat ~/kdesvn/log/2010-12-05-03/phonon-git/install.log
CMake Error at cmake_install.cmake:40 (FILE): file INSTALL cannot copy file "/home/kde-devel/kdesvn/phonon-git/qt_phonon.pri" to "/usr/share/qt4/mkspecs/modules/qt_phonon.pri".
Wynika z niego, że pomimo przyjętych założeń o lokalnej instalacji KDE na koncie użytkownika kde-devel, instalator Photona próbuje umieścić coś w głównej strukturze plików. Można to wyłączyć edytując następujący plik:
nano kdesvn/phonon-git/CMakeLists.txt
i umieszczając w komentarzu tą linię (znajduje się ona na końcu pliku):
#install(FILES qt_phonon.pri DESTINATION ${QT_MKSPECS_DIR}/modules)
Uwaga: Oczywiście nie mam pewności, czy to jest najlepsze z możliwych rozwiązań i czy później nie wpłynie to na błędy podczas używania nowego KDE. Najważniejsze jest jednak to, że kompilacja idzie dalej :-)
Kompilujemy dodatkowe programy
Skrypt kdesrc-build poza domyślnym zestawem modułów, które mogliśmy zobaczyć podczas jego działania, obsługuje jeszcze kilka, które domyślnie są wyłączone. Aby je włączyć do procesu kompilacji, należy wedytować poniższej wskazany plik i odkomentować potrzebne nam moduły:
nano ~/.kdesrc-buildrc
Zauważyłem jednak, że pewne moduły, które są tutaj umieszczone nie działają. Przykładem jest zestaw narzędzi developerskich KDE: kdevplatform, kdevelop, quanta. Problem z ich kompilacją wynika stąd, że ich kod nie jest dłużej dostępny w repozytorium subversion i został przeniesiony do repozytorium git. Mi osobiście zależało na tym, aby mieć te moduły skompilowane, dlatego poniżej znajduje się opis, jak można to zrobić samodzielnie.
Zakładamy katalog, w którym będziemy umieszczać dodatkowe programy KDE, które będziemy samodzielnie kompilować:
mkdir kdesoftware cd kdesoftware
Pobieramy źródła programów związanych z KDevelopem:
git clone git://gitorious.org/kdevelop/kdevplatform.git git clone git://gitorious.org/kdevelop/kdevelop.git git clone git://gitorious.org/kdevelop/quanta.git
Tworzymy katalogi budowania:
mkdir -p build/{kdevplatform,kdevelop,quanta}
Uruchamiamy procedurę kompilacji i instalacji:
cd ~/kdesoftware/build/kdevplatform/ cmake -DCMAKE_INSTALL_PREFIX=~/kde/ ../../kdevplatform/ make && make install cd ~/kdesoftware/build/kdevelop/ cmake -DCMAKE_INSTALL_PREFIX=~/kde/ ../../kdevelop/ make && make install cd ~/kdesoftware/build/quanta/ cmake -DCMAKE_INSTALL_PREFIX=~/kde/ ../../quanta/ make && make install
Testowanie nowego KDE
- Jeśli chcemy przetestować pojedynczy program z właśnie skompilowanego KDE, a zarazem nie chcemy uruchamiać całego środowiska, najlepiej skorzystać z narzędzia sux:
sudo apt-get install sux sux - kde-devel dolphin
- Aby przetestować działanie pełnego środowiska KDE wystarczy zalogować się na użytkownika kde-devel wybierając jako typ sesji na „Bezpieczne logowanie” i uruchomić program:
~/kde/bin/startkde
- Jeśli chcielibyśmy to zrobić „bardziej elegancko” najlepszym rozwiązaniem wydaje się przygotowanie nowego typu sesji, którą będziemy mogli wybrać podczas logowania. Należy w tym celu wykonać następujące operacje (jako użytkownik z prawami administracyjnymi):
cd /usr/share/kde4/apps/kdm/sessions/ sudo cp kde-plasma.desktop kde-plasma-trunk.desktop sudo nano kde-plasma-trunk.desktop
Do pliku kde-plasma-trunk.desktop wklejamy poniższą zawartość:
[Desktop Entry] Encoding=UTF-8 Type=XSession Exec=/home/kde-devel/kde/bin/startkde TryExec=/home/kde-devel/kde/bin/startkde Name=KDE Trunk Comment=The desktop made by KDE
Teraz już podczas logowania zamiast tradycyjnej sesji KDE, wybieramy z listy sesję KDE Trunk.
Podsumowanie
Powyższy opis tak jak tytuł wskazuje, został przygotowany dla użytkowników początkujących lub średnio obeznanych z administracją i programowaniem w Linuksie. Domyślam się, że zaawansowani użytkownicy KDE znaleźli by tu kilka błędów, lub przedstawili bardziej zoptymalizowany proces kompilacji. Dla mnie najważniejszym jednak jest to, że kompilację udało mi się nie tylko rozpocząć, ale również zakończyć :-), co pozwala mi się czuć bardziej wtajemniczonym w obsługę tego systemu, aniżeli jeszcze kilkanaście dni temu.
Zachęcam do zadawania pytań lub do wpisywania komentarzy, co można poprawić w powyższym poradniku. W razie problemów poszukiwanie odpowiedzi najlepiej zacząć od oficjalnej dokumentacji na stronie: http://techbase.kde.org/Getting_Started/Build/KDE4/Troubleshooting. Zostały tam opisane najczęstsze problemy i ich rozwiązania.
4 komentarze:
Mam komputer, który nie ma dostępu do internetu, chciałem poszukać gotowych i skompilowanych paczek .deb, by zaktualizować KDE do wersji 4.6.1 na Kubuntu 10.04. Takowych nie znalazłem. Pomyślałem o kompilacji, lecz po lekturze tego poradnika porzuciłem wszelką nadzieję, pomimo tego że napisany jest bardzo zrozumiale. Trzeba znaleźć zbyt dużo potrzebnych pakietów. To ponad moje możliwości. Będę znów miał internet to apt-get z repo pociągnie mi nowe KDE. Szkoda że nie ma możliwości instalacji "full-automatic" z jednego pliku, tylko zabawa przez cały dzień i pobieranie masy danych.
dareczek
No, to jest problem. Pewnie da się go jakoś rozwiązać, ale każdy sposób to będzie niepotrzebne kombinowanie i nie wiadomo czy ostateczny rezultat będzie taki jak powinien. Osobiście polecam wziąć komputer pod pachę i zapukać do znajomego, który ma Internet. Całość zajmie 2 godziny. Koledze można zabrać piwo. Sobie zresztą też, bo instalacja chwilę trwa ;-)
Wycieczka do kolegi też odpada, taszczyć blaszka to trochę skomplikowane, bo nie mam samochodu, a mieszkam na wsi. Tak to już jest po studiach(nieskończonych z resztą), muszę robótkę w jakimś miastku znaleźć i przeprowadzkę zrobić.
Z mojego doświadczenia wynika że największym problemem w przypadku Linuksa jest brak internetu, oraz dzielenie instalek na drobne pakiety oraz brak dostępności gotowych pakietów. Nawet kompilacja jest trudna bo w systemie nie ma podstawowych potrzebnych plików a zbyt często potrzebne są kolejne zależności.
Podejrzewam, że dopiero wtedy gdy te problemy zostaną rozwiązane Linux zacznie zyskiwać na popularności. Przydało by się też jakieś repozytorium dostępne z przeglądarki, bo tam gdzie apt-get sięga Opera, czy Firefox już nie da rady.
dareczek
Chyba wiem co powinno rozwiązać twój problem. Dzisiaj na Debian User Gang.pl czytałem o narzędziu apt-offline, które służy do przeprowadzania aktualizacji na komputerze bez dostępu do Internetu. Dokładnie nie wiem na czym to polega, ale na pewno znajdziesz jakieś opisy w sieci. Wiadomość, o której mowa jest tutaj: http://dug.net.pl/news/258/.
Prześlij komentarz