Czy można by Debiana aktualizować inaczej?
Standardowy proces aktualizacji Debiana to wydanie polecenia aptitude update && aptitude upgrade. Od jakiegoś czasu jednak w dystrybucjach testing i unstable Debian wprowadził zmianę swojego systemu aktualizacji i zamiast ściągac duże pliki (jak np. main/Packages.gz )m ściąga się pliki różnicowe dla danej architektury. Daje to oczywiście oszczędność pasma - jeśli coś się zmieniło, to nie ściągamy całego pliku, ale tylko różnicówkę od ostatniej aktualizacji. Jest oczywiście pewien minus - więcej plików, to dłuższy czas ściągania, ponieważ jest więcej zapisów, kończenia i rozpoczyniana transakcji.
Przy okazji - można aktualizacje różnicowe wyłączyć ustawiając opcje
Acquire::PDiffs “false”;w /etc/apt/apt.conf lub dodając parametr przy uruchomieniu apt-get update -o Acquire::Pdiffs=false.
Podczas rozmowy z Adrianem zastanawialiśmy się, czy dałoby się zmienić jakoś także sposób aktualizacji samych pakietów. Po co za każdym razem przesyłać całe archiwum z nowym pakietem, powielającym wiele plików, które nie musiały zostać zmienione? Gdyby tak stworzyć wersję podstawową, powiedzmy mój-pakiet_1.0.0_all.deb. Następnie, w miarę poprawek (w stable) lub rozwoju (w testing/unstable), można by tworzyć do niej wersje delta mój-pakiet_1.2.1_all.deb. W skład takiego pliku wchodziłyby skrypty pre- i post- instalacyjne, plik konwersji konfiguracji, (jeśli taka by miała mieć miejsce lub o dokonfigurowaniu nowych opcji jeśli są wymagane) oraz oczywiście pliki różnicowe. Wiadomo, że przy większych zmianach, wymienia się większość plików, ale z drugiej strony często, przy modułowej budowie aplikacji występują pliki, które nie wymagają zmian. Wiadomo - wtedy, kiedy następuje rebuild wszystkiego albo gdy naprawdę stworzenie pliku zmian byłoby dłuższe niż nowy pakiet to lepiej budować nowy pakiet - ale czy często tak jest? Sprawa nie dotyczy jednak tylko plików .deb, ale wszystkich linux distro, któe zasypują użytkowników listą wielomegabajtowych poprawek. W końcu i Microsoft w końcu zmniejszył rozmiary swoich pakietów z poprawkami starając się je minimalizować (typowy cost-reduction)…