1. Wprowadzenie
Artykuł ten ma na celu przedstawienie narzędzia do zarządzania pakietami w dystrybucji Slackware. Tak jak większość osób wie że narzędziem do zarządzania pakietami w Debianie jest apt-get tak i w Slack'u narzędzie takie nazywa się Swaret. Dzięki niemu bez problemu będziesz mógł pobierać, instalować, reinstalować i aktualizować programy, patche i biblioteki. Swaret potrafi również wykryć brakujące biblioteki, ściągnąć je z internetu i zainstalować. Swaret jest skryptem który korzysta z różnorakich mirrorów Slackware (definiowanie w pliku konfiguracyjnym) sam będziesz mógł podać adres najszybszego dla Ciebie serwera skąd swaret będzie pobierać paczki, używa do tego takich protokołów jak http, ftp czy rsync. Nadmienić też można iż swaret umie korzystać z lokalnych nośników zawierających pakiety *.tgz.
2. Wymagania Swaret'a
Swaret do poprawnego działania wymaga:
# Dystrybucji Slackware 8.1 lub nowszej, aktualnie najnowszą dystrybucją jest Slackware 9.1.
# pkgtools
# wget lub rsync
# powłoka bash
# gawk
# man
# grep
# sed
# procps
# coreutils/fileutils/textutils
# util-linux
# gzip
# bzip2
# bc
# glibc
Brakujące paczki możesz pobrać ze strony http://www.slackware.com/pb/ podając nazwę tejże paczki, lub wejść na ftp://ftp.slackware.pl/pub/slackware/slackware-current/slackware/ i sobie zassać Swaret przy najnowszej wersji sam informuje jakiej paczki nie ma i wymaga do instalacji.
3. Instalacja Swaret'a
A więc jak już coś wiemy o naszym narzędziu to czas zabrać się za jego ściągnięcie i zainstalowanie W dniu pisana tego arta najnowszą wersją jest swaret-1.6.2 i ją zainstalujemy.
Zaloguj sie na root'a i wydaj poniższe dwie komendy a swaret zainstaluje się w twoim systemie.
# wget http://www.swaret.org/files/stable/swaret-1.6.2-noarch-1.tgz
# installpkg swaret-1.6.2-noarch-1.tgz
Po poprawnej instalacji, zostanie utworzony katalog /var/swaret oraz plik /etc/swaret.conf.new, któremu należy poświęcić trochę czasu... zapraszam do dalszej części w której to zostaną objaśnione zmienne w pliku konfiguracyjnym.
4. Konfiguracja Swaret'a
Plik konfiguracyjny skryptu, po instalacji systemu, znajduje się w katalogu /etc i ma nazwę swaret.conf.new Plik należy edytować i dokonać odpowiednich zmian. Opcje włączamy/wyłączamy haszując/odhaszowując daną linijkę. Postaram się, w miarę przystępnej formie, przybliżyć większość dostępnych opcji.
Najpierw kopiujemy i zmieniamy nazwę pliku konfiguracyjnego a potem go edytujemy
# cp /etc/swaret.conf.new /etc/swaret.conf
I zabieramy sie za edycję naszego konfiga, rzeczy pisane kursywa czcionką są przykładowymi które można podać do naszego konfiga
# vi /etc/swaret.conf
VERSION = Mówi o tym, z której wersji systemu swaret ma pobierać pakiety. Proponuję ustawić:
VERSION=current
ROOT = Definiuje ścieżkę/scieżki do zasobów, z których pobierane są pakiety. Można ustawić jeden, lub kilka adresów, można również ustawić nośnik lokalny.
Przykładowo ustawiamy:
ROOT=ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-$VERSION
REPOS_ROOT - Kolejny zasób, z którego pakiety mogą być pobierane. Ustawiamy:
REPOS_ROOT=LinuxPackagesDOTNET%ftp://ftp.linuxpackages.net/pub/Slackware-9.1
DEP_ROOT = Adres z lista mirrorów, które zawierają biblioteki (używane przy sprawdzaniu zależności), ustawiamy:
DEP_ROOT=ftp://ftp.swaret.org/swaret
RANDOMR = Jeśli odhaszowałeś więcej niż jeden adres mirrora, zawierającego pakiety tgz, w tym miejscu możesz ustawić, aby swaret losowo wybierał adresy, z których będzie sciągał pakiety 1 - adresy wybieraj losowo, 0 - nie wybieraj adresów losowo
RANDOMR=0
USEPKGDESC = Jeśli ustawisz 1, swaret będzie szukał słowa kluczowego (nazwy programu), również w opisach pakietów. Opcja ta spowalnia wyszukiwanie i jest dość uciążliwa, ustawiamy wiec:
USEPKGDESC=0
EXCLUDE = Jeśli chcesz aby pewne pakiety do ściągnięcia czy instalacji były pomijane przez skrypt, dodaj nazwy tych pakietów do EXCLUDE=, przykładowo:
EXCLUDE=kernel
EXCLUDE=lilo swaret
EXCLUDE=MANIFEST.bz2$
EXCLUDE=-*dl$ -*PACKAGER$ -*MYBUILD$
DEPENDENCY = Ustaw 1, aby włączyć sprawdzanie zależności po zainstalowaniu pakietu, lub 0 aby wyłączyć. Ustawiamy:
DEPENDENCY=1
DSEARCHLIB = Ustaw 1 jeśli chcesz aby swaret wyszukiwał brakujące biblioteki w twoim systemie. Ustawiamy:
DSEARCHLIB=1
DSEARCHM = 1 - użyj slocate do wyszukiwania brakujących bibliotek.
0 - użyj 'find'. W przypadku ustawienia 1, należy regularnie uruchamiać komendę 'updatedb' w systemie.
Wskazane jest umieszczenie, na przykład, w crontabie wpisu:
0 8 * * * updatedb >/dev/null 2>&1
Ustawiamy więc:
DSEARCHM=1
MD5CHECK = 1 - Włącza sprawdzanie sumy kontrolnej pakietu po ściągnięciu. Ustawiamy:
MD5CHECK=1
GPGCHECK = Sprawdzanie sygnatury GPG po ściągnięciu pakietu. Ustawiamy:
GPGCHECK=0
DESC = 1 - Wyświetla opis pakietu podczas ściągania czy instalacji. Ustawiamy:
DESC=0
CACHE_DIR = Definiuje katalog swareta, wykorzystywany np. do przechowywania ściągniętych pakietów. Ustawiamy:
CACHE_DIR=/var/swaret
LOG = 1 - włącza logowanie. 0 - wyłącza logowanie. Ustawiamy:
LOG=1
LOG_FILE = Definiuje ścieżkę, w którym zostaną zapisane logi. Ustawiamy:
LOG_FILE=/var/log/swaret
WARNINGS = 1 - pokazuje ostrzeżenia. 0 - nie pokazuje ostrzeżeń. Ustawiamy:
WARNINGS=1
INFORMATION = 1 - pokazuje informacje. 0 - nie pokazuje informacji. Ustawiamy:
INFORMATION=1
NIC = Definiuje interfejs sieciowy (eth0, eth1, ppp). Jeśli nie masz podłączenia do internetu i korzystasz ze źródeł zawartych np. na cd, to ustaw:
NIC=lo
W innym przypadku, zależnie od rodzaju połączenia, ustawiamy na przykład:
NIC=eth0
TIMEOUT = Liczba sekund, po której wget lub rsync przerwa próbę połączenia się z hostem. Przykładowo ustawiamy:
TIMEOUT=35
RETRIES = Ilość prób połączeń jaką ma wykonać wget/rsync. Ustawiamy:
RETRIES=5
PASSIVE_FTP = 1l0 - włącza/wyłącza tryb pasywny. Jeśli jesteś za firewallem, korzystając z mirrorów przez protokół ftp ustaw 1, jeśli nie - 0. Ustawiamy:
PASSIVE_FTP=0
WGET_PROXY = Jeśli chcesz skorzystać z ftp/http proxy, odhaszuj tą linijkę i ustaw: WGET_PROXY=http://adres_proxy:port
RSYNC_PROXY = Analogicznie jak wyżej.
Końcowo nasz plik konfiguracyjny powinien wyglądać następująco:
# cat /etc/swaret.conf
ROOT=ftp://ftp.man.olsztyn.pl/pub/linux/distributions/slackware/slackware-$VERSION
ROOT=ftp://sunsite.icm.edu.pl/pub/Linux/slackware/slackware-$VERSION
ROOT=ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-$VERSION
ROOT=http://sunsite.cnlab-switch.ch/ftp/mirror/slackware/slackware-$VERSION
ROOT=ftp://ftp.slackware.no/pub/linux/slackware/slackware-$VERSION
ROOT=http://www.slackware.no/slackware/slackware-$VERSION
ROOT=ftp://ftp.slackware.at/slackware-$VERSION
ROOT=http://www.slackware.at/data/slackware-$VERSION
ROOT=ftp://ftp.planetmirror.com/pub/slackware/slackware-$VERSION
ROOT=http://ftp.planetmirror.com/pub/slackware/slackware-$VERSION
REPOS_ROOT=LinuxPackagesDOTNET%ftp://ftp.linuxpackages.net/pub/Slackware-9.1
DEP_ROOT=ftp://ftp.swaret.org/swaret
RANDOMR=0
USEPKGDESC=0
EXCLUDE=kernel
EXCLUDE=lilo swaret
EXCLUDE=MANIFEST.bz2$
EXCLUDE=.*dl$ .*PACKAGER$ .*MYBUILD$
EXCLUDE=kde-i18n[nl,en_GB] koffice-i18n[nl,en_GB]
DEPENDENCY=1
DSEARCHLIB=1
DSEARCHM=0
MD5CHECK=1
GPGCHECK=0
DESC=0
CACHE_DIR=/var/swaret
LOG=1
LOG_FILE=/var/log/swaret
WARNINGS=1
INFORMATION=1
NIC=eth0
PROGRESS=1
TIMEOUT=35
RETRIES=5
PASSIVE_FTP=1
### /etc/swaret.conf - SWARET EXAMPLE CONFIGURATION FILE ###
5. Przydatne parametry Swaret'a i przykłady ich wykorzystania
1.
--update <> przykład:
===================================
Z tym poleceniem, możesz zaktualizować listę plików. Jeżeli DESCRIPTIONS w pliku /etc/swaret.conf jest ustawione na 1 jest możliwe także ściąganie pliku z opisem dla paczek, dodatkowych paczek i łatek.
2.
--upgrade <> przykład:
===================================
Z tym poleceniem, możesz aktualizować paczki. Praktycznie za każdym razem będą nowe rzeczy do ściągnięcia, dlatego pamiętaj żeby najpierw zrobić --update. Więc, jeżeli chcesz zaktualizować paczkę z programem openssl powinieneś wpisać: swaret --upgrade openssl Jeżeli, chcesz zaktualizować dodatkową paczkę np: bittorrent, użyj:
swaret --upgrade bittorrent
Tutaj także możesz użyć polecenia --changelog, jeżeli chcesz sprawdzić czy w programie coś się zmieniło. Powiedzmy że chcesz zaktualizować wszystkie paczki ze słowem 'gnome', więc wpisujesz komendę: swaret --upgrade gnome Jeżeli chcesz zaktualizować automatycznie wszystkie paczki z KDE, powinieneś użyć komendy: swaret --upgrade kde -a.
Aby zaktualizować wszystkie paczki, użyj komendy: swaret --upgrade.
3.
--install <> przykład:
===================================
Tym poleceniem możesz instalować paczki lub łatki. Przypuśćmy, że chcesz zainstalować wszystkie paczki zawierające słowo 'kde', więc powinieneś użyć następującej komendy: swaret --install kde. Lecz chcesz jeszcze zainstalować 'xfree86', więc wydajesz komendę:
swaret --install xfree86.
Nie powinieneś także zapomnieć o instalacji najnowszej wersji Abiword Word Processor, więc: swaret -install abiword -a (automatycznie). Chciałbyś jeszcze zainstalować xcdroast'a żeby móc wypalać płyty CD. Xcdroast jest juz dodatkową paczką, więc instalujesz go następującą komendą: swaret --install xcdroast. O, jest także dostępny patch dla OpenSSH, więc zainstalujmy go: swaret -install openssh -p.
Jeżeli chcesz zainstalować nowszą wersję np. OpenSSL, a jest już jedna zainstalowana to swaret ja zaktualizuję.
4.
--reinstall <> przykład:
===================================
Tym poleceniem możesz przeinstalować paczki lub łatki. Przypuśćmy, że chcesz przeinstalować cała bazę systemowa, więc aby to zrobić musisz użyć komendy: swaret --reinstall -a (automatycznie). Jeżeli chcesz przeinstalować wszystkie paczki gnome, ponieważ instalacja się nie powiodła zrób to tak: swaret --reinstall gnome. Jeźeli chcesz przeinstalować xcdroast'a użyj komendy: swaret --reinstall xcdroast.
5.
--remove <> przykład:
===================================
Tym poleceniem możesz usunąć zainstalowane wcześniej paczki lub łatki. Jeżeli chcesz usunąć automatycznie wszystkie paczki z KDE, Gnome i XFree86 użyj: swaret --remove kde,gnome,xfree86 -a
6.
--get <> przykład:
===================================
Tym poleceniem możesz ściągnąć paczki, łatki i lub źródła.
Powiedzmy, że chcesz ściągnąć paczki zawierające słowo glibc, więc używasz komendy:
swaret --get glibc. Potrzebujesz jeszcze ściągnąć wszystkie paczki zawierające słowo bin-: swaret --get bin-. Jeżeli masz zamontowany CD-ROM w katalogu /mnt/cdrom, i masz dodany w pliku /etc/swaret.conf wpis file:/mnt/cdrom obok opcji ROOT, możesz korzystać z lokalnych plików.
A wiec aby zainstalować paczki z KDE z CD-ROM'u użyj: swaret --get kde -a (automatycznie). Jeżeli chcesz własnoręcznie skompilować OpenSSH i Apache+PHP ściągnij ich źródła: swaret --get openssh,apache,php -s i użyj skryptów 'SlackBuild', które powinny znajdować się w katalogu:
/var/swaret/sources (standardowo). Jeżeli chcesz ściągnąć wszystkie paczki i zaktualizować je automatycznie użyj komendy: swaret -get -au, natomiast jeżeli chcesz ściągnąć wszystkie paczki zawierające słowo 'openssl' i je zaktualizować użyj: swaret --get openssl -au.
7.
--dep <> przykład:
===================================
Z tym poleceniem możesz znaleźć brakujące biblioteki i je zainstalować. Np. powiedzmy, że instalacja Gimpa się nie powiodła, i brakuje kilku bibliotek, w takim wypadku możesz użyć: swaret --dep gimp. Jeżeli w pliku /etc/swaret.conf nie ma zdefiniowanej opcji: NO DEP_ROOT, swaret przechwyci w poczekalni MANIFEST z dostępnego serwera i sam utworzy listę bibliotek.
Przypuśćmy że masz kopie Linuksa Slackware w katalogu: /mnt/slackwre (możliwe, że zamontowane z iso9660,smbfs albo nfs), więc możesz zahaszowac wszystkie opcje DEP_ROOT w pliku /etc/swaret.conf a swaret sam zbuduję listę bibliotek ;). Pamiętaj, że jeżeli chcesz korzystać z lokalnych plików musisz zmienić opcję NIC w pliku /etc/swaret.conf na 'lo'.
Jeżeli chcesz sprawdzać zależności wszystkiego co instalujesz, użyj:
--dep.(sprawdzić!)
8.
--resume <> przykład:
===================================
Z tym poleceniem, możesz wznowić przerwane ściąganie paczek, łatek lub źródeł, które zostały znaleźione w katalogu swareta.
Wznowienie ściągania wszystkich paczek: swaret --resume
Wznowienie ściągania wszystkich łatek: swaret --resume -p
Wznowienie ściągania wszystkich źródeł: swaret --resume -s
9.
--list <> przykład:
===================================
Dzięki temu poleceniu możesz wyświetlić zainstalowane i dostępne paczki, łatki i lub źródła. Aby wyświetlić wszystkie dostępne źródła, uzyj: swaret --list -s. Przypuśćmy że chcesz wyświetlić wszystkie łatki, które nie są zainstalowane jeszcze: swaret --list -np.
Jeżeli chcesz wiedzieć które paczki lub łatki są zainstalowane w twoim systemie użyj komendy: swaret --list -i. Jeżeli zaś chcesz zobaczyć wszystkie dostępne paczki użyj: swaret --list.
10.
--search <> przykład:
===================================
Używając tego polecenia możesz przeszukać zainstalowane lub dostępne paczki, łatki i/lub źródła. Jeżeli chcesz poszukać wszystkich dostępnych źródeł zawierających słowo KDE, użyj: swaret --search kde -s.
Przypuśćmy chcesz poszukać wszystkich paczek zawierających słowo 'open', więc użyj komendy: swaret --search open. Jeżeli chcesz się dowiedzieć które paczki zawierające słowo 'kernel' są zainstalowane na twoim systemie, użyj: swaret --search kernel -i. Jeżeli potrzebujesz się dowiedzieć które paczki z KDE nie są jeszcze zainstalowane, użyj: swaret -search kde -n.
Poszukiwanie dostępnych paczek dla evolution i mozilli będzie wyglądało następująco: swaret --search evolution,mozilla.
11.
--show <> przykład:
===================================
Dzięki temu poleceniu możesz zobaczyć opis dla dostępnych bądź zainstalowanych paczek, dodatkowych paczek i/lub łatek. Jeżeli chcesz wyświetlić opis dla zainstalowanych paczek z KDE użyj komendy: swaret --show kde -i. Jeżeli chcesz wyświetlić opis dla wszystkich dostępnych paczek z Gnome użyj: swaret --show gnome. Aby zostały pokazanie opisy xcdroast'a i mplayer'a wpisz: swaret --show xcdroast,mplayer.
Pamiętaj, aby ustawić w pliku /etc/swaret.conf DESCRIPTIONS na 1 i zrobić --update.
12.
--changelog <> przykład:
===================================
Tym poleceniem, możesz wyświetlić ostatnie zmiany w programie (ChangeLog).
13.
--set <> przykład:
===================================
Wyłączenie opisów: swaret --set DESCRIPTIONS=0
Wyłączenie sprawdzania zależności: swaret --set DEPENDENCY=0
Wyłączenie szukania bibliotek: swaret --set DSEARCHLIB=0
Zmienienie interfejsu sieciowego na ppp0: swaret -set NIC=ppp0
Wyłączenie REPOS_ROOT URL'a: swaret --set REPOS_ROOT=0
Wyłączenie ROOT URL'a: ftp://ftp.swaret.org: swaret -set ROOT=ftp://ftp.swaret.org=0
Jeżeli chcesz uzyskać więcej informacji wpisz w konsoli: swaret -set i naciśnij Enter.
14.
--gpg <> przykład:
===================================
Z tym poleceniem możesz importować Publiczny Klucz GPG. Ja sprowadziłem klucz GPG, który znalazłem w katalogu Roota w Slackware, a później importowałem go następującą komendą:
swaret --gpg -i GPG-KEY.
15.
--log <> przykład:
===================================
Z tym poleceniem możesz wyświetlić plik w którym znajduję się log, a jeśli użyjesz opcji -t będziesz mógł (śledzić?) plik z logiem /var/log/swaret. Aby wyczyścić plik z logiem swareta użyj komendy:
swaret --log -c.
16.
--purge <> przykład:
===================================
Z tym poleceniem, możesz usunąć pliki z katalogu swareta. Powiedzmy, że chcesz usunąć wszystkie paczki, zrób to komenda: swaret --purge. Chciałbyś także usunąć źródła, więc użyj: swaret --purge -s. Jeżeli chciałbyś usunąć pliki starsze niż 4 tygodnie użyj: swaret --purge -w 4. Jeżeli natomiast chciałbyś usunąć źródła starsze niż 14 dni użyj komendy: swaret --purge -ds 14.
17.
--check <> przykład:
===================================
Aby sprawdzić czy wyszła nowsza wersja swareta użyj komendy: swaret --check.
18.
Rózne przykłady <> Instalacja wszystkich paczek jedna komenda.
===================================
Po prostu użyj następującej komendy: swart --install -a (zainstaluj wszystkie paczki automatycznie) (Paczki zostaną zapisane w katalogu swareta, standardowo: /var/swaret)
19.
Różne przykłady <> Ściąganie wszystkich łatek jedna komenda.
Wpisz w konsoli: swaret --get -ap
(Ściąganie wszystkich latek automatycznie) (Łatki zostaną zapisane w katalogu swareta, standardowo: /var/swaret)
20.
Różne przykłady <> Brakujące biblioteki:
===================================
Komenda: swaret --dep -a służy do automatycznego uruchomienia sprawdzania zależności pomiędzy plikami. Jeżeli swaret nie może znaleźć brakującej/łych bibliotek, zawsze możesz ustawić DSEARCHLIB w pliku /etc/swaret.conf na 1. Kiedy znów uruchomisz sprawdzanie zależności, swaret najpierw przeszuka cały twój system poszukując biblioteki i doda potrzebne katalogi do /etc/ld.so.conf. (I swaret oczywiście automatycznie zrestartuje ldconfig)
Swaret wykorzysta program 'find' do odszukania potrzebnych bibliotek, ale jeżeli chcesz używać programu 'slocate' do ich szukania, możesz ustawić DSEARCHM w pliku /etc/swaret.conf na 1. powinieneś także aktualizować bazę 'slocate', komendą: updatedb.
21.
Różne przykłady <> Aktualizacja tylko Xfree86 Fonts i paczek z dokumentacją, wyłączając inne paczki z XFree86:
===================================
Możesz to zrobić dopisując obok opcji EXCLUDE w /etc/swaret.conf: xfree86[docs,fonts]. Kiedy uruchomisz aktualizację, swaret zaktualizuje tylko paczki xfree86-docs i xfree86-fonts, pomijając instalację reszty paczek z XFree86. Możesz to samo wykonać także z linii poleceń wydając komendę:
swaret --upgrade xfree86-docs,xfree86-fonts.
22.
Różne przykłady <> Wykluczenie kernela, lilo i innych ważnych paczek podczas aktualizacji:
===================================
Procedura aktualizacji korzysta z opcji EXCLUDE, które znajdują się w pliku konfiguracyjnym swareta /etc/swaret.conf. Wystarczy dopisać obok EXCLUDE słowa: lilo, kernel, by wykluczyć je z instalacji. Gdy rozpoczniesz aktualizacje swaret zainstaluje wszystkie paczki oprócz paczek które zawierają słowa dopisane obok EXCLUDE (czyli w naszym wypadku: lilo i kernel).
23.
Różne przykłady <> Instalacja polskiego pliku językowego:
===================================
Skopiuj /usr/share/swaret-WERSJA/swaret.lang.POLISH do /etc/swaret.lang i zacznij używać swareta. Jeżeli to nie zadziała ściągnij ze strony
http://www.swaret.orgl/menu=i18n polski plik językowy i zapisz go w katalogu /etc jako swaret.lang, i uruchom swareta.
6. Słowo od autora
No to dotarliśmy już do konca tego artykułu mam nadzieję że ten artykuł oswoi wasz z tym wspaniałym narzędziem, na wszelkie konstruktywne sugestie i uwagi oczekuję pod adresem krycha@linux.pl .