MAKEPKG(8)

NAZWA
makepkg - utwórz pakiety Slackware

STRESZCZENIE
makepkg [ -l, --linkadd y|n ] [ -c, --chown y|n ] nazwapakietu

OPIS
makepkg tworzy nowy, kompatybilny z systemem Slackware, pakiet. Pakiet ten zostanie zbudowany używając zawartości bieżącego katalogu i wszystkich jego podkatalogów. Jeśli istnieją dowiącania symboliczne, przekonwertowane one zostaną do kodu w skrypcie, aby po instalacji pakietu ponownie zostały zamienione w dowiązania. Kod ten zostanie dołączony do głównego skryptu instalacyjnego ( install/doinst.sh ), lub, jeśli skrypt ten nie istnieje, będzie on utworzony wraz z tą zawartością. Pakiet zostanie zapisany w pliku packagename, który powinien zawierać pełną nazwę wraz z rozszerzeniem. Jest to zwykle .tgz lecz .tbz, .tlz lub .txz są także dopuszczalne. Odpowiednie narzędzie do kompresji (gzip, bzip2, lzma, lub xz) musi być zainstalowane.

OPCJE

-l, --linkadd y|n
    Jeśli y, dodaj jakiekolwiek znalezione dowiązania symboliczne do skryptu instalacyjnego (doinst.sh) oraz je usuń. Jest to zalecane. Jeśli opcja ta nie zostanie użyta, makepkg zapyta czy dowiązania symboliczne zostały znalezione.

-p, --prepend
    Opcja ta powoduje, że jakiekolwiek dowiązania symboliczne dodane do doinst.sh zostaną załączone do początku istniejącego skryptu. Jest to użyteczne przy pakietach zawierających biblioteki współdzielone, które powinny być łączone w pierwszej kolejności, gdyż zostaną one później użyte przez programy w skrypcie doinst.sh.

-c, --chown y|n
    Przy opcji y, makepkg zresetuje wszystkie uprawnienia katalogów do 755 a ich przynależność do root:root. Ogólnie, powinno się samemu zadbać o uprawnienia i przynależność, a poleganie ustawieniu tej opcji na 'y' jest troche niedbałe. Nie jest to wartość domyślna. Jeśli opcja ta nie jest podana, makepkg o to zapyta.

SKRYPTY INSTALACYJNE
Istnieją 3 rodzaje skryptów instalacyjnych wspieranych przez system paczkek systemu Slackware.

Pierwszym jest
    główny skrypt instalacyjny. Znajduje się on w podkatalogu ./install i musi nazywać się doinst.sh by być rozpoznanym. Powinien on (tak jak inne skrypty instalacyjne) być napisany używając standardowej składni powłoki Bourne (Bourne shell) rozpoznawanej przez powłokę ash, gdyż jest to powłoka używana do uruchomienia skryptów przy instalacji z dyskietki systemu Slackware. Jest to częsta pułapka - unikaj rozszerzeń typowych dla bash, gdyż mimo, że skrypt zadziała poprawnie gdy instalowany z twardego dysku, lecz wyrzuci błąd gdy instalowany z dyskietki. Jeśli pakiet jest do użytku osobistego, nie stanowi to problem. Uważaj, jednak, jeśli planujesz podzielić się pakietem z innymi. Główny skrypt instalacyjny jest wykonywany bezpośrednio po instalacji pakietu przy pomocy installpkg, pkgtool, lub setup.

Drugim rodzajem skryptu jest
    Skrypt konfiguracyjny. Znajduje się on w podkatalogu ./var/log/setup a jego nazwa musi zaczynać się od setup aby był rozpoznawany. Przykładem jest skrypt strefy czasowej: /var/log/setup/setup.timeconfig. Skrypty te wykonywane są podczas etapu konfiguracji (ang. CONFIGURE) programu setup i są wywoływane za każdym razem, gdy użytkownik go uruchomi. Zwykle użytkownik przechodzi przez ten etap po zakończeniu instalacji wyszstkich pakietów. Jeśli cokolwiek ma być interaktywne, musi to trafić do jednego z tych skryptów by uniknąć blokowania procesu instalacyjnego pakietów podczas użycia programu setup.

Trzecim typem skryptu jest
    skrypt onlyonce (tylkoraz). Jak nazwa wskazuje, w odróżnieniu od standardowych skryptów konfiguracyjnych, skrypty te wykonywane są tylko raz po tym jak pakiet został zainstalowany. Skrypty te znajdują się w katalogu ./var/log/setup i muszą mieć ciąg onlyonce w nazwie. Przykładem może być skrypt o nazwie /var/log/setup/setup.onlyonce.testscript.

FORMAT PAKIETU
makepkg używa GNU tar oraz GNU gzip przy tworzeniu pakietów. Prostym sposobem na wyszczególnienie zawartości pakietu (oczywiście bez uruchomienia skryptów instalacyjnych) jest użycie następującej komendy:

explodepkg paczka.tgz

Lub coś takiego:

gzip -dc paczka.tgz | tar xvvf -

AUTOR
Patrick J. Volkerding <volkerdi@slackware.com>

ZOBACZ RÓWNIEŻ
installpkg(8), explodepkg(8), removepkg(8), pkgtool(8), upgradepkg(8)