Jak zainstalować oprogramowanie za pomocą Git w systemie Linux?
Opublikowany: 2022-01-29Czy kazano Ci „sklonować repozytorium i zbudować je” i nie wiesz, co dalej? Pokażemy Ci, jak uruchomić ten program na GitHub w systemie Linux, nawet jeśli jesteś początkującym.
Instrukcje składające się na program komputerowy są pisane, redagowane i zapisywane w plikach tekstowych. Program zwany kompilatorem przetwarza te pliki. W ten sposób powstaje wykonywalna wersja programu. Pliki tekstowe instrukcji nazywane są kodem źródłowym. Wersja programu, którą faktycznie można uruchomić na komputerze, nazywa się plikiem binarnym lub wykonywalnym.
To uproszczona wersja wydarzeń, ale przedstawia poprawny – choć uogólniony – obraz. W praktyce znajdziesz różne odmiany tego modelu. Czasami inne programy generują pliki tekstowe. Innym razem kod źródłowy działa wewnątrz interpretera i nie trzeba go kompilować i tak dalej.
Jednak jedyną uniwersalną prawdą we wszystkich projektach oprogramowania jest to, że pliki kodu źródłowego są klejnotami koronnymi i należy się o nie troszczyć.
Programy kontroli wersji
Wszystkie pliki kodu źródłowego w projekcie są nazywane bazą kodu. Duże projekty często mają wielu programistów pracujących na bazie kodu. Każda zmiana kodu musi być śledzona i możliwa do zidentyfikowania. W razie potrzeby zmiany muszą być odwracalne. Jeśli różni programiści wprowadzają zmiany w tym samym pliku kodu źródłowego, ich edycje muszą zostać scalone.
Nic więc dziwnego, że istnieją programy zwane systemami kontroli wersji, które ułatwiają zarządzanie zmianami w kodzie. Systemy kontroli wersji przechowują wszystkie poprzednie wersje każdego pliku w bazie kodu, a każda zmiana jest rejestrowana, komentowana i śledzona.
Mała rzecz zwana Git
Linus Torvalds, twórca jądra Linuksa, opracował program kontroli wersji o nazwie Git do administrowania bazą kodu jądra Linuksa. Jest to obecnie najczęściej stosowane oprogramowanie do kontroli wersji na świecie. Używają go miliony ludzi — dosłownie.
Dzięki Git baza kodu projektu jest przechowywana w repozytoriach . Oprócz lokalnych repozytoriów, które znajdują się na komputerach deweloperów i być może na centralnym serwerze w sieci, dobrą praktyką jest posiadanie repozytorium poza siedzibą lub zdalnego.
I tu właśnie wkracza GitHub.
GitHub
GitHub powstał w wyniku sukcesu git
. Założyciele zauważyli rosnącą potrzebę bezpiecznych zdalnych repozytoriów git
. Uruchomili firmę dostarczającą platformę w chmurze, aby umożliwić zespołom programistycznym hostowanie zdalnych repozytoriów. Od kwietnia 2019 r. GitHub obsługuje ponad 100 milionów repozytoriów.
Jeśli aplikacja jest projektem typu open source, istnieje bardzo duże prawdopodobieństwo, że będzie hostowana w serwisie GitHub. Dostępne są inne platformy repozytoriów, takie jak BitBucket i GitLab, ale GitHub ma lwią część repozytoriów open source.
Anatomia repozytorium
Repozytorium GitHub składa się z folderów zawierających pliki, takie jak wszystkie ważne pliki kodu źródłowego. Zwykle w repozytorium jest wiele innych typów plików. Mogą to być pliki dokumentacji, strony podręcznika systemowego, pliki licencji oprogramowania, instrukcje budowania i pliki skryptów powłoki. Nie ma żadnych zasad dotyczących tego, co repozytorium powinno lub musi zawierać, ale istnieją konwencje.
Jeśli znasz się na jednej kuchni, możesz poruszać się po każdej kuchni. Tak samo jest z repozytoriami. Kiedy zrozumiesz konwencje, wiesz, gdzie się udać, aby znaleźć to, czego potrzebujesz.
Jak więc zdobyć kopię repozytorium na swoim komputerze i jak zbudować program w binarnym pliku wykonywalnym?
Plik readme
Dołączenie pliku readme do repozytorium jest tradycją. Może się nazywać readme, Readme lub README. Może mieć rozszerzenie „.md” lub w ogóle nie mieć rozszerzenia.
Rzućmy okiem na repozytorium GitHub dla edytora Atom. Widzisz długą listę folderów i plików. Przewiń w dół, a zobaczysz zawartość pliku README.md.
GitHub automatycznie umieszcza zawartość pliku readme na stronie głównej repozytorium. Jeśli plik readme ma rozszerzenie „.md”, będzie zawierał język znaczników Markdown. Dzięki temu programiści mogą używać elementów stylu, takich jak czcionki, wypunktowania i obrazy.
Zazwyczaj plik readme zawiera sekcje, które mówią o czym jest projekt, jaka jest licencja typu, kto zarządza projektem, jak się zaangażować oraz jak zbudować i uruchomić aplikację.
Jeśli nie zawiera rzeczywistych instrukcji kompilacji, powie ci, gdzie znaleźć te informacje. Inne informacje przydatne do budowania aplikacji, takie jak wymagane narzędzia do budowania i inne zależności, mogą być wymienione tutaj lub łącze może prowadzić do tych informacji.
Repozytorium pudełek
Naszą misją jest sklonowanie repozytorium boxów, a następnie zbudowanie aplikacji boxes
.
Repozytorium ma ten sam układ, co Atom. Znajduje się tam lista folderów i plików, a poniżej zawartość pliku readme. Jest zgodny ze standardowym układem repozytorium, ale jest to mniejszy projekt, więc jest mniej folderów i plików.
Plik readme jest również krótszy. Ma sekcję o nazwie „Rozwój”. W tej sekcji znajduje się link zatytułowany „budowanie ze źródła”. Jeśli podążymy za tym linkiem, powinniśmy znaleźć potrzebne nam informacje.
Zwykle do poruszania się po repozytorium i znajdowania potrzebnych informacji potrzebne jest lekkie sleuthing, ale nie jest to trudne. Przeczytaj uważnie wszystko na stronie repozytorium. Czasami informacje są dostępne, ale mogą nie być wyświetlane w widocznym miejscu.
Zależności
Strona „Budowanie ze źródła” zawiera sekcję o nazwie „Budowanie w systemie Linux” i właśnie tego potrzebujemy. Mówi, że musimy mieć zainstalowany kompilator C, Bison i Flex.
Instrukcje budowania mówią, aby wydać polecenie make
, więc będziemy potrzebować również make
.
Narzędzia wymagane do zbudowania tej aplikacji to kompilator C, Bison, Flex, make
i Git (do sklonowania repozytorium na komputer).
Ten artykuł został zbadany na komputerach z dystrybucjami Ubuntu, Fedora i Manjaro Linux. Żadna z dystrybucji nie miała zainstalowanych wszystkich tych narzędzi — coś musiało być zainstalowane na każdym z nich.
Instalowanie zestawu narzędzi
Ubuntu musiał mieć zainstalowane Git, Flex, Bison i make
. Oto polecenia:
sudo apt-get zainstaluj git
sudo apt-get install flex
sudo apt-get zainstaluj bizon
sudo apt-get install make
Fedora musiała mieć zainstalowane Flex, Bison i make
. Oto polecenia:
sudo dnf zainstaluj flex
sudo dnf zainstaluj bizon
sudo dnf install make
Manjaro musiał mieć zainstalowany kompilator GCC, Flex i Bison. Oto polecenia:
sudo pacman -Syu gcc
sudo pacman -Syu flex
sudo pacman - żubr Syu
Klonowanie repozytorium
Każde repozytorium GitHub ma określony adres internetowy używany z Git do klonowania repozytorium na komputer. Na stronie głównej repozytorium pudełek znajduje się zielony przycisk oznaczony „Klonuj lub pobierz”.
Kliknij przycisk, aby zobaczyć adres internetowy. Jest to adres, który musimy przekazać do polecenia git
podczas klonowania repozytorium.
Przejdź do katalogu, do którego chcemy sklonować repozytorium, a następnie użyj tego polecenia. Jeśli twoje okno terminala to obsługuje, możesz skopiować i wkleić adres internetowy do polecenia. Naciśnij Ctrl + Shift + V, aby wkleić do okna terminala GNOME.
Git klonuje zdalne repozytorium i tworzy lokalne na twoim komputerze. Mówi nam, że klonuje do katalogu o nazwie „pudełka”.
Katalog boksy jest tworzony w katalogu, z którego wydałeś polecenie git
. Jeśli przejdziemy do katalogu boksów i spojrzymy na zawartość, zobaczymy tę samą listę plików i folderów, którą widzieliśmy na stronie GitHub.
Świetny! Pomyślnie sklonowaliśmy kod źródłowy i inne pliki na nasz komputer. Teraz musimy zbudować aplikację.
Budowanie aplikacji
Aby zbudować aplikację, musimy postępować zgodnie z instrukcjami w repozytorium GitHub. Czasami uruchamiamy konkretny plik powłoki, a inne uruchamiamy make
. Instrukcje budowania, które postępujemy, kazały nam uruchomić make
.
Narzędzie make
odczytuje i wykonuje zestaw instrukcji z pliku makefile. Te instrukcje mówią make
, jak skompilować program i połączyć go ze sobą. make
przekazuje instrukcje do kompilatora i innych narzędzi do budowania.
Polecenie, którego mamy użyć, wywoła make
dwukrotnie. Pierwsze wywołanie make
buduje aplikację, a drugie uruchamia zestaw testów.
Polecenie, które instrukcje kompilacji kazały nam użyć, to:
zrób i zrób test
Wiele wierszy wyjścia przewija się szybko w oknie terminala. Za mniej więcej minutę wrócisz do wiersza polecenia.
Wdrażanie skrzynek Aplikacja
Aplikacja została zbudowana i mamy wykonywalny plik binarny. Teraz musimy skopiować plik binarny do katalogu /usr/bin/. Dzięki temu powłoka może go znaleźć, gdy spróbujemy go użyć.
W przypadku niektórych aplikacji może to być wszystko, co musisz zrobić. W innych przypadkach może być konieczne skopiowanie dodatkowych plików, takich jak strony podręcznika i pliki konfiguracyjne, do lokalizacji w systemie plików. To ostatnie mamy do czynienia z naszą nową aplikacją, ponieważ znajdowała się w instrukcjach kompilacji.
Użyj sudo
, aby uruchomić te polecenia. Pierwsze polecenie kopiuje stronę man do katalogu man1:
sudo cp doc/boxes.1 /usr/share/man/man1
Następnie skopiuj globalny plik konfiguracyjny do katalogu w /usr/share/:
sudo cp box-config /usr/share/boxes
Na koniec skopiuj plik binarny do /usr/bin:
sudo cp src/boxes /usr/bin
Testowanie pudełek Zastosowanie
Zobaczmy, czy to wszystko działa! Spróbuj otworzyć stronę podręcznika dla polecenia boxes
.
pudła dla mężczyzn
To zachęcające! Zobaczysz stronę podręcznika, która mówi ci, jak używać polecenia boxes
.
Naciśnij „Q”, aby opuścić system man i spróbuj użyć polecenia „ boxes
”.
echo How-To Geek | pudła
I otrzymujemy odpowiedź:
Może się to wydawać nieco rozczarowujące, biorąc pod uwagę cały wysiłek, do którego się włożyłeś, ale celem tego ćwiczenia było przeprowadzenie cię przez wycofanie repozytorium z GitHub i zbudowanie aplikacji.
Polecenie boxes
umożliwia zawijanie tekstu, który jest do niego przesyłany potokiem, w wielu różnych ramkach. Niektóre z nich można wykorzystać jako komentarze w plikach kodu źródłowego. Powyższy format będzie działał na przykład jako komentarz w pliku kodu źródłowego C. Inne są czysto dekoracyjne. Opcja -d
(projekt) pozwala wybrać styl ramki.
echo How-To Geek | pudełka -d whirly
echo How-To Geek | pudełka -d c-cmt2
Istnieje długa lista wzorów, z których możesz wybierać. Aby zobaczyć je wszystkie, użyj tego polecenia:
pudełka -l | mniej
Kompilacja zakończona
Kroki budowania ze źródeł są zwykle proste:
- Przejrzyj instrukcje kompilacji w repozytorium.
- Sprawdź, czy masz zainstalowane wymagane narzędzia i zainstaluj brakujące.
- Sklonuj repozytorium na swój komputer.
- Postępuj zgodnie z instrukcjami kompilacji, które często są tak proste, jak wpisanie
make
. - Skopiuj plik(i) do wymaganych lokalizacji.
Jeśli w instrukcjach kompilacji są niejasne kroki, sprawdź, czy projekt ma forum lub społeczność, do której możesz wysłać pytanie. Jeśli aplikacja ma witrynę internetową, może zawierać stronę „Skontaktuj się z nami”. Deweloper, który zarządza projektem pudełek, ma swój adres e-mail na stronie „Informacje” w witrynie pudełek. To hojny gest z jego strony, typowy dla szerszej społeczności open source.
Polecenia Linuksa | ||
Pliki | tar · pv · kot · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · dysk testowy · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · ogon · stat · ls · fstab · echo · mniej · chgrp · chown · rev · wygląd · stringi · typ · zmiana nazwy · zip · rozpakuj · montuj · umount · zainstaluj · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konwertuj · rclone · shred · srm | |
Procesy | alias · ekran · top · ładne · renice · postęp · strace · systemd · tmux · chsh · historia · w · wsad · free · co · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · ściana · tak · kill · sen · sudo · su · czas · groupadd · usermod · grupy · lshw · zamknij · restart · halt · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Sieć | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów