Wolna wersja Slackware
19.12.2017 17:20
Slackware zna chyba każdy pasjonat GNU/Linuksa. Najstarsza obecnie rozwijana dystrybucja, jedna z pierwszych jakie powstały. Moja ulubiona dystrybucja. Niestety ma jedną wadę; jest niewolna. Celem tego wpisu jest pokazanie jak uczynić Slackware wpełni wolnym systemem. Istnieją dwa sposoby aby to osiągnąć: pierwszy polega na użyciu iso od FreeSlack (którego sądząc po aktywności na IRC używa raptem kilka osób), drugi polega na usunięciu niewolnego oprogramowania manualnie i dodaniu wolnych zamienników. W tym wpisie skupię się na drugim z tych sposobów.
Instalacja
Większość niewolnych pakietów można wyeliminować już na etapie instalacji. Aby to zrobić musimy wybrać opcję "menu" lub "expert" przed instalacją pakietów.
Po tym etapie w naszym systemie znajdować się tylko te niewolne pakiety które są niezbędne do zbootowania systemu, czyli kernel-firmware, kernel-generic/huge i kernel-modules. Tymi czterema pakietami zajmiemy się już po instalacji.
Zmiana kernela na wolny
Będziemy potrzebowali trzech pakietów aby zmienić kernel na GNU Linuksa-libre: linux-libre-image, linux-libre-source (opcjonalne) i linux-libre-headers (również opcjonalne, ale przydatne przy kompilacji innych programów). Gotowe pakiety znajdziemy w repo FreeSlack'a. Jeśli jednak chcemy samodzielnie zbudować pakiety z kernelem, odsyłam do poradnika. Potrzebujemy jeszcze klucza publicznego aby zweryfikować pobrane pakiety.
Musimy jeszcze przed instalacją Linuksa-libre odinstalować zwykły kernel, choć nie jest to konieczne (opcja z dwoma kernelami jest możliwa), ułatwi to konfigurowanie LILO. Używamy do tego narzędzia removepkg wchodzącego w skład pakietu pkgtools czyli narzędzi do zarządzania pakietami w Slackware.
# removepkg kernel-huge # removepkg kernel-generic # removepkg kernel-firmware # removepkg kernel-modules
Potem używamy narzędzia installpkg (również wchodzącego w skład pkgtools) do instalacji Linuksa-libre.
# installpkg linux-libre-image-4.4.14.gnu-x86_64-2.txz # installpkg linux-libre-headers-4.4.14.gnu-noarch-2.txz # installpkg linux-libre-source-4.4.14.gnu-noarch-2.txz
Teraz pozostaje nam wykonać komendę lilo, aby dodać nowy kernel do bootloadera. W tej chwili mamy w pełni wolny system.
Utrzymanie systemu wolnym
Wszystko fajnie tylko, że w repozytorium Slackware dalej znajdują się niewolne pakiety, które zostaną zainstalowane przy najbliższej aktualizacji (zakładam, że raczej każdy aktualizuje system który jest podpięty do sieci). Znów mamy dwie opcje, albo zmienić repozytoria na FreeSlack, albo dodać wszystkie niewolne pakiety do blacklisty slackpkg (od wersji 12.2 oficjalnie jest częścią dystrybucji).
Warto pamiętać aby nie wykonywać komendy slackpkg install-new bez wcześniejszego sprawdzenia czy nie zostały dodane żadne nowe niewolne pakiety (jeśli aktualizujemy do -current).
Brakujące pakiety
Niestety część tych niewolnych pakietów jakie usunęliśmy w tracie instalacji, jest niezbędna do codziennego użytku systemu. Ot, choćby taki Firefox czy Thunderbird. Sprawa jest bardzo podobna jak z kernelem, możemy użyć gotowego pakietu od FreeSlack lub zbudować sobie taki pakiet samemu. Na przykładzie IceCat'a pokażę jak taki pakiet zbudować. Najpierw potrzebne są pliki które pobierzemy ze strony SlackBuilds (największe repozytorium SlackBuild-ów tworzonych przez społeczność).
Potrzebne są źródła IceCat'a oraz archiwum tar ze SlackBuild-em i innymi potrzebnymi rzeczami. Po pobraniu rozpakowujemy archiwum tar ze SlackBuild-em i przenosimy plik ze źródłami do katalogu w którym znajduje się SlackBuild. Potem uruchamiamy SlackBuild.
# ./icecat.SlackBuild
Kiedy skrypt skończy pracę, gotowy do instalacji pakiet będzie znajdował się w katalogu /tmp.
# cd /tmp # installpkg icecat-52.1.0-x86_64-1-SBo.tgz
Takim oto sposobem mamy zainstalowaną przeglądarkę :)