Installerar 2019 Arch Linux på en Vultr-server
Inledning Arch Linux har en mindre, men fortfarande stark, efterföljare än mer populära distributioner. Dess filosofi är helt annorlunda, med fördelar en
Paketet Devtools skapades ursprungligen för betrodda användare för att korrekt skapa paket för de officiella förråden. Det kan dock användas av vanliga användare också för att bygga AUR-paket, eller till och med modifierade officiella paket.
Se den här guiden för att förstå och använda AUR i allmänhet, inklusive för att få PKGBUILD
. Det här dokumentet visar bara stegen som är specifika för Devtools, om det är den metod du väljer för att kompilera ett paket.
Devtools upprätthåller en separat ren Arch-installation, belägen i /var/lib/archbuild/<TARGET>/root
, som bara innehåller paketgrupper base
och base-devel
. Om den här rena installationen inte finns skapas den automatiskt. Om den finns uppdaterar den automatiskt alla paket i den. När Devtools används för att bygga ett paket, börjar det med en kopia av den här rena installationen, installerar endast nödvändiga paket i kopian, kopierar källkoden till den, utför kompileringen och paketeringen i den och kopierar bara ut det resulterande paketet, i identisk form från vad som finns i de officiella arkiven.
Det finns fördelar med Devtools framför att köra makepkg
direkt. En fördel är att base-devel
och andra paket som krävs för att kompilera, men inte köra, paketet du skapar aldrig hamnar i ditt huvudsystem. Det är färre paket att behöva regelbundet uppgradera, och ha oro över. Även om det i första hand är en fördel för underhållare av Arch-paket, avslöjar denna process lätt när a PKGBUILD
är felaktig, till exempel om ett beroende missas från att listas som underhållaren råkar ha redan installerat i deras huvudsystem. Du kan också använda en maskin som är snabbare på att bygga paket och kopiera det resulterande paketet till en långsammare maskin som kör det, utan att förorena byggmaskinens installation.
Den största nackdelen är att den rena roten alltid finns där, tar cirka 800 MB, och vanligtvis tar en enda kopia mer utrymme. Observera att om du /var/lib/archbuild/
använder Btrfs börjar kopian av den rena roten vara en Btrfs ögonblicksbild, så dessa filer tar inte dubbelt så mycket utrymme. Den rena roten hålls alltid där för att undvika att installera om den varje gång ett paket görs.
Installera Devtools:
# pacman -S devtools
För att bygga ett paket innehåller Devtools archbuild
, men du kör inte detta direkt. Den innehåller också symboliska länkar för {extra, gnome-unstable, kde-unstable, staging, testing}-x86_64-build
. Symbollänken som används för att köra den kommer att inspekteras av archbuild
, för att avgöra vilket mål du vill att den ska använda. Det kan köras för att använda dessa instabila/staging/testande arkiv, som kan ha nyare versioner än de som har släppts till de officiella arkiven. För att använda de officiella arkiven för icke-AUR-paket, i katalogen med PKGBUILD
, till exempel katalogen gjord av git clone
, kör följande:
$ extra-x86_64-build
Obs: Resten av den här guiden kommer helt enkelt att hänvisa till extra-x86_64-build
.
När den är klar kommer följande resultat att bli:
/var/lib/archbuild/extra-x86_64/root
- En ren chroot , som är en uppdaterad installation med endast paketgrupper base
och base-devel
./var/lib/archbuild/extra-x86_64/<USERNAME>
- Det här kommer att innehålla en build-chroot . Detta är en kopia av den rena chrooten med eventuella beroenden som krävs för att bygga eller köra paketet som byggs, såväl som dess källkod, kompileringsresultat och paket.I slutet kanske du märker " Checking PKGBUILD
" och " Checking <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz
". Alla rader efter dessa matas ut från namcap
, som automatiskt letar efter problem som felaktiga PKGBUILD
filer, inkluderade beroenden som paketet inte verkar använda, beroenden som inte ingår som paketet verkar använda och mer. Falska positiva resultat genereras ofta av namcap
, men är ett utmärkt verktyg för att ge saker att undersöka. Om ditt paket fungerar korrekt är det inte en bra idé att varna underhållaren om namcap
utdata, såvida du inte har tittat på det och verifierat att en ändring bör göras.
Du kan använda för pacman
att installera paketet, vilket kommer att installera alla beroenden som krävs för att köra paketet så länge de finns i officiella arkiv eller ett lokalt arkiv.
Använd antingen ett lokalt arkiv enligt beskrivningen här eller installera filen direkt:
# pacman -U <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz
Om du skulle köra extra-x86_64-build
igen, just nu, eller när som helst senare med detta eller ett annat paket, kommer det att uppdatera den rena chrooten om det behövs, ta bort build-chrooten och göra den till en ny kopia av den rena chrooten och utföra samma process. Om din katalog fortfarande har källkoden nedladdad från förra gången, kommer den att använda den. Om paketet är ett utvecklings-AUR-paket kommer det att dra nya ändringar snarare än att klona om.
Internt extra-x86_64-build
körs makechrootpkg
, som internt anropar makepkg
. Alternativen för extra-x86_64-build
inkluderar följande:
-c
: Rengör chroots genom att ta bort och återskapa hela /var/lib/archbuild/extra-x86_64/
katalogen, inklusive dess rena chroot och alla build chroot-kataloger. Detta behövs sällan, bara om den rena chrooten blir skadad eller om Devtools uppgraderas på ett sätt som bryter bakåtkompatibiliteten.-r <dir>
: Använd en annan katalog än för /var/lib/archbuild/extra-x86_64/
att innehålla chroots.Eventuella argument till extra-x86_64-build
efter --
skickas till makechrootpkg
, när den internt använder den. Flera argument skickas alltid automatiskt från extra-x86_64-build
till makechrootpkg
. Dessa automatiska argument är -r <value given to extra-x86_64-build -r option if given, /var/lib/archbuild/extra-x86_64 otherwise> -c -n
. De ber om makechrootpkg
att ta bort bygg-chroot och göra den till en ny kopia av den rena chroot, och att köra namcap
på paketet om det lyckas bygga. Ett vanligt använda alternativ som kan skickas till makechrootpkg
är -l <copy name>
. Detta är katalognamnet för att ge build-chroot, istället för <USERNAME>
, vilket är användbart för att underhålla flera kopior eller kompilera flera paket samtidigt.
Eventuella argument till makechrootpkg
efter --
skickas till makepkg
, när det internt använder det för att bygga paketet. Första gången makepkg
körs av makechrootpkg
görs det med sina egna oföränderliga alternativ, för att ladda ner källfiler, om det behövs, och utföra integritetskontroller; sålunda kan ingenting vidarebefordras på denna körning. Det körs makepkg
en andra gång för att bygga paketet, och skickar alltid automatiskt makepkg
argument --syncdeps --noconfirm --log --holdver --skipinteg
som talar om för makepkg
att, inom build-chroot, automatiskt installera saknade beroenden som krävs för att bygga och använda paketet, att inte be om bekräftelse under pacman
, logga byggprocessen till text filer utöver stdout
, uppdatera inte källkoden om du är i ett versionskontrollsystem och utför inte kontroller av källfilsverifiering.
Du kan koppla ihop dessa genom att använda följande formulär:
$ extra-x86_64-build <DEVTOOLS-OPTIONS> -- <MAKECHROOTPKG-OPTIONS> -- <MAKEPKG-OPTIONS>
Observera att det /var/lib/archbuild
kan behandlas som om det vore en tillfällig katalog. Om du har flera Vultr-hårddiskar är det värt att montera ett RAID0 (stripe) filsystem här. Om du har mycket RAM-minne kan du också montera ett RAM-stödt filsystem som tmpfs
. Efter att ett paket har byggts kopieras det ut till katalogen du sprang extra-x86_64-build
från och om du ville kan du vid det här laget ta bort /var/lib/archbuild
. Nästa körning skulle vara långsammare, eftersom den skulle behöva göra en ny ren rot. Alternativt kan du ta bort för /var/lib/archbuild/<USERNAME>
att återta extra utrymme från build-chroot innan det automatiskt raderas vid nästa körning av Devtools. Så även om du hade ett RAID0-filsystem monterat här misslyckas, skulle det mesta du skulle förlora vara en kompilering på gång.
Det finns några detaljer att notera med Devtools konfigurationsfiler. De finns i /usr/share/devtools/
, såsom makepkg-x86_64.conf
och pacman-extra.conf
:
/etc
filer som makepkg.conf
och pacman.conf
kan du säkert redigera dem på plats, och när paketet uppgraderas kommer det inte att skriva över dina ändringar. Snarare sparas de nya konfigurationsfilerna (om de ändrades från den tidigare versionen) som slutar med .pacnew
. Däremot finns Devtools konfigurationsfiler /usr/share/
som inte är avsedda att redigeras av användaren, så när Devtools uppgraderas kommer det att helt skriva över dina ändringar av dessa filer utan att varna dig. En ändring av detta beteende har föreslagits och avvisats, eftersom detta hjälper till att säkerställa att paket skickas till de officiella arkiven, alla med samma kompileringsinställningar.MAKEFLAGS
, PACKAGER
, och {SRC,SRCPKG,PKG,LOG}DEST
tas från /etc/makepkg.conf
snarare än /usr/share/devtools/makepkg-x86_64.conf
.Om du bygger paket som har beroenden av andra paket som du har byggt, måste du använda ett lokalt arkiv, så att när det pacman
körs inom build-chrooten hittar det beroenden.
För att ställa in ett lokalt arkiv, se avsnittet "Lokalt arkiv" i den här guiden .
Skapa ett anpassat mål:
# ln -s archbuild /usr/bin/custom-x86_64-build
# cp /usr/share/devtools/pacman-{extra,custom}.conf
Redigera /usr/share/devtools/pacman-custom.conf
och lägg till följande i slutet:
[archLocalRepo]
SigLevel = Optional TrustAll
Server = file:///archLocalRepo
Redigera /etc/pacman.conf
och lägg till följande. Detta tvingar katalogen att bindas monterad i chroot:
CacheDir = /var/cache/pacman/pkg/ /archLocalRepo/
Nu, istället för att använda, extra-x86_64-build
använd detta:
$ custom-x86_64-build
Om du alltid vill använda det anpassade målet kan du ta bort /var/lib/archbuild/extra-x86_64-build/
katalogen om den finns, eftersom chroots nu kommer att finnas i /var/lib/archbuild/custom-x86_64-build/
.
Notera att aktivera trådad paketering innebär att /usr/share/devtools
konfigurationsfilerna redigeras , vilket inte stöds officiellt, så du måste utföra denna ändring varje gång Devtools uppgraderas.
Devtools kombinerar ett helt paket till ett arkivformat. Som standard .tar.xz
använder den en enda tråd för xz
komprimeringen.
På system med flera processorer kan du tillåta xz
att använda flera trådar genom att redigera /usr/share/devtools/makepkg-x86_64.conf
och ändra följande rad:
COMPRESSXZ=(xz -c -z -)
För att tillåta så många trådar som du har virtuella kärnor:
COMPRESSXZ=(xz -c -z - --threads=0)
För att tillåta användning av flera virtuella kärnor, men inte alla, för att minska påverkan på systemets övergripande prestanda, lägg till ett specifikt antal:
COMPRESSXZ=(xz -c -z - --threads=21)
Om du anger fler trådar än antalet virtuella kärnor du har minskar prestandan.
Om du inte har något emot att paketfilen är (potentiellt mycket) större, inaktivera komprimering genom att redigera /usr/share/devtools/makepkg-x86_64.conf
och ändra följande rad:
PKGEXT='.pkg.tar.xz'
Ändra det så att det ser ut så här:
PKGEXT='.pkg.tar'
Inledning Arch Linux har en mindre, men fortfarande stark, efterföljare än mer populära distributioner. Dess filosofi är helt annorlunda, med fördelar en
Vultr ger dig den fantastiska funktionaliteten att låta dig använda din egen anpassade bild förutom deras utmärkta mallar, vilket gör att du kan köra
Paketet Devtools skapades ursprungligen för betrodda användare för att korrekt skapa paket för de officiella förråden. Det kan dock användas av vanliga användare
Om du använder makepkg direkt, förorenar det ditt system något. Bas-devel-paketgruppen måste installeras. På detta sätt, som standard, behövs endast beroenden
Förutsättningar En Vultr-server som kör uppdaterad Arch Linux (se den här artikeln.) Sudo-åtkomst. Kommandon som krävs för att köras som root har prefixet # och ett
Förutsättningar En Vultr-server som kör uppdaterad Arch Linux (se den här artikeln.) En webbserver som körs, antingen Apache eller Nginx Sudo-åtkomstkommandon krävs t
Förord Arch Linux är en allmän distribution välkänd för sin banbrytande teknologi och flexibla konfiguration. Med Btrfs ögonblicksbilder kan vi ta
På Arch Linux är de officiella förråden: kärna, extra och community. Dessa paket är redan kompilerade och de installeras via pacman. För th
Denna handledning förklarar hur man ställer in en Minecraft-server med Spigot på Arch Linux. Denna handledning förutsätter att du är en normal användare (inte-root) och hav
Förutsättningar En Vultr-server som kör uppdaterad Arch Linux (se den här artikeln.) Sudo-åtkomst. Kommandon som krävs för att köras som root har # prefix. Th
Förutsättningar En Vultr-server som kör uppdaterad Arch Linux. Se den här guiden för mer information. Sudo tillgång. Kommandon som krävs för att köras som root ar
Förutsättningar En Vultr-server som kör uppdaterad Arch Linux (se den här artikeln.) En webbserver som körs, antingen Apache eller Nginx Sudo-åtkomst: Kommandon kräver
Förutsättningar En Vultr-server som kör uppdaterad Arch Linux (se den här artikeln.) En webbserver som körs, antingen Apache eller Nginx Sudo-åtkomst: Kommandon kräver
Förutsättningar En Vultr-server som kör uppdaterad Arch Linux (se den här artikeln.) En webbserver som körs, antingen Apache- eller Nginx Sudo-åtkomst. Kommandon kräver
Denna handledning förklarar hur man ställer in en Mumble-server (Murmur) på Arch Linux. Allt som görs i denna handledning görs som rotanvändare. Installation en
Denna handledning förklarar hur man ställer in en Counter-Strike: Global Offensive-server på Arch Linux. Den här handledningen förutsätter att du har loggat in med standardanvändning
Denna handledning förklarar hur man ställer in en Team Fortress 2-server på Arch Linux. Jag antar att du är inloggad med ett icke-root användarkonto som har sudo-åtkomst
Förutsättningar En Vultr-server som kör uppdaterad Arch Linux (se den här artikeln.) Sudo-åtkomst: Kommandon som krävs för att köras som root har prefixet #, och en
Förutsättningar En Vultr-server som kör uppdaterad Arch Linux (se den här artikeln) Sudo-åtkomst: Kommandon som krävs för att köras som root har prefixet #, och en
Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.
Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.
Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.
Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.
Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...
När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.
Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.
Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.
I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.
Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer