apt-get eller kompilera själv i debian?

Trädvy Permalänk
Medlem
Registrerad
Nov 2001

apt-get eller kompilera själv i debian?

Jag kör debian stable och vill installera ett paket som finns i unstabel versionen och självklart finns även möjligheten att kompilera själv.

Vilket är att föredra kompilera själv eller lägga till unstabel paket för apt-get? Och hur gör man det enklast isåfall för att enbart hämta hem ett enstaka unstabel paket?

Trädvy Permalänk
Medlem
Plats
under en bro
Registrerad
Dec 2001

Ladda hem unstable paketet från deras sida; http://www.debian.org/distrib/packages

kör sen bara dpkg -i <paketet>

Jan-banan: Om alla mailar och frågar eller stämmer MS så kanske dom måste släppa koden?

Trädvy Permalänk
Medlem
Registrerad
Dec 2002

om du tar ett packet från unstable kommer du antagligen behöva ta ner dess dependecies, så jag skulle antagligen helst upgradera till unstable eller bytt ut stable i /etc/apt/sources.list mot unstable ocg sedan köra apt-get update. Sen tar använder apt-get install packet. Sen sätter du tillbaka till stable och kör en update.

Är helt säker på att det kommer fungera efteråt så tänk över innan du gör det.

Trädvy Permalänk
Medlem
Plats
Svedala
Registrerad
Apr 2002

För att lyfta in enstaka paket från unstable:

http://jaqque.sbih.org/kplug/apt-pinning.html

Trädvy Permalänk
Medlem
Registrerad
Nov 2001
Citat:

Ursprungligen inskrivet av nillon
För att lyfta in enstaka paket från unstable:

http://jaqque.sbih.org/kplug/apt-pinning.html

för pinning fungerar det med denna rad i sources.list plus de som redan existerar?

"deb ftp://ftp.se.debian.org/debian/ unstable main" och en för testing, eller ska man ha "main non-free contrib" och "unstable/non-US main contrib non-free" för resp?

Idag står det ju enbart "stable main" vad är skillnaden?

Trädvy Permalänk
Medlem
Plats
Västerås
Registrerad
Dec 2001

Gah, sluta! Man ska inte bara tanka hem paket från unstable och stoppa in. Gcc och hela toolchain-tjosan har precis blivit helt utbytt så du tigger om bekymmer. Det kan funka men det finns absolut inga garantier, och ju längre unstable hinner vandra från stable desto större chans att det skiter sig. Just nu är dock stable och unstable ganska nära varandra.
Bättre är att lägga till unstable i /etc/apt/sources.list, kör 'apt-get update', bakar paketet själv med 'fakeroot apt-get -b source <paketnamn>'. Det kan funkar men har paketet från unstable högre krav än vad som finns i stable så är det ofta kört. Glöm inte att ta bort unstable ur din sources.list sen bara.
Du kan dock behöva stoppa in lite paket som krävs för att bygga det och det gör du med 'apt-get build-dep <paketnamn>', kör det utan unstable i listan.
Vill du bara tanka hem paketet utan att bygga det så kör du 'apt-get source <paketnamn>'.

Apt-pinning är ett sätt att utöka och rangordna val i sources.list men funkar absolut bäst mellan testing och unstable då de ofta är mycket lika och inga paket helt spränger varandra. Testing täcks för övrigt av security-teamet nu för tiden.

Trädvy Permalänk
Medlem
Registrerad
Nov 2002

Att använda paket rakt av från unstable är som sagt, att be om problem eftersom många libs har ändrats, och ändras ständigt.

Den enklaste lösningen är att installera en backport från testing eller unstable...
Ta en titt på http://www.backports.org/pending/ och titta om paketet du söker finns där.

Om paketet inte finns där och du är du lite händig plockar du ner testing/unstable source-paketet manuellt från Debians FTP och kompilerar det med libs från stable.

Det är inte säkert att det alltid fungerar rakt av, det kan finnas nya libs i unstable som inte finns i stable, och som krävs för att kompilera vissa paket.

Kika i debian/control i source-paketet på Build-Depends, och se till att ha de paketen, från stable.

Alltså, för att kompilera ett paket från unstable för stable (backport):
1. Ladda ner source-paketet från testing/unstable
2. Packa upp det
3. Installera build-deps med apt-get
4. Kompilera (med t.ex. dpkg-buildpackage -rfakeroot)
5. Installera (med dpkg -i <paketnamn>) (observera att du måste fixa depencies manuellt först)