Snapcraft.yaml
snapcraft.yaml - Konfigurationsfil för Snap-applikationer
`snapcraft.yaml` är en konfigurationsfil som används för att definiera hur en Snap-applikation byggs och paketeras. Den innehåller all nödvändig information för att skapa en Snap, inklusive metadata, bygginstruktioner och beroenden.
NAMN
snapcraft.yaml - Konfigurationsfil för Snap-applikationer
SYNOPSIS
name: applikationsnamn
version: 'version'
summary: Kort beskrivning av applikationen
description: |
Lång beskrivning av applikationen
grade: stable | devel
confinement: strict | classic | devmode
apps:
applikationsnamn:
command: kommando
plugs: [pluggar]
parts:
delnamn:
plugin: pluginnamn
source: källa
build-packages:
- paket
stage-packages:
- paket
BESKRIVNING
`snapcraft.yaml` är hjärtat av en Snap-byggeprocess. Den specificerar all information som behövs för att bygga och paketera en Snap-applikation. Filen består av flera sektioner, inklusive metadata om applikationen, bygginstruktioner och beroenden.
PARAMETRAR
Här är en detaljerad beskrivning av de vanligaste parametrarna som används i `snapcraft.yaml`:
- name - Namnet på Snap-applikationen. Detta måste vara unikt.
- version - Versionen av applikationen. Detta kan vara en statisk sträng eller ett dynamiskt värde.
- summary - En kort beskrivning av applikationen (max 79 tecken).
- description - En längre beskrivning av applikationen. Detta kan innehålla fler detaljer om applikationens funktionalitet.
- grade - Applikationens stabilitetsgrad. Detta kan vara `stable` för stabila utgåvor eller `devel` för utvecklingsversioner.
- confinement - Säkerhetsinställningen för applikationen. Detta kan vara `strict` för strikt isolering, `classic` för klassisk isolering eller `devmode` för utvecklingsläge.
APPS-SEKTION
Apps-sektionen definierar de exekverbara kommandona som Snap-applikationen tillhandahåller. Här är några vanliga parametrar:
- command - Kommandot som ska köras när applikationen startas.
- plugs - En lista över pluggar som applikationen behöver ansluta till för att få åtkomst till specifika systemresurser.
PARTS-SEKTION
Parts-sektionen definierar de olika delarna av byggprocessen. Varje del specificerar hur en viss del av applikationen ska byggas och vilka beroenden den har. Här är några vanliga parametrar:
- plugin - Pluginnamnet som ska användas för att bygga delen.
- source - Källkoden för delen. Detta kan vara en lokal katalog eller en URL till ett fjärrrepository.
- build-packages - En lista över paket som behövs för att bygga delen.
- stage-packages - En lista över paket som behövs under staging-fasen.
ANVÄNDNING
Här är flera exempel på hur man använder `snapcraft.yaml` för att definiera och bygga en Snap-applikation:
Enkel Snap-konfiguration
För att skapa en enkel Snap-applikation som kör ett skript:
name: myscript
version: '1.0'
summary: Ett enkelt skript
description: |
Detta är en enkel Snap-applikation som kör ett skript.
grade: stable
confinement: strict
apps:
myscript:
command: bin/myscript.sh
parts:
myscript:
plugin: dump
source: .
build-packages:
- bash
stage-packages:
- bash
Detta exempel skapar en Snap-applikation som kör ett Bash-skript.
Snap med flera delar
För att skapa en Snap-applikation med flera delar:
name: myapp
version: '2.0'
summary: En komplex applikation
description: |
Detta är en komplex Snap-applikation med flera delar.
grade: devel
confinement: devmode
apps:
myapp:
command: bin/myapp
plugs: [network, home]
parts:
part1:
plugin: autotools
source: https://example.com/source1.tar.gz
build-packages:
- build-essential
stage-packages:
- libfoo1
part2:
plugin: cmake
source: https://example.com/source2.tar.gz
build-packages:
- cmake
stage-packages:
- libbar1
Detta exempel skapar en Snap-applikation med två delar, där varje del byggs med olika verktyg och har olika beroenden.
Dynamisk version
För att använda en dynamisk version i `snapcraft.yaml`:
name: myapp
version: git
summary: En applikation med dynamisk version
description: |
Detta är en Snap-applikation med en dynamisk version baserad på git.
grade: stable
confinement: strict
apps:
myapp:
command: bin/myapp
parts:
myapp:
plugin: dump
source: .
build-attributes: [no-patchelf]
build-packages:
- git
stage-packages:
- git
override-build: |
snapcraftctl build
echo "version: $(git describe --tags)" > $SNAPCRAFT_PART_INSTALL/version
Detta exempel använder git för att bestämma versionen av Snap-applikationen.
SKILLNADER MELLAN macOS OCH LINUX
Det finns vissa skillnader att tänka på när man använder `snapcraft.yaml` på macOS jämfört med Linux:
- macOS: `snapcraft` är huvudsakligen utvecklat för Linux-system och kan inte användas på macOS utan att installera en Linux-miljö eller container. macOS använder Homebrew och andra verktyg för att hantera paketering och distribution av applikationer, och det finns inga direkta motsvarigheter till `snapcraft.yaml` på macOS.
- Linux: `snapcraft` är designat för att fungera på en mängd olika Linux-distributioner och används för att hantera bygg- och paketeringsprocessen för Snap-applikationer. Det erbjuder en enhetlig lösning för pakethantering och distribution, vilket gör det idealiskt för användning på både skrivbord och servrar.
FELSÖKNING
Om du får ett felmeddelande när du använder `snapcraft.yaml`, kontrollera följande:
Att du använder rätt syntax och alternativ för ditt specifika kommando. Att alla nödvändiga beroenden är korrekt konfigurerade. Att du har tillräckliga användarrättigheter för att bygga och hantera Snap-applikationer.
Vanliga fel och deras lösningar:
- Felmeddelande: "error: Failed to pull source":
* Lösning: Kontrollera att källan är korrekt angiven och att nätverksanslutningen fungerar. Använd `snapcraft pull` för att testa nedladdningen av källan.
- Felmeddelande: "error: Build failed":
* Lösning: Kontrollera bygginstruktionerna och beroendena i `snapcraft.yaml`. Använd `snapcraft clean` och försök igen.
- Felmeddelande: "error: Permission denied":
* Lösning: Kontrollera att du har nödvändiga behörigheter att bygga och hantera Snap-applikationer. Använd `sudo` om nödvändigt.
AVANCERAD ANVÄNDNING
`snapcraft.yaml` erbjuder avancerade funktioner för att hantera bygg- och paketeringsprocessen mer effektivt. Här är några exempel:
Använda build-override
För att använda anpassade byggkommandon med `override-build`:
EXEMPEL
parts:
myapp:
plugin: dump
source: .
override-build: |
snapcraftctl build
echo "Doing custom build steps"
Detta kommando kör anpassade byggsteg under byggprocessen.
Hantera flera versioner av beroenden
För att specificera flera versioner av beroenden:
EXEMPEL
parts:
myapp:
plugin: python
source: .
build-packages:
- python3.6
- python3.8
stage-packages:
- libpython3.6
- libpython3.8
Detta exempel specificerar flera versioner av Python som beroenden.
Bygga för specifika arkitekturer
För att specificera arkitekturer som stöds:
EXEMPEL
architectures:
- build-on: amd64
- build-on: arm64
Detta kommando anger att Snap-applikationen ska byggas för både amd64 och arm64 arkitekturer.
Använda build-snaps
För att använda build-snaps under byggprocessen:
EXEMPEL
parts:
myapp:
plugin: dump
source: .
build-snaps:
- name: build-essential
channel: stable
Detta kommando använder `build-essential` snap under byggprocessen.
SE ÄVEN
- snapcraft - Verktyg för att bygga Snap-applikationer från källkod.
- snap - Verktyg för att hantera Snap-applikationer.
- snapd - Snap daemon som hanterar Snap-applikationer.
FÖRFATTARE
`snapcraft` och `snapcraft.yaml` utvecklades av Canonical och har bidragits till av många utvecklare genom åren.
KOLOFON
Denna sida är en del av dokumentationen för `snapcraft.yaml`, en konfigurationsfil för Snap-applikationer. Mer information om projektet finns på ⟨https://snapcraft.io⟩. Om du har en buggrapport för denna manualsida, se ⟨https://forum.snapcraft.io/c/snapcraft/5⟩. Denna sida erhölls från projektets upstream Git-repository ⟨https://github.com/snapcore/snapcraft.git⟩ den 2023-12-22. Om du upptäcker några renderingsproblem i denna HTML-version av sidan, eller om du tror att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna KOLOFON (som inte är en del av den ursprungliga manualsidan), skicka ett e-postmeddelande till man-pages@man7.org.
KÄLLOR
snapcraft.yaml manual (Snapcraft Documentation) snapcraft.yaml manual (man7)