Har du noen gang blitt bedt om å «klone et depot og bygge det,» og lurt på hvor du skulle begynne? Denne guiden leder deg gjennom prosessen med å få et program fra GitHub til å kjøre på Linux, selv om du er nybegynner.
Et dataprogram består av instruksjoner som skrives, redigeres og lagres i tekstfiler. En kompilator oversetter disse filene til en kjørbar versjon av programmet. Disse tekstfilene med instruksjoner kalles kildekode. Den ferdige versjonen, som faktisk kan kjøres på datamaskinen, er kjent som en binærfil eller en kjørbar fil.
Selv om dette er en forenklet beskrivelse, gir det et godt overblikk over prosessen. I virkeligheten finnes det mange varianter av denne modellen. Noen ganger genereres tekstfilene av andre programmer. Andre ganger kjøres kildekoden i en tolk og trenger ikke å kompileres.
Uansett hvilken metode som brukes, er kildekodefilene essensielle og må behandles med stor forsiktighet.
Versjonskontrollsystemer
Alle kildekodefilene i et prosjekt utgjør det som kalles kodebasen. Større prosjekter har ofte mange utviklere som samarbeider om kodebasen. Det er viktig at alle endringer spores og identifiseres, og at endringer kan angres om nødvendig. Hvis flere utviklere gjør endringer i samme fil, må endringene slås sammen.
Derfor har man utviklet versjonskontrollsystemer for å forenkle håndteringen av endringer i kodebasen. Disse systemene lagrer alle tidligere versjoner av hver fil, og hver endring blir loggført og kommentert.
Git – et populært versjonskontrollsystem
Linus Torvalds, skaperen av Linux-kjernen, utviklet versjonskontrollsystemet Git for å administrere Linux-kjernens kodebase. I dag er Git det mest utbredte versjonskontrollsystemet i verden, med millioner av brukere.
I Git lagres et prosjekts kodebase i såkalte repositories (depoter). I tillegg til lokale depoter på utviklernes maskiner og kanskje en sentral server, anbefales det å ha et eksternt depot.
Og det er her GitHub kommer inn i bildet.
GitHub – En plattform for kode-depoter
GitHub ble lansert som en respons på Gits popularitet. Behovet for sikre, vertsbaserte, eksterne Git-depoter var åpenbart. Selskapet etablerte en skyplattform for utviklingsteam som ønsket å lagre eksterne depoter. Per april 2019 huser GitHub over 100 millioner depoter.
Hvis en applikasjon er et åpen kildekode-prosjekt, er det stor sjanse for at det er lagret på GitHub. Det finnes andre depotplattformer, som BitBucket og GitLab, men GitHub har de fleste åpen kildekodelagrene.
Oppbyggingen av et depot
Et GitHub-depot består av mapper som inneholder filer, inkludert kildekodefiler. I tillegg er det vanlig å finne dokumentasjonsfiler, man-sider, programvarelisensfiler, byggeinstruksjoner og shell-skriptfiler. Selv om det ikke finnes noen faste regler, er det vanlige konvensjoner for innholdet i et depot.
Akkurat som man finner veien på hvilket som helst kjøkken når man kjenner til oppsettet, gjelder det samme for depoter. Når du forstår konvensjonene, vet du hvor du skal lete for å finne det du trenger.
Så hvordan får du en kopi av et depot på datamaskinen din, og hvordan bygger du programmet til en kjørbar fil?
Viktigheten av README-filen
Det er vanlig praksis å inkludere en README-fil i et depot. Navnet kan være readme, Readme eller README, og den kan ha filtypen «.md» eller ingen filtype i det hele tatt.
La oss ta en titt på GitHub-depotet for Atom-editoren. Her finner du en lang liste over mapper og filer. Hvis du ruller nedover, ser du innholdet i filen README.md.
GitHub viser automatisk innholdet i README-filen på forsiden av depotet. Hvis filen har filtypen «.md», vil den inneholde Markdown-markering. Dette gjør at utviklerne kan legge til stilelementer, som for eksempel fonter, punktlister og bilder.
En README-fil inneholder vanligvis seksjoner som beskriver prosjektet, hvilken lisens som gjelder, hvem som vedlikeholder prosjektet, hvordan du kan bidra, og hvordan du bygger og kjører applikasjonen.
Hvis de faktiske byggeinstruksjonene ikke er oppgitt, vil filen fortelle deg hvor du kan finne dem. Annen nyttig informasjon, som for eksempel nødvendige byggeverktøy og avhengigheter, kan også oppgis her, eller det kan gis en lenke til informasjonen.
Eksempel: Bokser-depotet
Vårt mål er å klone bokser-depotet og bygge selve bokser-applikasjonen.
Depotet har samme oppsett som Atom-depotet, med en liste over mapper og filer, og innholdet i README-filen under. Det følger standardoppsettet for et depot, men det er et mindre prosjekt, så det er færre mapper og filer.
README-filen er også kortere, og den har en seksjon kalt «Utvikling». Her finner du en lenke til «Bygg fra kilde». Ved å følge denne lenken, bør vi finne informasjonen vi trenger.
Det krever litt leting å finne frem i depotet og finne den informasjonen man trenger, men det er sjelden vanskelig. Les alt nøye, da informasjonen noen ganger kan være skjult eller ikke lett tilgjengelig.
Avhengigheter
Siden «Bygge fra kilde» har en seksjon som heter «Bygg på Linux», og det er akkurat det vi trenger. Her står det at vi må ha en C-kompilator, Bison og Flex installert.
Byggeinstruksjonene oppfordrer oss til å bruke kommandoen «make», så vi trenger også make.
Verktøyene vi trenger for å bygge denne applikasjonen er altså en C-kompilator, Bison, Flex, make og Git (for å klone depotet til datamaskinen).
Denne artikkelen er testet på maskiner som kjører Ubuntu, Fedora og Manjaro. Ingen av disse distribusjonene hadde alle verktøyene installert, så noe måtte installeres i hver av dem.
Installere nødvendige verktøy
Ubuntu trengte Git, Flex, Bison og make installert. Her er kommandoene:
sudo apt-get install git
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install make
Fedora trengte Flex, Bison og make installert. Her er kommandoene:
sudo dnf install flex
sudo dnf install bison
sudo dnf install make
Manjaro trengte GCC-kompilatoren, Flex og Bison installert. Her er kommandoene:
sudo pacman -Syu gcc
sudo pacman -Syu flex
sudo pacman -Syu bison
Klone depotet
Hvert GitHub-depot har en unik nettadresse som brukes med Git for å klone depotet til datamaskinen. På hovedsiden til bokser-depotet er det en grønn knapp som heter «Klon eller last ned».
Klikk på knappen for å vise nettadressen. Dette er adressen vi må oppgi i git-kommandoen når vi kloner depotet.
Gå til katalogen der du ønsker at depotet skal klones, og bruk deretter denne kommandoen. Hvis terminalvinduet ditt støtter det, kan du kopiere og lime inn nettadressen i kommandoen. Trykk Ctrl+Shift+V for å lime inn i et GNOME-terminalvindu.
Git kloner det eksterne depotet og oppretter et lokalt depot på datamaskinen din. Den forteller oss at det klones til en katalog som heter «bokser».
«Bokser»-katalogen opprettes i katalogen du kjørte git-kommandoen fra. Hvis vi bytter til «bokser»-katalogen og ser på innholdet, finner vi den samme listen over filer og mapper som vi så på GitHub-siden.
<img loading="lazy" decoding="async" src="http://wilku.top/wp-content/uploads/2020/12/1607534945_117_How-to-Install-Software