Potrzebowanie nowszych pakietów jest częstym problemem w każdym systemie operacyjnym. Cykl wydawniczy Debiana wynosił średnio 2 lata w ostatnich latach, więc pod koniec tego cyklu jest to być może bardziej paląca kwestia. Jednym ze sposobów złagodzenia tego jest przejście do testowania pod koniec cyklu stabilnego wydania, kiedy następna wersja jest prawie stabilna. Nie jest jasne, czy chodzi o stabilność, a bardziej ogólnie o testowanie i / lub niestabilność. Niezależnie od tego najnowsza wersja może być problemem, nawet jeśli działa niestabilnie, ponieważ najnowsza wersja może nie zostać jeszcze spakowana. Twórcy / pakujący Debiana są wolontariuszami, więc mogą się nudzić lub zajmować innymi rzeczami, w wyniku czego pakiet słabnie.
Dla uproszczenia i konkretności zakładam w dalszej części, że planem jest przeniesienie pakietu do stabilnego, ale ma on bardziej ogólny charakter. Oto, co robię, jeśli chcę nowszej wersji oprogramowania, która nie jest obecna w stabilnej, w przybliżonej kolejności.
Poszukaj pakietu w Backports Debiana . Czasami możesz znaleźć pakiet, który jest wystarczająco aktualny, aby spełnić twoje cele. Jednak często zdarza się, że te pakiety są nieaktualne w porównaniu do wersji niestabilnej, eksperymentalnej lub początkowej.
Spróbuj zainstalować pakiet bezpośrednio z wersji testowej, niestabilnej lub eksperymentalnej. Jeśli stabilna nie różni się zbytnio od wersji, z której próbujesz zainstalować, może to działać. Będziesz wiedział, że to podejście jest złe, jeśli system zacznie próbować instalować lub aktualizować podstawowe pakiety z nowszej wersji. Załóżmy, że próbujesz zainstalować z systemu niestabilnego
apt-get install packagename/unstable
jest pierwszą rzeczą do wypróbowania. W przypadku wersji apt w wersji stabilnej często się to nie powiedzie, ponieważ wymaga innych pakietów od niestabilności, a inkantacja podnosi jedynie packagename
odpowiednio wysoką wartość, aby można ją było zainstalować w wersji niestabilnej. Jeśli nie rozumiesz, co to znaczy, idź i czytaj man
apt_preferences
. Kontynuuj dodawanie zależności od niestabilnych, upewniając się, że nie próbuje uaktualnić podstawowych pakietów. Na przykład, jeśli zacznie próbować zaktualizować libc6 lub X, KDE lub Gnome, przerwij natychmiast. Zwykle jest dobrze, jeśli próbuje zaktualizować inne pakiety z tego samego pakietu źródłowego, ponieważ są one zwykle ściśle ze sobą powiązane. Aby zobaczyć, od jakiego pakietu źródłowego zależy pakiet binarny, wykonaj
apt-cache showsrc packagename
Ponieważ wiele rzeczy zależy od biblioteki GNU C (libc6), był to kiedyś problem. Niedawno interfejs API wydaje się ustabilizować, więc teraz częściej można uciec bez konieczności jego aktualizacji. Jeśli pakiet spełnia swoje wymagania dotyczące środowiska uruchomieniowego na stabilnym, ale nadal nie działa poprawnie, zgłoś błąd. Jeśli program pakujący powie ci, że to nie jest błąd, oznacza to, że się mylą. :-)
Wykonaj backport pakietu samodzielnie z testów, niestabilnych lub eksperymentalnych.
Jak wspomniano powyżej, backports jest jedną z opcji, ale często te pakiety są nieaktualne w porównaniu do wersji niestabilnej, eksperymentalnej lub upstream.
Może to często wymagać rekurencyjnej pętli typu kompilacji zależności. Najpierw musisz uzyskać zależności kompilacji
apt-get build-dep packagename
Jeśli to się nie powiedzie, ponieważ jedna z zależności nie jest wystarczająco aktualna, najpierw musisz zaimportować tę zależność. Może to wymknąć się spod kontroli. Zwykle poddaję się, jeśli mam do czynienia z więcej niż 2 poziomami rekurencji. Zauważ jednak, że rzeczywiste zależności niekoniecznie są tak ścisłe, jak stwierdzono, tj. starsza wersja może działać. Program pakujący często nie próbuje znaleźć najstarszej wersji zależności kompilacji (lub środowiska uruchomieniowego), która będzie działać.
Sprawdź dostępność pakietów od odpowiedniego nadrzędnego. Idealnie pasowałyby do twojej wersji dystrybucyjnej, ale w razie potrzeby możesz również je odbudować.
Utwórz pakiety dla wersji oprogramowania nowsze niż najnowsze pakiety w wersji testowej / niestabilnej / eksperymentalnej. Może to być względnie trudne, ale czasem zaskakująco wykonalne. Pierwszą rzeczą, na którą należy zwrócić uwagę, jest to, że jeśli próbujesz spakować nowszą wersję pakietu, który jest już w Debianie, zaczynasz już z dużą zaletą, mianowicie z tym, że masz już istniejące opakowanie do pracy. Po prostu zrób
apt-get source packagename
i apt-get
pobierze odpowiedni pakiet źródłowy, w tym podkatalog debian, w którym znajduje się opakowanie. Zauważ też, że obecnie to opakowanie często znajduje się w repozytorium verson control (git wydaje się popularny w Debianie), a stabilny apt (obecnie 0.8.10.3 ) pomaga ci powiedzieć, gdzie to jest, kiedy się wywołujesz
apt-get source
. Powinieneś na to spojrzeć, ponieważ osoby pakujące mogą mieć nowsze wersje opakowania niż odpowiada dowolnemu wydanemu pakietowi. Na przykład.
$ apt-get source mercurial
Reading package lists... Done
Building dependency tree
Reading state information... Done
NOTICE: 'mercurial' packaging is maintained in the 'Svn' version control system at:
svn://svn.debian.org/python-apps/packages/mercurial/trunk
Możesz też po prostu użyć
apt-cache showsrc mercurial | grep Vcs
aby wyświetlić repozytorium.
Jeśli pakiet jest bardzo nieaktualny, być może będziesz musiał go zmodyfikować
, odświeżyć zastosowane łaty, ale zwykle jest to dobry
punkt początkowy . Debian wydaje się być w trakcie standaryzacji zarządzania pakietami na
pikowaniu według formatu dpkg-source 3.0 (quilt) , więc pomaga to w odświeżaniu łatek.
Będę wnioskować o przykład prawdziwego życia, jak ja przeniesiona do pakietu Debiana z
PGF . Ostatnia spakowana wersja pgf to 2.00 w 2008 roku i od tego czasu wydano 2.10. Zobacz dyskusję w Proszę zaktualizować do najnowszej stabilnej wersji pgf (2.10) i mój błąd uzupełniający z łatką pgf: łatki przeciwko pakietowi Debian 2.0 . Jak się okazuje, pakowanie pgf w Debiana było bardzo proste i po prostu musiałem zmienić jedną linię w pakiecie 2.10, aby działało. Skończyło się również stłumienie wszystkich
skarg lintian , ale było to całkowicie opcjonalne.
Z pewnością możesz zbudować własne pakiety i to zadziała. Jednak najpierw polecam korzystanie z backportów, jeśli dostępne jest tam to, czego chcesz.
Backports są utrzymywane w Debianie i otrzymujesz dla nich aktualizacje zabezpieczeń.
źródło
Budowanie własnych pakietów to droga do działania (IMHO). W zależności od wieku wersji pakietu Debiana i tego, co się zmieniło, może to być tak proste, jak zastąpienie nazwy pliku źródłowego pliku archiwum w opisie pakietu, aw najgorszym przypadku możesz nadal używać go jako szablonu dla własnej wersji.
źródło
Co robisz, jeśli zawsze potrzebujesz najnowszej wersji?
Jak już wspomniano , użyj backportów.
Tylko niewielki podzbiór pakietów Debiana jest importowany, więc sugeruję użycie Testowania Debiana . Zapewnia dobrą równowagę między stabilnością a aktualnością i jest w pewnym sensie niczym tocząca się dystrybucja.
Jeśli jesteś nieco bardziej odważny, użyj Debian Unstable . Twierdzi się, że jest dość stabilny. Niektórzy nawet posuwają się nawet do twierdzenia, że jest bardziej stabilny niż niektóre „stabilne” wydania dystrybucji. W każdym razie Unstable to miejsce, w którym zwykle pojawiają się nowe wersje pakietów. Zwykle siedzą tam przez około 10 dni, aby umożliwić testowanie, przed migracją do testowania.
Nawet używając tych dwóch, możesz wciąż nie mieć najnowszych wersji. W takim przypadku spójrz na Debian Experimental . Jest zwykle używany, gdy nowe pakiety są zbyt destrukcyjne dla normalnych archiwów (niestabilne i testowanie).
Jeśli Experimental nadal nie ma wystarczająco nowych wersji oprogramowania, spójrz na PPA Ubuntu . Widziałem tam wersje oprogramowania nowsze niż to, czego brakuje we wszystkich powyższych archiwach. Używaj go jednak ostrożnie, ponieważ Ubuntu nie jest w 100% kompatybilne z Debianem (ale w większości przypadków nie powinno być żadnych problemów).
Jeśli powyższe nie powiedzie się, myślę, że po prostu zbuduj własne pakiety, jak wspomniano .
źródło