NND – co i dlaczego

NND – jak kiedyś w PC World Computer napisano to dystrybucja o enigmatycznej nazwie. Jako jeden z autorów nie mogę się z tym zgodzić…
przecież ten skrót rozwija się bardzo prosto: Niestety Nie Działa
Mam nadzieję, że teraz już nie będzie to rozwinięcie obrazujące rzeczywistość NND. Ale jakby ktoś miał do nas pretensje, to stanowi ono znakomite wyjaśnienie wszystkich problemów – wszak oferujemy towar 100% zgodny z nazwą.
Niniejszy dokument jest wynikiem lenistwa i próbą wymigania się od konieczności odpowiadania na dziesiątki pytań dotyczących struktury, działania i funkcji poszczególnych elementów NND. Oczywiście nie ma tu miejsca, ani ja nie mam ochoty (i wystarczającej wiedzy), aby opisać wszystko ze szczegółami. Teorię Linuksa zostawmy więc i zajmijmy się tylko tym co w NND jest inne. Więc po kolei…

pacman – manager pakietów. Potrafi zainstalować, usunąć, zaktualizować pakiety NND. Pilnuje zależności pomiędzy pakietami. Pakiety można instalować z lokalnych lub zdalnych repozytoriów jak i z posiadanych na dysku pojedynczych plików. Wraz z Pacmanem dostajemy narzędzie make_nnd_pkg, (lub makepkg, ponieważ jest make_nnd_pkg jest symbolicznym linkiem do tego właśnie pliku) służące do budowy pakietów (prosimy o nieużywanie nazwy makepkg, ponieważ script zbuduje pakiet niezgodny z zalożeniami NND), gensync używany do generowania bazy pakietów, oraz kilka innych narzędzi które jeszcze nie zostały dodstosowane do specyfiki NND.

Pacmana używa się tak:

instalowanie pakietów:
pacman -S nazwa_pakietu

usuwanie pakietów:
pacman -R nazwa_pakietu

informacja o wersji zainstalowanego pakietu:
pacman -Q nazwa_pakietu

informacja o przynależności danego pliku do pakietu:
pacman -Qo /sciezka/plik

wyszukiwanie słowa w nazwach pakietów i ich opisach:
pacman -Ss szukane_słowo

instalacja pakietu z dysku
pacman -U /sciezka/plik

aktualizacja wszystkich zainstalowanych pakietów:
pacman -Suy

listowanie zainstalowanych pakietów:
pacman -Q

lista plików w pakiecie:
pacman -Ql nazwa_pakietu

oczywiście to tylko niektóre z możliwości pacmana. Wszystkie są opisane w manualu. Namawiam do przeczytania (niestety na razie po angielsku).
UWAGA! Pacman podczas instalacji/usuwania/upgrade pakietu prosi o potwierdzenie wykonania operacji. Można to „zautomatyzować” wydając polecenia w takiej formie:

yes | pacman -Suy

dodanie na początku polecenia ‚yes’ i potoku spowoduje, że pacman będzie działał bez dodatkowych pytań. Proponowałbym jednak używać tego ułatwienia „z głową”… wszak każdy kij ma przecież dwa końce 🙂

pakiety – zwykłe archiwa *.tar.gz zawierające dodatkowe pliki służace do budowy bazy pakietów i stanowiące źródło informacji o pakiecie.

net_conf – script konfigurujący nasze połączenia sieciowe, zarówno lokalne jak i internetowe.

nndpkg – quasi graficzny interfejs do podstawowych funkcji pacmana. Pozwala listować/instalować/usuwać pakiety, upgradeować system itp.

rc.conf – plik konfiguracyjny, możemy tam ustawić kilka parametrów dystrybucji – w komentarzach znajdują sie wyjaśnienia poszczególnych ustawień.

/etc/network/internal i /etc/network/external – katalogi zawierające skrypty startujące połączenia sieciowe, odpowiednio lokalne i zewnętrzne (internetowe). Każdy z tych scriptów powinien być zbudowany według ponizszego schematu:


#!/bin/sh

ZMIENNE=wykorzystywane_przez_skrypt

case $1 in
start)
polecenia_startujące_połączenie
if [ $? = 0 ]; then
exit 0
else
exit 1
fi
;;
stop)
polecenia_przerywające_połączenie
if [ $? = 0 ]; then
exit 0
else
exit 1
fi
;;
esac

Podczas startu systemu skrypty te są wywoływane przez skrypt /etc/rc.d/lan i /etc/rc.d/internet z parametrem start lub stop. Katalog /etc/network wraz z podkatalogami i skryptami generowany jest podczas pierwszego uruchomienia net_conf. Jeśli masz łącze, którego nie przewidzieli jeszcze autorzy NND to możesz stworzyć swoje własne skrypty startowe i tu je umieścić. Musisz jednak przestrzegać pewnych reguł:
– skrypty startujące połączenie z internetem MUSZĄ mieć nazwy według klucza – rc.$nazwa_łącza, z tym, że $nazwa_łącza jest zapisana w pliku rc.conf w zmiennej CONNECTION (np. jeśli zmienna ma wartość CONNECTION=dsl plik startowy nazywa się rc.dsl)
– skrypty startujące połączenia lokalne MUSZĄ mieć nazwy takie jak interfejsy sieciowe, które uruchamiają (np eth2, ppp1, ra0). Nazwy te są przypisane do kolejnych zmiennych INTIFx w pliku /etc/rc.conf. Jednocześnie nazwy te MOGĄ się pojawić w zmiennej DHCPIF w pliku /etc/rc.conf jeśli chcesz aby po uruchomieniu serwera dhcpd oczekiwał on na tych interfejsach na zapytania klientów.
Jeśli stworzysz własne skrypty startowe dla łącz lokalnych (np. kart radiowych) lub internetowych bardzo prosimy o podesłanie nam szczegółowego opisu łącza, wymaganych modułów bądź innego potrzebnego oprogramowania i samych scriptów. Pozwoli to nam rozszerzyć funkcjonalność NND.

pacman.conf – plik konfiguracyjny managera pakietów. Tu konfigurujemy adresy repozytoriów pakietów, postępowanie pacmana z różnymi plikami konfiguracyjnymi (backup, nadpisanie, pozostawienie bez zmiany), plik logu, sposób pobierania pakietów z internetu. Jeśli nie chcemy aby pacman uaktualniał nam jakiś pakiet należy w tym pliku, w sekcji [options] dodać linijkę:
IgnorePkg = nazwa_pakietu
Jeśli nie chcemy aby jakikolwiek plik został nadpisany przy upgradzie to w sekcji [options] dodajemy linię:
NoUpgrade = scieżka/nazwa_pliku
Przykładowe wpisy są już w pacman.conf. Zwracam uwagę, na konieczność aktualizowania pacman.conf po konfiguracji każdej usługi.

makepkg.conf – plik konfiguracyjny narzędzia do budowy pakietów. Poszczególne opcje są opisane w komentarzach. Ci, którzy przewidują budowanie własnych pakietów powinni tym pliku usunąć znak komentarza przed linią zaczynającą się od „export PACKAGER”, oraz wstawić w tej linii swoje dane.

/etc/rc.d – katalog zawierający scripty startowe systemu i scripty startowe usług systemowych (daemonów). Wszystkie one korzystają z pliku /etc/rc.d/functions – w którym są zawarte definicje kolorów i sposobu wyświetlania różnych informacji.

/etc/abs katalog z plikami konfiguracyjnymi dla programu abs. Program ten przeznaczony jest dla osób chcących budować pakiety. Łączy się on z serwerem i pobiera z serwera cvs wszystkie pliki niezbędne do budowy pakietów. Program działa tylko „do użytkownika” oraz nie daje bezpośredniego dostępu do serwera cvs.
Niestety w obecnej wersji jeszcze nie jest przystosowany do pracy w środowisku NND.

/etc/pacman.d – katalog w którym przechowywane są pliki z adresami repozytoriów pakietów.

/var/abs – katalog wykorzystywany przez program abs do przechowywania plików potrzebnych do budowy pakietów.

/var/cache/pacman/pkg – katalog w którym przechowywane są kopie zainstalowanych pakietów. Jeśli potrzebujesz miejsca na dysku możesz usunąć stare pakiety z cache poleceniem

pacman -Sc

Jeśli chcesz ten katalog opróżnić całkowicie użyj:

pacman -Scc

UWAGA, czasami stare pakiety się przydają… jeśli możesz sobie na to pozwolić proponuję nie używać dwóch powyższych poleceń. Przynajmniej niezbyt często, ostatniego zaś nigdy.

/var/cache/pacman/src – katalog w którym przechowywane są ściągnięte z internetu źródła programów które „pakietowaliśmy”. Ten katalog można opróżnić poleceniem:

make_nnd_pkg -C

/var/lib/pacman – katalog zawierający bazy pakietów. /var/lib/pacman/local to katalog z informacjami o zainstalowanych pakietach, pozostałe zawierają informacje o repozytoriach.

Oczywiście powyższe informacje nie wyczerpują tematu, jednak mam nadzieję, że choć trochę przybliżą specyfikę NND.

Michał Lechański (Mis’) 13-08-2006 o godz. 19:22:55


Dodaj komentarz