2012-02-25

7z vs zip na przykładzie plików tekstowych

Kwantowomechaniczne pakiety obliczeniowe tworzą dane wyjściowe w postaci plików tekstowych. Niekiedy są to pliki bardzo duże - kilka/kilkanaście/kilkadziesiąt MB czystego tekstu. Ostatnio postanowiłem zrobić porządki w katalogach (by zaoszczędzić trochę przestrzeni dyskowej) i skompresować niektóre katalogi zawierające duże pliki tekstowe. Postanowiłem przy okazji sprawdzić który z dwóch rozpowszechnionych formatów - zip i 7z, charakteryzuje się lepszą kompresją plików tekstowych.

Rozmiar bez kompresji (MB)Archiwum zip (MB)Archiwum 7z (MB)Archiwum rar (MB)
Katalog 1 (tylko pliki tekstowe)193,738,82,43,5
Katalog 2 (tylko pliki tekstowe)633,7128,65,98,5
Katalog 3 (pliki tekstowe i binarne)699,6153,399,7144,4

Wyniki są trochę zaskakujące, ponieważ dla czystych plików tekstowych kompresja 7z pozwala stworzyć archiwum o rozmiarze ~100 razy mniejszym niż rozmiar plików nieskompresowanych (i kilka razy mniejszym niż archiwum zip).

Aktualizacja: Za namową Ominousa dodałem także kolejny popularny format kompresji - rar.

2012-01-08

Czy forkowanie repozytoriów openSUSE ma sens?

Zainstalowałem sobie ostatnio program wxMaxima (graficzna nakładka na Maksimę) z repozytorium science/openSUSE_11.4 (w wersji 11.08.0). Z instalacji byłem niezadowolony, gdyż program nie chciał połączyć się z Maximą. Znaczy się - brak korzyści. Odinstalowałem; zainstalowałem wxMaximę z repozytorium Education/openSUSE_11.4 (również w wersji 11.08.0) i niespodzianka - działa!

Teraz pytanie za 100 pkt. - po co dublować (czy też forkować, zwał jak zwał) repozytoria dla openSUSE? Dlaczego jeden pakiet znajduje się w wielu repozytoriach, często w niewiele różniących się wersjach?
Przykłady bałaganu w repozytoriach? Proszę bardzo (wszystkie przykłady zawierają repozytoria dla openSUSE 11.4, czyli aktualnie przeze mnie używanej wersji systemu; przeszukiwanie dokonano przy użyciu strony software.opensuse.org/search):

Przykład 1 - pakiet MozillaFirefox: w repozytorium openSUSE:11.4:Update/standard znajdują się wersje 4.0.0, 4.0.1, 5.0.0, 6.0.2, 7.0.1 i 8.0.0; w repozytorium openSUSE:11.4/standard - wersja 4.0b12; w repozytorium mozilla/openSUSE_11.4 - wersje 3.6.25, 8.0.2 i 9.0.1; mozilla:legacy/openSUSE_11.4 - wersje 3.5.19, 4.0.1 i 5.0.1; nie mówiąc już o repozytoriach mozilla:beta/openSUSE_11.4 i mozilla:alpha/openSUSE_11.4 gdzie znajduje się prawie ta sama wersja pakietu (9.99.12.1 vs 9.99.9.1).

Przykład 2 - pakiet Chromium: w repozytorium openSUSE:11.4:Contrib/standard znajduje się wersja 18.0.975 zaś w repozytorium network:chromium/openSUSE_11.4 - wersja 18.0.992; którą lepiej wybrać do zainstalowania via Instalacja 1-Click?

Przykład 3 - pakiet Dolphin: mamy wersję 4.6.0 w repozytorium openSUSE:11.4/standard; prawie to samo (różnice pojawiają się dopiero w czwartej liczbie numerku wersji) znajduje się w repozytorium openSUSE:11.4:Update/standard; dalej mamy lekko różniącą się wersję 4.7.4 w repozytoriach KDE:Release:47/openSUSE_11.4 i KDE:Distro:Factory/openSUSE_11.4, wersję 4.7.2 w repozytorium KDE:Distro:Stable/openSUSE_11.4 (mimo, że najnowsza stabilna wersja środowiska KDE to 4.7.4), lekko różniącą się wersję 4.6.5 w repozytoriach KDE:Release:46/openSUSE_11.4 i spins:open-pc:kde/openSUSE_11.4; oraz na koniec 4.9.97 w repozytorium KDE:Unstable:SC/openSUSE_11.4 (przynajmniej te repozytorium jest wprost oznaczone jako niestabilne...).

Dlaczego openSUSE nie mogłoby pójść drogą Gentoo, gdzie pakiety, zorganizowane w odpowiednie kategorie, są oznaczone po prostu jako stabilne/niestabilne w centralnym repozytorium. Czy w openSUSE muszę dodawać do YaSTa dwadzieścia różnych repozytoriów aby mieć to co chciałbym? I jeszcze liczyć, że dodałem dobre repozytoria?