Differences between revisions 3 and 4
Revision 3 as of 2019-08-15 19:32:50
Size: 5121
Editor: nodiscc
Comment: remove link to empty page
Revision 4 as of 2021-11-30 18:01:23
Size: 5123
Comment: Dom -> de/dem
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:
 * En tarboll, med alla ändringar till upströmskällkoden, plus alla filer som är skapta för Debianpaketet.  * En tarboll, med alla ändringar till uppströmskällkoden, plus alla filer som är skapta för Debianpaketet.
Line 25: Line 25:
=== Varför bry sig om ett källkodspaket när det finns ett binärpkaet ? === === Varför bry sig om ett källkodspaket när det finns ett binärpaket ? ===
Line 30: Line 30:
 * gör det svårt (om inte omöjligt) för en användare/medarbetare att bygga om .deb paketet eftersom det saknar standardisering i byggprocedurerna och beskrivningarna av byggberoendena. Detta mildras ofta genom att uppströmsförfattarna har med detaljerade förklaringar i README-filer, men instruktionerna skiljer sig från paket till paket, och garanteras inte vara fullständiga; vilket gör att tillvägagångssättet inte är rakt på sak och kan vara ömtåligt. Så det är ingen överaskning att Debianpolicyn kräver källkodspaket med standardiserade byggsystem -- Debian behöver bygga om arkitekturoberoende mjukvara för alla (>12) platformar som stöds.  * gör det svårt (om inte omöjligt) för en användare/medarbetare att bygga om .deb paketet eftersom det saknar standardisering i byggprocedurerna och beskrivningarna av byggberoendena. Detta mildras ofta genom att uppströmsförfattarna har med detaljerade förklaringar i README-filer, men instruktionerna skiljer sig från paket till paket, och garanteras inte vara fullständiga; vilket gör att tillvägagångssättet inte är rakt på sak och kan vara ömtåligt. Så det är ingen överraskning att Debianpolicyn kräver källkodspaket med standardiserade byggsystem -- Debian behöver bygga om arkitekturoberoende mjukvara för alla (>12) plattformar som stöds.
Line 70: Line 70:
När du är på paketets sida, välj en distribution, och du kommer hitta länkar till dom tre filerna som bildar källkodspaketet. När du är på paketets sida, välj en distribution, och du kommer hitta länkar till de tre filerna som bildar källkodspaketet.
Line 81: Line 81:
Om du vill bygga optimerade paket från källkod till din maskin för att möjligen få snabbare handhavande, installera och använd [[es/apt-build|apt-build]] (som i sin tur använder apt-get source -b ...) Om du vill bygga optimerade paket från källkod till din maskin för att möjligen få snabbare handhavande, installera och använd [[es/apt-build/apt-build]] (som i sin tur använder apt-get source -b ...)

Translation(s): English - Italiano - Svenska


Presentation

Definition av källkodspaket

Ett källkodspaket innehåller alla filer som krävs för att kompilera eller på annat sätt bygga önskad mjukvara.

Det består, i sin enklaste form, av tre filer:

  • Uppströmstarbollen med filändelsen .tar.gz

  • En beskrivningsfil med filändelsen .dsc. Denna innehåller namnet på paketet, både i dess filnamn, men även i innehållet (efter nyckelordet Source).

  • En tarboll, med alla ändringar till uppströmskällkoden, plus alla filer som är skapta för Debianpaketet.
    • Denna har en filändelse enligt .debian.tar.gz (källkodsformat : 3.0)

    • eller .diff.gz (källkodsformat : 1.0)

Varför skall man se på ett källkodspaket ?

Varför bry sig om ett källkodspaket när det finns ett binärpaket ?

En del byggsystem (tex. cmake) och bygg-skript ger ett enkelt sätt att producera Binärpaket (tex. .deb-filer för Debian, .rpm för RedHat, osv) på ett smidigt sätt. Även om ett sådan tillvägagångssätt kan verka lockande till en början, men det är inte bara otillräckligt för att ladda upp till Debian, där källkodspaket krävs, utan det kan även vara undermåligt, eftersom endast-binär distribution

  • ger inte ett enkelt sätt att hämta källkoden för motsvarande mjukvara (som nu kan göras med hjälp av "apt-get source paket")
  • gör det svårt (om inte omöjligt) för en användare/medarbetare att bygga om .deb paketet eftersom det saknar standardisering i byggprocedurerna och beskrivningarna av byggberoendena. Detta mildras ofta genom att uppströmsförfattarna har med detaljerade förklaringar i README-filer, men instruktionerna skiljer sig från paket till paket, och garanteras inte vara fullständiga; vilket gör att tillvägagångssättet inte är rakt på sak och kan vara ömtåligt. Så det är ingen överraskning att Debianpolicyn kräver källkodspaket med standardiserade byggsystem -- Debian behöver bygga om arkitekturoberoende mjukvara för alla (>12) plattformar som stöds.

  • manuellt bygger "Depends:" (beroenden) för en genererad .deb och dessa skulle lätt bli inkorrekta över Debian-suiter/utgåvor, vilket komplicerar installationsprocedurerna. Den enkla lösningen är i många fall att bygga statiskt vilket gör att man förlorar modulariteten i Debian, vilket i sin tur gör mjukvaran mindre robust och säker.

Hur man hämtar ett källkodspaket

Källkod installeras normalt inte. Du kan endast installera dem om du känner till paketnamnet.

Hur man hittar namnet på källkodspaketet

http://www.debian.org/distrib/packages hittar du en sökmotor som ger dig : http://packages.debian.org/src:<name> .

Ett källkodspaket kan generera många debpaket. För att få reda på namnet på källkodspaketet, se fältet Source: i utdatan från

   apt-cache show package_name

Med apt-get source

Ett sätt att få tag på källkodspaket är med hjälp av

   apt-get source <package name>

Du behöver en deb-src-rad i din fil /etc/apt/sources.list, som :

   deb-src http://http.us.debian.org/debian unstable main

Ett källkodspaket laddas ner till aktuell katalog och installeras inte (det kommer inte att hittas i listan på installerade paket), så du behöver inte vara root för att använda apt-get source.

Från debian.org

Du kan göra en manuell nedladdning, från http://www.debian.org/distrib/packages.

När du är på paketets sida, välj en distribution, och du kommer hitta länkar till de tre filerna som bildar källkodspaketet.

Arbeta med ett källkodspaket

Hur man bygger Debianpaketet

Du behöver rootprivilegier eller fakeroot för att bygga en .deb. För att automatiskt bygga Debianpaketet efter nedladdning, så kan du också använda dig av

   apt-get --build source package_name

Om du vill bygga optimerade paket från källkod till din maskin för att möjligen få snabbare handhavande, installera och använd ?es/apt-build/apt-build (som i sin tur använder apt-get source -b ...)

Hur man extraherar källkodsfilerna

Om vi antar att filerna i källkodspaketet är tillgängliga i samma folder, så kan du använda dig av följande för att packa upp ett källkodspaket:

dpkg-source -x .../path/to/package_name.dsc

Alla filer kommer att packas upp till en mapp : paket-version.

Se även


CategoryPackageManagement CategoryPackaging