automake, build-essential, Cmake... na dobry start - Narzędzia (oprogramowanie)

Spis treści

 

Potrzebne narzędzia (oprogramowanie)

NarzędziaNie wdając się w szczegóły kolej na zainstalowanie wszystkiego co (Debian i pokrewne) jest potrzebne do samodzielnego ściąnięcia źródeł i kompilowania programów. Są to:

  • Git - rozproszony system kontroli wersji, który w przeciwieństwie do innych nie zapamiętuje kolejnych zmian a kompletne obrazy projektów. Użyteczny program do pobierania kompletnych repozytoriów,
  • build-essential - (w Debianie i pokrewnych) zawiera listę z informacjami o pakietach, które są niezbędne do budowania pakietów. Wymagane, powiązane pakiety (które zostaną dociągnięte "z automatu") to m.in.: dpkg-dev (narzędzia deweloperskie), g++ (kompilator GNU C++), gcc (kompilator GNU C), libc6-dev (biblioteka GNU C: zawierająca biblioteki deweloperskie oraz pliki nagłówkowe), make (narzędzie do zarządzania procesem kompilacji),
  • automake - to narzędzie do automatycznego (czyli tych co nie lubią się męczyć ;) ) generowania (Makefile.in's z plików o nazwie` Makefile.am, które są zbiorem makrodefinicji dla make) plików Makefiles zgodnych ze standardami GNU,
  • cmake - wieloplatformowy (typu open-source) system "wsparcia" polecenia make. Służy do kontrolowania (niezależnie od platformy i kompilatora) przy użyciu prostych plików konfiguracyjnych procesu kompilacji oprogramowania. CMake generuje natywne pliki makefiles i obszary robocze, które mogą być używane w wybranym środowisku. Działanie CMake jest dość złożone, ale i skuteczne: można obsługiwać złożone środowiska wymagające: konfiguracji systemu, generowania pre-procesora, generowania kodu i tworzenia instancji szablonu,
  • libpulse-dev, libgtk-3-dev - biblioteki, których nazwy pojawiały się kilkakrotnie podczas moich prób kompilacji oprogramowania SDR. Możliwe, że ich nie będziesz potrzebował, więc można z nich zrezygnować. Doinstalujesz później, gdy zajdzie taka potrzeba (podczas kompilacji przez ekran przewinie się stosowny komunikat).

Tyle teorii. Więcej znajdziesz w sieci.

Czas na praktykę. W oknie terminala wywołujemy proces instalacji wymienionych pakietów:

~ $ sudo apt-get install git build-essential automake cmake libpulse-dev libgtk-3-dev
[sudo] hasło użytkownika user: [tu podaj swoje hasło użytkownika]
[inne komunikaty]
Odczyt informacji o stanie...
Gotowe
automake is already the newest version (1:1.15.1-3ubuntu2).
build-essential is already the newest version (12.4ubuntu1).
cmake is already the newest version (3.10.2-
libgtk-3-dev is already the newest version (3.22.30-1ubuntu1).
git is already the newest version (1:2.17.1-1ubuntu0.
libpulse-dev is already the newest version (1:11.1-1ubuntu7.1). ...
... 0 aktualizowanych, 0 nowo instalowanych, 0 usuwanych i 0 nieaktualizowanych.
~ $

Specjalnie przedstawiłem sytuację, gdy wymienione programy są już zainstalowane. Zauważ: nie stało się nic grożnego. Pojawił się jedynie komunikat, że program jest już w najnowszej wersji ("is already the newest version"). Gdyby go nie było, zostałby zainstalowany, ewentualnie zaktualizowany.

Czasami mimo ich obecności warto pakiety przeistalować. Zależy to wyłącznie od Ciebie. Dla reinstalacji niezbędnym jest wykonanie następującego polecenia - poprzednie uzupełnione o parametr --reinstall, w listingu nie ma pytania o hasło użytkownika, bo w tej sesji zostało już podane. Jeśli pojawi się, podaj hasło :

~ $ sudo apt-get install --reinstall git build-essential automake cmake libpulse-dev libgtk-3-dev
Czytanie list pakietów...
Gotowe
Budowanie drzewa zależności
Odczyt informacji o stanie...
Gotowe 0 aktualizowanych, 0 nowo instalowanych, 6 ponownie instalowanych, 0 usuwanych i 0 nieaktualizowanych.
Konieczne pobranie 8 535 kB archiwów.
Po tej operacji zostanie dodatkowo użyte 0 B miejsca na dysku.
Pobieranie:1 http://archive.ubuntu.com/ubuntu bionic/main amd64 automake all 1:1.15.1-3ubuntu2 [509 kB]
/... - skrót/
Pobieranie:6 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpulse-dev amd64 1:11.1-1ubuntu7.1 [81,5 kB]
Pobrano 8 535 kB w 1s (6 978 kB/s) ...
~ $

Wymusiliśmy ponowne pobranie i reinstalację wskazanych pakietów. Możemy sprawdzić (pytając o wersję) czy wszystko jest ok:

~ $ g++ --version
g++ (Ubuntu 7.3.0-16ubuntu3) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc. /... - skrót/

~ $ gcc --version
gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc. /... - skrót/

~ $ automake --version
automake (GNU automake) 1.15.1
Copyright (C) 2017 Free Software Foundation, Inc. /... - skrót/

~ $ cmake --version
cmake version 3.10.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).

~ $ make --version
GNU Make 4.1
Ten program został zbudowany dla systemu x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc. /... - skrót/

~ $ autoconf --version
autoconf (GNU Autoconf) 2.69
Copyright (C) 2012 Free Software Foundation, Inc. /... - skrót/
~ $

Wspominałem, że zależne pakiety zostaną "automatycznie dociągnięte". Takim pakietem jest tu np. autoconf. No dobrze mamy już narzędzia (programy) do kompilacji programów źródłowych. Ale skąd je brać.

//