src2pkg - Slackware's "magic package maker"
Automatizacija nekih dobro poznatih komandi nije nekada dobra stvar jer jednom kada se stekne odredjena navika ona se tesko menja. Proces instalacije programa za GNU/Linux se sastoji iz nekoliko "magicnih" komandi, koje se svode na nekoliko koraka
- 1. download arhive sa source kodom (obicno sa ".tar.gz" ekstenzijom)
- 2. raspakivanje te arhive u neki direktorijum
- 3. konfiguracija
- 4. kompajliranje
- 5. instaliranje.
Ovih nekoliko koraka kada se prevedu na klasicne konzolne komande mogle bi da glase ovako:
$ wget http://ftp.gnu.org/pub/gnu/emacs/emacs-22.1.tar.gz
$ tar zxf emacs-22.1.tar.gz
$ cd emacs-22.1
$ ./configure (./configure --help za dodatne opcije)
$ make
# make install
Ono zbog cega ja sve ovo pisem jeste src2pkg novi slackware alat koji automatizuje ovih 5 koraka ali radi i jos vise od toga. U jednoj recenici to je univerzalni package maker. Slackware paket src2pkg mozete pronaci na autorovoj (Glibert Ashley) web strani http://distro.ibiblio.org/pub/linux/distributions/amigolinux/download/src2pkg/ . Src2pkg je skripta koja ce se postarati da proces instalacije prodje glatko jednom komandom, a takodje naprednijim korisnicima ostavlja mogucnost editovanja build skripte.
Generalna sintaksa komande je:
$ src2pkg [options] filename
Evo kako bi ovaj posao odradili sa src2pgk:
$ src2pkg -C http://ftp.gnu.org/pub/gnu/emacs/emacs-22.1.tar.gz
ova komanda ce skinuti source kode, kompajlirati i napraviti slackware paket u trenutnom direktorijumu. Ili
# src2pkg -I http://ftp.gnu.org/pub/gnu/emacs/emacs-22.1.tar.gz
koja ce odmah i instalirati taj isti paket.
Ovde treba primetiti razliku izmedje velikih i malih slova. Velikim slovima se predstavljaju opcije (naprimer -I instaliraj paket, -C napravi paket u trenutnom direktorijumu) i malim slova se predstavljaju opcije pri pravljenju paketa (naprimer -a naznacava arhitekturu, -e prosledjuje dodatne argumente configure skripti itd.). Sve opcije su lepo prikazane u man strani i ja cu ovde napomenuti samo neke od njih:
-C Stavlja napravljeni paket u trenutni direktorijum
-H Stavlja napravljeni paket u HOME direktorijum korisnika
-I Instalira napravljani paket
-N Generise pocetnu src2pkg srkiptu
-T Testira source kode bez pravljenja paketa
-V Prikazuje detalje
-VV Prikazuje jos vise detalja
-W Brise privremene direktorijume i fajlove npravljene u procesu kompajliranj i pravljenja paketa
-a Postavlja arhitekturu paketa
-e Prosledjuje ekstra argumente configure skripti (naprimer --enable-alsa)
-p Istalacioni prefiks (naprimer -p=/usr)
-v Verzija paketa
Ono sto bi moglo biti interesantno naprednijim korisnicima je opcija -N za generisanje src2pkg skripte (.src2pkg.auto). Ona je veoma jednostavna i sastoji se iz 44 linije, a najzanimljiviji deo bi mogao da bude:
# Any extra options go here
# EXTRA_CONFIGS=''
# STD_FLAGS='-O2 -march=i486 -mtune=i686'
promenite u njoj sta zelite i ukljucite opciju -X.
Src2pkg ne samo da pravi Slackware pakete iz source koda, nego to isto moze da uradi i sa Debian (.deb) i RedHat (.rpm) paketima, ali i sa binarnim instalacijama koje dolaze obicno u install.sh datoteci. Za .deb i .rpm pakete:
$ src2pkg -VV -C -W paket.rpm(deb)
dok kod binarnih instalacija morate ukljuciti opciju -S. Po defaultu src2pkg podrazumeva da je rec o install.sh datoteci u trenutnom direktorijumu, ako to nije slucaj onda treba navesi putanju do fajla.
$ src2pkg -C -VV -W -S putanja_do_fajla
Na kraju mogu da preporucim svim Slackware korisnicima src2pkg, kao mnogo laksi i jednostavni ili bolje receno automatizovaniji nacin kreiranja .tgz paketa i eksperimentisanja sa njima.
Artikelaktionen