Hur gör man för att skapa en .deb-fil?

Här diskuteras programmering och utveckling
Användarvisningsbild
Sprak
Inlägg: 394
Blev medlem: 27 sep 2006, 22:55
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Götet/Vänersborg

Hur gör man för att skapa en .deb-fil?

Inlägg av Sprak »

Hej!

Jag har precis suttit i en dryg halvtimme med att hjälpa en annan forumsmedlem att installera ett program ifrån källkod (http://ubuntu-se.org/smf/index.php/topic,20318.0.html). Det var onekeligen ganska jobbigt, och sätter en ribba för vilka som kommer att orka installera programmet. Finns det någon som ver hur jag ska bära mig åt för att bygga en .deb-fil av källkoden? Jag har en i stort sätt nyinstallerad dator (Installerade den i söndags) så jag har hyfast koll på att koden beror på följande paket:

libxt-dev
libxp-dev
libxext-dev
libxmu-dev

Någon som skulle kunna hjälpa mig/känner till en bra guide om hur man skapar ett deb-paket utifrån det?
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: Hur gör man för att skapa en .deb-fil?

Inlägg av Lars »

Jag hittade Create Debian Linux packages på developerWorks, det är kanske en bra start.
Megamannen
Inlägg: 75
Blev medlem: 06 sep 2007, 19:50
Ort: Sverige

SV: Hur gör man för att skapa en .deb-fil?

Inlägg av Megamannen »

Finns ett väldigt enkelt verktyg som heter checkinstall. Finns säkert i repon som sudo apt-get install checkinstall
Du kompilerar från källkod, precis som vanligt.

./configure
./make

Men sen istället för ./make install
så skriver du: checkinstall

Då fyller den själv i lite fält som du får ändra ifall du vill. Programnamn, versionsnr o.s.v.
Sedan så bygger den ett paket och ifall rättigheter finns, installerar det.
Software can become hardware!
Användarvisningsbild
Mekaniserad Apelsin
Hedersmedlem
Inlägg: 3777
Blev medlem: 27 maj 2006, 12:24
OS: Ubuntu
Ort: Stockholm
Kontakt:

SV: Hur gör man för att skapa en .deb-fil?

Inlägg av Mekaniserad Apelsin »

Masters of the Universe (de som fixar ubuntus universe) har slängt ihop ltie guider:
Vad är och gör MOTU?
En guide till hur man gör paket
Getting started
Dokumentation om paketering
More Mekaniserad at http://blippe.se.
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

SV: Hur gör man för att skapa en .deb-fil?

Inlägg av Emil.s »

Ah, äntligen några riktigt bra länkar! Klistrar tråden så länge. :)
Home sweet ~/ = http://sandnabba.se
calinox
Inlägg: 47
Blev medlem: 24 maj 2008, 17:09
OS: Mac OS X
Utgåva: 24.04 Noble Numbat LTS
Ort: Knivsta

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av calinox »

Hittade också de här två som verkar väldigt smidiga.

Giftwrap: http://giftwrap.tuxfamily.org/index.php?
Debcreator: http://debcreator.cmsoft.net/

Är det någon som vet hur man letar reda på källkod till program som behöver paketeras?
Stå aldrig still.
Bild
Användarvisningsbild
Sprak
Inlägg: 394
Blev medlem: 27 sep 2006, 22:55
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS
Ort: Götet/Vänersborg

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av Sprak »

calinox skrev: Är det någon som vet hur man letar reda på källkod till program som behöver paketeras?
Hej!

Om du bar vill ta slumpmässigt projekt och paketera det så kan jag rekommendera antingen http://freshmeat.net/ eller http://sourceforge.net/. De båda sidorna kryllar med olika program som ofta bara levereras i källkodsform.
Användarvisningsbild
P.Forsberg
AVREGISTRERAD
Inlägg: 2573
Blev medlem: 17 jan 2008, 18:38
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster
Ort: Kvarnsjön
Kontakt:

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av P.Forsberg »

Det finns många möjligheter. Kolla den här tråden:

http://ubuntuforums.org/showthread.php?t=51003

Jag själv använder equivs

http://ubuntuforums.org/showthread.php?t=726317

LJ
Användarvisningsbild
Pinky
Inlägg: 1258
Blev medlem: 30 jan 2007, 15:59
OS: Fedora
Ort: Kristianstad/Sverige
Kontakt:

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av Pinky »

wiki någon? 8)
Själv har jag ont om tid, men det kanske vore en idé att sammanfatta på något vis och slänga in i wikin.
Användarvisningsbild
Hund
Inlägg: 16492
Blev medlem: 25 jan 2007, 04:15
OS: Gentoo
Ort: Norrland
Kontakt:

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av Hund »

Enklast är ju att peta på Philip5 så kan han säkert ordna det till sitt förråd på PPA så att alla kan ta del av det. :)
Linuxkompis - En vänlig Linux-gemenskap för alla!
Användarvisningsbild
philip5
HC-IRCare
Inlägg: 1099
Blev medlem: 21 feb 2009, 14:32
OS: Kubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Uppsala
Kontakt:

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av philip5 »

Hund skrev:Enklast är ju att peta på Philip5 så kan han säkert ordna det till sitt förråd på PPA så att alla kan ta del av det. :)
Fast då lär man sig ju inte själv så mycket, om det nu är det man är ute efter... :)

Jag skulle nog också ställa mig frågan vad för syfte ens deb-fil ska ha. Om man "bara" ska skapa en för eget bruk som man vill kunna installera för att enkelt kunna avinstallera så är ju checkinstall och andra förenklade lösningar ett alternativ. De har ju en hel del begränsningar som man kanske ska känna till. Du kan eventuellt få innehållskrockar om det du installerar är något som finns i andra paket och då får namngivningen av paketen betydelse och dess innehåll. Det kan också bli beroendeproblem med andra paket beroende på vad man bygger etc. Ska man bara ha paket för eget bruk så kan det ju vara smidigt ändå när man har kolla på innehåll och beroenden.

Ska man få paketen att funka smidigt med andra paket och kanske sprida dem till andra användare så bör man läsa på namngivning av paket, se över vad olika paketnamn/typer ska innehålla och sedan sist men inte minst hur man skapar filer för debianmappen som behöver sättas upp på rätt sätt. Ska man sprida sina paket så bör man även se över hur en sådan sak som copyright-filer och sånt ska se ut. De här sakerna finns beskrivet i guider som t ex den ovan eller i Ubuntus/Debians wiki.

Det är alltså en hel del att sätta sig in i om man ska bygga paket för att sprida eller göra tillgängliga till andra. Inte så mycket mer än den kunskap som krävs för att bygga från källkod om man "bara" ska ha det på ett eget system där man vet hur och vad som påverkas.
-------------------------------------------------------------
Min PPA för Ubuntu: http://launchpad.net/~philip5
Twitter: http://twitter.com/philip_johnsson
IRC: Philip5 @ freenode.net #ubuntu-se #kubuntu-se
Användarvisningsbild
cthulhu
Inlägg: 789
Blev medlem: 05 jan 2009, 14:11
OS: Debian

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av cthulhu »

Den här how to:n är riktigt bra för att bygga *.deb-filer!
http://forums.debian.net/viewtopic.php?f=16&t=38976
som PDF.tar.gz: http://forums.debian.net/download/file.php?id=218
Användarvisningsbild
philip5
HC-IRCare
Inlägg: 1099
Blev medlem: 21 feb 2009, 14:32
OS: Kubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Uppsala
Kontakt:

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av philip5 »

Jo den var ok som översikt för lite olika sätt att bygga paket för EGET bruk eftersom den verkar hoppa över viktiga steg om vad som ska skapas i mappen debian som innehåller regler för beskrivning av paketet, hur det ska byggas och även hur man anger licens och copyright, mm som är viktigt om man vill sprida sina paket. Där anges så klart också om det ska delas upp i olika delpaket eller metapaket och vad dessa ska innehålla

Sedan verkar de helt hoppa över verktyget pbuilder som visserligen är lite mer avancerat men överlägset bästa verktyget för kontroll över sitt byggande om man bygger mer seriöst.
-------------------------------------------------------------
Min PPA för Ubuntu: http://launchpad.net/~philip5
Twitter: http://twitter.com/philip_johnsson
IRC: Philip5 @ freenode.net #ubuntu-se #kubuntu-se
Användarvisningsbild
cthulhu
Inlägg: 789
Blev medlem: 05 jan 2009, 14:11
OS: Debian

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av cthulhu »

OK, sorry, kanske skulle skrivit riktigt enkel, istället för bra...
men den funkar för mig, som är noob. Den how to:n öppnade ögonen på mig, lite grann, i alla fall.
Den är bra (tycker jag) för de som hittat en källfil, som de vill installera snabbt som en deb, utan att behöva plöja igenom miltals sidor av dokumentation.
Användarvisningsbild
philip5
HC-IRCare
Inlägg: 1099
Blev medlem: 21 feb 2009, 14:32
OS: Kubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Uppsala
Kontakt:

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av philip5 »

Det mesta som får en att öppna upp ögonen på ett eller annat sätt är väl bra så på så sätt håller jag med dig. Hittar man en guide man gillar så man kommer upp på banan så har man ju vunnit mycket redan där. Vill man lära sig mer kan man ta det eftersom. Kruxet med paketbygge är att det många gånger kan vara rätt lätt medan andra gånger bli snabbt avancerat. Inte minst om källkoden ska byggas med något mer udda byggsystem som scons eller waf.

Jag började själv inte med pbuilder som rätt snart för att funka smidigt kräver att man sätter upp en egen repo att bygga emot. Det behöver inte vara jattesvårt men nog med extra om man har fullt upp att sätta sig in i paketbyggande.
-------------------------------------------------------------
Min PPA för Ubuntu: http://launchpad.net/~philip5
Twitter: http://twitter.com/philip_johnsson
IRC: Philip5 @ freenode.net #ubuntu-se #kubuntu-se
Användarvisningsbild
cthulhu
Inlägg: 789
Blev medlem: 05 jan 2009, 14:11
OS: Debian

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av cthulhu »

Har du några tipps på how-to:s eller liknande för att komma igång med pbuilder, eller är det man-sidorna som gäller?
Användarvisningsbild
philip5
HC-IRCare
Inlägg: 1099
Blev medlem: 21 feb 2009, 14:32
OS: Kubuntu
Utgåva: 23.10 Mantic Minotaur
Ort: Uppsala
Kontakt:

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av philip5 »

cthulhu skrev:Har du några tipps på how-to:s eller liknande för att komma igång med pbuilder, eller är det man-sidorna som gäller?
Pbuilder i sig hjälper dig inte att skapa de kontroll och regelfiler som krävs för att bygga ett paket utan pbuilder är ett verktyg för att bygga paket i en skyddad och kontrollerad miljö, dvs den kommer automatiskt sätta upp ett tillfälligt chroot med just de paket, repos och versioner som du sätter att den ska använda i pbuilders config-fil och i deb-paketets control-fil. På det här sättet så slipper du så klart ha en massa installerade -dev-paket på din dator som tar en massa plats eller hamnar i konflikt med varandra.

Du kan på så sätt från samma maskin bygga för valfri version av ubuntu (hardy, karmic, lucid, etc). Som standard så skapas en sådan miljö men du kan rätt enkelt scripta så du kan ha en uppsättning sådana mijöer om du vill bygga paket för olika releaser. Det enda man ännu inte kan göra är att bygga för annan hårdvaruplattform än den man själv kör systemet på, dvs kör du 32bit så kan du bara bygga 32bit-paket och samma sak om du kör 64bit så kan du bara bygga 64bit-paket (möjligt att det går men så vitt jag vet funkar det inte så bra). Du kan däremot köra ett 32bit-system virtuellt på ett 64bit-system och bygga paketen där i med pbuilder för andra arkitekturer. Att bygga i virtuella maskiner är förstås något långsammare än att bygga direkt på burken.

Ubuntu har en rätt bra guide på sin wiki (på engelska): https://wiki.ubuntu.com/PbuilderHowto

Mer fullständig dokumentation hittar du på: http://pbuilder.alioth.debian.org/

Lite mer tricks finns här: http://wiki.debian.org/PbuilderTricks
-------------------------------------------------------------
Min PPA för Ubuntu: http://launchpad.net/~philip5
Twitter: http://twitter.com/philip_johnsson
IRC: Philip5 @ freenode.net #ubuntu-se #kubuntu-se
Användarvisningsbild
ZX Spectrum
Inlägg: 4905
Blev medlem: 04 jan 2007, 22:58
OS: Ubuntu
Utgåva: Vet inte/ingen utgåva passar
Ort: Göteborg

Re: Hur gör man för att skapa en .deb-fil?

Inlägg av ZX Spectrum »

Om det räcker med att installera en massa program som redan finns i förråden så kan man följa denna guiden för att skapa en deb-fil:

Öppna terminalen och installera equivs via detta kommando:

Kod: Markera allt

sudo apt-get install equivs
För att skapa mallen till deb-filen så skriver vi:

Kod: Markera allt

equivs-control control
Nu skapas en fil i mappen som heter control.
Öppna den med att skriva:

Kod: Markera allt

gedit control
Här väljer man vilka program som ska installeras när man dubbelklickar på den tänkta deb-filen. Dessutom kan man skriva kommentarer och mailadress som visas när deb-filen startas.
Man måste ta bort bortkommenteringarna till det man vill ha (fyrkanten som står före meningarna).
Så här har jag skrivit i min:

Kod: Markera allt

### Commented entries have reasonable defaults.
### Uncomment to edit them.
Section: misc
Priority: optional
Standards-Version: 3.6.2

Package: mina-program
Version: 1.0
Maintainer: ZX Spectrum <zxspectrum@hotmail.com>
# Pre-Depends: <comma-separated list of packages>
Depends: thunderbird, k3b, deluge-torrent, glabels
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
Description: Den här deb-filen kommer att installera programmen thunderbird, k3b och deluge-torrent
 .
Det jag har skrivit är:
Package: <--Tror man kan skriva valfritt namn här men däremot går det inte att använda stora bokstäver. Har inte testat med konstiga tecken och åäö.
Version: <-- Kanske inte nödvändigt men coolt om man vill vidareutveckla debfilen för då ser man vilken version som är den nyaste.
Maintainer: <-- Jag valde att skriva in min fingerade mailadress här men detta är antagligen inte heller nödvändigt.
Depends: <-- Här skriver man vilka program som ska installeras med ett kommatecken mellan varje program. Vet man inte vad programmen heter så är det lätt att öppna synaptic för att ta reda på detta.
Architecture: <-- Visar att deb-filen fungerar både till 32 och 64-bitars Ubuntu.
Description: <-- Här är det bara att skriva det som ska visas när deb-filen startas.

Jag raderade meningen som var under punkten som är nederst i textfilen för den fyller ingen funktion vad jag vet.

För att skapa deb-filen skriver vi:

Kod: Markera allt

equivs-build control
Om allt fungerade som det skulle så har vi en fil som heter mina-program_1.0_all.deb

Om man nu har installerat Ubuntu och sen installerat en massa i Programhanteraren Synaptic och anser att installationen ser bra ut, då kan man fixa på ett lätt sätt så att nästa installation också kommer att innehålla exakt samma program som nuvarande. Smidigt så man slipper jobbet med att gå in i synaptic.

Skriv då detta i terminalen:

Kod: Markera allt

aptitude search -F %p ~i --disable-columns libedataserver | tr '\n\r' ',' | sed 's/,/,\ /g' | sed 's/,\ $//' > minaprogram.list
Filen som skapas öppnas med följande kommando:

Kod: Markera allt

gedit minaprogram.list
Här är alla program som är installerade på datorn just nu. Bara att trycka på ctrl+a och sen ctrl+c för att kopiera hela listan och sen klistra in det i mallfilen control efter "Depends:".
Programmen som redan finns i nyinstallationen av Ubuntu kommer att hoppas över automatiskt och det är bara program som inte finns installerade som kommer att installeras.

(Följande filer som vi har skapat går att nå via Platser/Hemmapp/skapadeb)
Bild
Jag vet vad jag vill, men vill inte det jag vet, men ändå vet jag ingenting och nu vet jag garanterat inte vad jag snackar om
Skriv svar

Återgå till "Programmering och webbdesign"