Installation af 2019 Arch Linux på en Vultr-server
Introduktion Arch Linux har en mindre, men stadig stærk, følge end mere populære distributioner. Dens filosofi er helt anderledes, med fordele en
Pakken Devtools blev oprindeligt lavet til betroede brugere til korrekt at oprette pakker til de officielle repositories. Det kan dog også bruges af almindelige brugere til at bygge AUR-pakker eller endda modificerede officielle pakker.
Se denne vejledning for at forstå og bruge AUR generelt, herunder opnåelse af PKGBUILD
. Dette dokument viser kun de trin, der er specifikke for Devtools, hvis det er den metode, du vælger til at kompilere en pakke.
Devtools vedligeholder en separat ren Arch-installation, placeret i /var/lib/archbuild/<TARGET>/root
, som kun indeholder pakkegrupper base
og base-devel
. Hvis denne rene installation ikke findes, opretter den den automatisk. Hvis den eksisterer, opdaterer den automatisk alle pakker i den. Når Devtools bruges til at bygge en pakke, starter den med en kopi af denne rene installation, installerer kun nødvendige pakker i kopien, kopierer kildekoden ind i den, udfører kompilering og pakning i den og kopierer kun den resulterende pakke, i identisk form fra hvad der findes i de officielle depoter.
Der er fordele ved Devtools frem for at køre makepkg
direkte. En fordel er, at base-devel
og andre pakker, der er nødvendige for at kompilere, men ikke køre, den pakke, du laver, aldrig ender i dit hovedsystem. Det er færre pakker at skulle periodisk opgradere og have bekymringer om. Selvom det primært er en fordel for Arch-pakkevedligeholdere, afslører denne proces nemt, når a PKGBUILD
er forkert, såsom hvis en afhængighed savnes fra at blive opført, som vedligeholderen tilfældigvis allerede har installeret i deres hovedsystem. Du kan også bruge en maskine, der er hurtigere til at bygge pakker, og kopiere den resulterende pakke til en langsommere maskine, der vil køre den, uden at forurene byggemaskinens installation.
Den største ulempe er, at den rene rod altid er der, tager omkring 800 MB, og normalt tager en enkelt kopi mere plads. Bemærk, hvis du /var/lib/archbuild/
bruger Btrfs, starter kopien af den rene rod med at være et Btrfs-øjebliksbillede, så disse filer tager ikke dobbelt plads. Den rene rod opbevares altid der for at undgå at geninstallere den, hver gang en pakke laves.
Installer Devtools:
# pacman -S devtools
For at bygge en pakke inkluderer Devtools archbuild
, men du kører ikke denne direkte. Det inkluderer også symbolske links til {extra, gnome-unstable, kde-unstable, staging, testing}-x86_64-build
. Symlinket bliver brugt til at køre det vil blive inspiceret af archbuild
, for at bestemme hvilket mål du vil have det til at bruge. Det kan køres for at bruge disse ustabile/iscenesættelse/testdepoter, som kan have nyere versioner end de er blevet frigivet til de officielle lagre. For at bruge de officielle depoter til ikke-AUR-pakker skal du køre følgende i mappen med PKGBUILD
, for eksempel mappen lavet af git clone
:
$ extra-x86_64-build
Bemærk: Resten af denne vejledning vil blot henvise til extra-x86_64-build
.
Når den er færdig med at køre, vil følgende være resultaterne:
/var/lib/archbuild/extra-x86_64/root
- En ren chroot , som er en opdateret installation med kun pakkegrupper base
og base-devel
./var/lib/archbuild/extra-x86_64/<USERNAME>
- Dette vil indeholde en build-chroot . Dette er en kopi af den rene chroot med eventuelle afhængigheder, der kræves for at bygge eller køre den pakke, der bygges, såvel som dens kildekode, kompileringsresultater og pakke.I slutningen vil du muligvis bemærke " Checking PKGBUILD
" og " Checking <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz
". Eventuelle linjer efter disse udsendes fra namcap
, som automatisk søger efter problemer som misdannede PKGBUILD
filer, inkluderede afhængigheder, som pakken ikke ser ud til at bruge, afhængigheder, der ikke er inkluderet, som pakken ser ud til at bruge, og mere. Falske positiver genereres ofte af namcap
, men er et fantastisk værktøj til at give ting at undersøge. Hvis din pakke fungerer korrekt, er det ikke en god idé at advare vedligeholderen om namcap
output, medmindre du har kigget på det og bekræftet, at der skal foretages en ændring.
Du kan bruge pacman
til at installere pakken, som vil installere alle afhængigheder, der kræves for at køre pakken, så længe de er i officielle arkiver eller et lokalt arkiv.
Brug enten et lokalt lager som forklaret her , eller installer filen direkte:
# pacman -U <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz
Hvis du skulle køre extra-x86_64-build
igen, lige nu, eller når som helst senere med denne eller en anden pakke, vil den opdatere den rene chroot, hvis det er nødvendigt, slette build-chrooten og gøre den til en ny kopi af den rene chroot og udføre den samme proces. Hvis din mappe stadig har kildekoden downloadet fra sidste gang, vil den bruge den. Hvis pakken er en udviklingsorienteret AUR-pakke, vil den trække nye ændringer frem for at klone igen.
Internt extra-x86_64-build
kører makechrootpkg
, som internt kalder makepkg
. Mulighederne for extra-x86_64-build
omfatter følgende:
-c
: Rens chroots ved at fjerne og genskabe hele /var/lib/archbuild/extra-x86_64/
mappen, inklusive dens rene chroot og alle build chroot mapper. Dette er sjældent nødvendigt, kun hvis den rene chroot bliver ødelagt, eller hvis Devtools er opgraderet på en måde, der bryder bagudkompatibiliteten.-r <dir>
: Brug en anden mappe end /var/lib/archbuild/extra-x86_64/
til at indeholde chroots.Eventuelle argumenter til extra-x86_64-build
efter --
sendes til makechrootpkg
, når det internt bruger det. Flere argumenter overføres altid automatisk fra extra-x86_64-build
til makechrootpkg
. Disse automatiske argumenter er -r <value given to extra-x86_64-build -r option if given, /var/lib/archbuild/extra-x86_64 otherwise> -c -n
. De beder om makechrootpkg
at fjerne build-chroot og gøre den til en ny kopi af den rene chroot, og at køre namcap
på pakken, hvis den bygger med succes. En almindeligt brugt mulighed, der kan videregives til, makechrootpkg
er -l <copy name>
. Dette er mappenavnet til at give build-chroot i stedet for <USERNAME>
, hvilket er nyttigt til at vedligeholde flere kopier eller kompilere flere pakker på samme tid.
Eventuelle argumenter til makechrootpkg
efter --
sendes til makepkg
, når det internt bruger det til at bygge pakken. Den første gang makepkg
køres af makechrootpkg
, det gøres med sine egne uforanderlige muligheder, for at downloade kildefiler, hvis det er nødvendigt, og udføre integritetstjek; derfor kan intet videresendes på denne kørsel. Den kører makepkg
en anden gang for at bygge pakken, og sender altid automatisk makepkg
argumenter, --syncdeps --noconfirm --log --holdver --skipinteg
som fortæller makepkg
, at man inden for build-chrooten automatisk installerer manglende afhængigheder, der kræves for at bygge og bruge pakken, ikke at bede om bekræftelse under pacman
, logge byggeprocessen til tekst filer ud over stdout
, opdater ikke kildekoden, hvis du er i et versionskontrolsystem, og udfør ikke kontrol af kildefilen.
Du kan kæde disse sammen ved at bruge følgende formular:
$ extra-x86_64-build <DEVTOOLS-OPTIONS> -- <MAKECHROOTPKG-OPTIONS> -- <MAKEPKG-OPTIONS>
Bemærk, at det /var/lib/archbuild
kan behandles som om det var en midlertidig mappe. Hvis du har flere Vultr-harddiske, er det umagen værd at montere et RAID0 (stribe) filsystem her. Hvis du har meget RAM, kan du også montere et RAM-understøttet filsystem som tmpfs
. Efter en pakke er bygget, kopieres den ud i den mappe, du løb extra-x86_64-build
fra, og hvis du ville, kunne du på dette tidspunkt slette /var/lib/archbuild
. Den næste kørsel ville være langsommere, fordi den skulle lave en ny ren rod. Alternativt kan du slette for /var/lib/archbuild/<USERNAME>
at genvinde ekstra plads fra build-chroot, før den automatisk slettes ved næste kørsel af Devtools. Så selvom du havde et RAID0-filsystem monteret her mislykkedes, ville det mest du ville miste være en kompilering i gang.
Der er et par detaljer at bemærke med Devtools konfigurationsfiler. De er placeret i /usr/share/devtools/
, såsom makepkg-x86_64.conf
og pacman-extra.conf
:
/etc
filer som makepkg.conf
og pacman.conf
, kan du sikkert redigere dem på plads, og når pakken er opgraderet, vil den ikke overskrive dine ændringer. Det vil snarere gemme de nye konfigurationsfiler (hvis de er ændret fra den tidligere version), der slutter med .pacnew
. Devtools konfigurationsfiler er /usr/share/
dog ikke beregnet til at blive brugerredigeret, så når Devtools opgraderes, vil det fuldstændigt overskrive dine ændringer til disse filer uden at advare dig. En ændring af denne adfærd er blevet foreslået og afvist, fordi dette hjælper med at sikre, at pakker sendes til de officielle lagre, alle med de samme kompileringsindstillinger.MAKEFLAGS
, PACKAGER
, og {SRC,SRCPKG,PKG,LOG}DEST
er taget fra /etc/makepkg.conf
snarere end /usr/share/devtools/makepkg-x86_64.conf
.Hvis du bygger pakker, der har afhængigheder til andre pakker, du har bygget, skal du bruge et lokalt lager, så pacman
det finder afhængighederne , når det kører i build-chrooten.
Se afsnittet "Lokalt lager" i denne vejledning for at konfigurere et lokalt lager .
Opret et tilpasset mål:
# ln -s archbuild /usr/bin/custom-x86_64-build
# cp /usr/share/devtools/pacman-{extra,custom}.conf
Rediger /usr/share/devtools/pacman-custom.conf
, og tilføj følgende til sidst:
[archLocalRepo]
SigLevel = Optional TrustAll
Server = file:///archLocalRepo
Rediger /etc/pacman.conf
, og tilføj følgende. Dette tvinger mappen til at blive bind monteret i chroot:
CacheDir = /var/cache/pacman/pkg/ /archLocalRepo/
extra-x86_64-build
Brug nu dette i stedet for at bruge:
$ custom-x86_64-build
Hvis du altid vil bruge det tilpassede mål, kan du slette /var/lib/archbuild/extra-x86_64-build/
mappen, hvis den findes, da chroots nu vil være i /var/lib/archbuild/custom-x86_64-build/
.
Bemærk, at aktivering af threaded packaging involverer redigering af /usr/share/devtools
konfigurationsfilerne, som ikke er officielt understøttet, så du bliver nødt til at udføre denne ændring, hver gang Devtools opgraderes.
Devtools kombinerer en hel pakke til et arkivformat. Som standard .tar.xz
bruger den en enkelt tråd til xz
komprimeringen.
På multi-CPU-systemer kan du tillade xz
at bruge flere tråde ved at redigere /usr/share/devtools/makepkg-x86_64.conf
og ændre følgende linje:
COMPRESSXZ=(xz -c -z -)
For at tillade så mange tråde, som du har virtuelle kerner:
COMPRESSXZ=(xz -c -z - --threads=0)
For at tillade brug af flere virtuelle kerner, men ikke dem alle, for at reducere indvirkningen på den samlede systemydelse, skal du tilføje et specifikt tal:
COMPRESSXZ=(xz -c -z - --threads=21)
Angivelse af flere tråde end antallet af virtuelle kerner, du har, vil reducere ydeevnen.
Hvis du ikke har noget imod, at pakkefilen er (potentielt meget) større, skal du deaktivere komprimering ved at redigere /usr/share/devtools/makepkg-x86_64.conf
og ændre følgende linje:
PKGEXT='.pkg.tar.xz'
Skift det til at se sådan ud:
PKGEXT='.pkg.tar'
Introduktion Arch Linux har en mindre, men stadig stærk, følge end mere populære distributioner. Dens filosofi er helt anderledes, med fordele en
Vultr giver dig den fantastiske funktionalitet ved at lade dig bruge dit eget brugerdefinerede billede ud over deres fremragende skabeloner, som giver dig mulighed for at køre
Pakken Devtools blev oprindeligt lavet til betroede brugere til korrekt at oprette pakker til de officielle repositories. Det kan dog bruges af almindelige brugere
Hvis du bruger makepkg direkte, forurener det en del dit system. Base-devel-pakkegruppen skal installeres. På denne måde kræves der som standard kun afhængigheder
Forudsætninger En Vultr-server, der kører up to date Arch Linux (se denne artikel.) Sudo-adgang. Kommandoer, der kræves for at blive kørt som root, har # og én foran
Forudsætninger En Vultr-server, der kører opdateret Arch Linux (se denne artikel.) En kørende webserver, enten Apache eller Nginx Sudo-adgangskommandoer påkrævet t
På Arch Linux er de officielle depoter: kerne, ekstra og fællesskab. Disse pakker er allerede kompileret, og de er installeret gennem pacman. For th
Denne tutorial forklarer, hvordan man opsætter en Minecraft-server ved hjælp af Spigot på Arch Linux. Denne vejledning antager, at du er en normal bruger (ikke-root) og hav
Forudsætninger En Vultr-server, der kører up to date Arch Linux (se denne artikel.) Sudo-adgang. Kommandoer, der skal køres som root, har # foran. Th
Forudsætninger En Vultr-server, der kører up to date Arch Linux. Se denne vejledning for mere information. Sudo adgang. Kommandoer, der skal køres som root ar
Forudsætninger En Vultr-server, der kører up to date Arch Linux (se denne artikel.) En kørende webserver, enten Apache- eller Nginx Sudo-adgang: Kommandoer kræver
Forord Arch Linux er en distribution til generelle formål, der er kendt for sin avancerede teknologi og fleksible konfiguration. Med Btrfs snapshots kan vi tage
Forudsætninger En Vultr-server, der kører up to date Arch Linux (se denne artikel.) En kørende webserver, enten Apache- eller Nginx Sudo-adgang: Kommandoer kræver
Forudsætninger En Vultr-server, der kører up to date Arch Linux (se denne artikel.) En kørende webserver, enten Apache- eller Nginx Sudo-adgang. Kommandoer kræver
Denne vejledning forklarer, hvordan man opsætter en Mumble-server (Murmur) på Arch Linux. Alt, der udføres i denne tutorial, udføres som root-brugeren. Installation en
Denne vejledning forklarer, hvordan man opsætter en Counter-Strike: Global Offensive-server på Arch Linux. Denne vejledning forudsætter, at du er logget ind med en standardbrug
Denne vejledning forklarer, hvordan du opsætter en Team Fortress 2-server på Arch Linux. Jeg antager, at du er logget ind med en ikke-root brugerkonto, der har sudo-adgang
Forudsætninger En Vultr-server, der kører up to date Arch Linux (se denne artikel.) Sudo-adgang: Kommandoer, der kræves for at blive kørt som root, er foranstillet med #, og en
Forudsætninger En Vultr-server, der kører up to date Arch Linux (se denne artikel) Sudo-adgang: Kommandoer, der kræves for at blive kørt som root, er foranstillet med #, og en
Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.
Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.
Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.
Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.
Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...
Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.
Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af dataene. Denne blog dækker udviklingen af datalagring på basis af en infografik.
Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.
I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.
For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af mac-maskiner. Læs denne artikel for at lære mere