Ibland behöver man av någon anledning ett nyare paket än det som finns till ens egen dist, eller så finns paketet helt enkelt inte alls till disten i fråga. Proceduren att ladda ner och installera ett sådant program är dock inte trivialt så jag ska visa hur man KAN göra
Vi ska ta avidemux som exempel. Paketet finns inte till debian, det ingår visserligen i debian-multimedias repo men den repon ställer ibland till det genom stundtals inkompatibla bibliotek. Så jag vill inte lägga till den utan kompilera avidemux på egen hand
Så jag börjar med att gå till avidemuxs hemsida och där hittar jag en länk till deras svn. Jag checkar ut senaste revisionen (kräver subversion ifrån din pakethanterare) enligt
svn co svn://svn.berlios.de/avidemux/branches/avidemux_2.4_branch/
vi går in i mappen: cd avidemux_2.4_branch
De flesta open source projekt använder "automake", då är första steget att köra
./configure
(alternativt ./autogen.sh) men i det här fallet används istället "cmake", då är första kommandot istället
cmake .
Om något bibliotek saknas så sök i pakethanteraren efter namnet på det som saknas. I debian-distar ska du installera paketen som slutar på "dev"
När cmake . (eller ./configure) gått igenom utan problem, så kör
make
Nu ser vi en av cmakes godisfinesser - en progressbar för byggprocessen
Nåväl, sätt på kaffe och lyssna lite på radio en stund.
Vi förutsätter att kompileringen gick bra, då skulle vi ha kunnat köra en en klassisk
sudo make install
Nackdelen är att programmet då blir svårare att avinstallera. En bättre metod är att använda "checkinstall" (installera via din pakethanterare) vilket skapar ett "quick and dirty"-paket för din distribution. Fördelen är att vi lätt kan avinstallera programmet vid behov utan att lämna skräprester efter oss.
Kör
sudo checkinstall
Svara ja på första frågan
Skriv in "avidemux" som "description", tryck enter och därefter CTRL + D
Tryck 2 och skriv "avidemux" och tryck enter. Gör samma sak för alternativ 11.
Tryck enter
Om allt går bra får du frågan Some of the files created by the installation are inside the build
directory
You probably don't want them to be included in the package,
especially if they are inside your home directory.
Tryck enter för att svara det förvalda "no". Tryck enter igen för som svar på efterföljande fråga
Håll tummarna! Om du inte får några felmeddelande har du nu lyckats bygga och installera ett färskt och nybakat paket
Grattis!
Kommentarer
Jag är ett stort fan av
Jag är ett stort fan av '-DCMAKE_VERBOSE_MAKEFILE:BOOL="TRUE" '
Så du ser vad som händer.
Att något kompilerar betyder inte alltid att allt är rätt.
make VERBOSE=1 gör samma
make VERBOSE=1
gör samma sak? Ja, det är bra för att se att optimering/debugflaggor är rätt satta, eller för att lösa inkluderings/länkningsfel. Använder det stundtals för mina egna projekt men jag tenderar (kanske oklokt) att lita på andras förvalda flaggor
---------------------------------------
Open Source - because writing software doesn't make you a "traitor"
Coolt, det där med
Coolt, det där med checkinstall hade jag ingen aning om:) Har alltid dragit mej för att kompilera, för det är så svårt att avinstallera. Jag antar att checkinstall-grejen funkar på vanliga tar bollar också?
/B
Checkinstall var bra men
Checkinstall var bra men för tillfättet är det buggigt och inte tillförlitligt. (om du inte kör en gammal dist)
checkinstall används istället för 'make install' och spårar då installationen med installwatch och skapar sedan ett paket av installationen.
checkinstall kan även användas för installationsskript vilket är riktigt bra då man installerar färdiga binärer och får ett packet som lätt kan avinstalleras.
Behövar man inte ange -d
Behövar man inte ange -d på checkinstall för att få ett deb-paket? Har det ingen betydelse?
checkinstall fungerar inte
checkinstall fungerar inte för alla byggen, men det funkar i de allra flesta fall. Kör du en debian-baserad dist får du en .deb och kör du fedora eller suse så får du en .rpm.
---------------------------------------
Open Source - because writing software doesn't make you a "traitor"
Skall fungera med
Skall fungera med slackware också om jag minns rätt. Aldrig testat själv dock.
~~~ *nixBloggen - http://nixblogg.blogg.se ~~~
/////// #EeePC_Sverige @ irc.freenode.net \\\\\\\
~~~ Have a goodyear - http://www.youtube.com/watch?v=tO2wb-LarfU ~~~
Jo, men känner den alltså
Jo, men känner den alltså av det själv? För jag läste i hjälpen att man kunde skicka med ett val av typ av paket, -d för en deb tror jag det var.
Det kan du säkert
Det kan du säkert
---------------------------------------
Open Source - because writing software doesn't make you a "traitor"
Mjo, men bra att veta att
Mjo, men bra att veta att man inte behöver det
Ska nog avinstallera amsn och testa en checkinstall på det.
Edit:
Apropå, vad händer om man gör en checkinstall på något som redan är checkinstallat?
Om du valt samma namn på
Om du valt samma namn på paketet du skapar så ersätts det, men annars är det kanske klokast att avinstallera det gamla paketet manuellt innan du kör checkinstall.
---------------------------------------
Open Source - because writing software doesn't make you a "traitor"
Okelidokeli. Klarade hur som
Okelidokeli. Klarade hur som helst inte av att bygga det första paketet...
dpkg-deb - error: (upstream) version (`src') doesn't contain any digits
dpkg-deb: 1 errors in control file
Har ingen aning om vad det betyder. Vad ska den med digits till??
Om du inte anger några
Om du inte anger några växlar till checkinstall så läser den denna informationen från sin konfigurationsfil, i den finns det även alternativ för att installera eller bara bygga ett paket mm.
Aha! Tack för ett
Aha! Tack för ett upplysande svar
Grabbar (och anne),
Grabbar (och anne), http://go-mono.com/moonlight/ version 0.8 är släppt - you know what to do
OSB. Det finns färdiga paket men pga. patentskäl kan de inte distribuera paket med mediastöd
---------------------------------------
Open Source - because writing software doesn't make you a "traitor"