Log in


Forgot your password?
prijatelji LUGoNSa
gnu.gif
linuxzasve.jpg
hulk.jpg
 
You are here: Home / members / srx / src2pkg - Slackware's "magic package maker"

src2pkg - Slackware's "magic package maker"

by Srdjan Andjelkovic last modified Dec 15, 2007 04:45 PM
Slackware's "magic package maker" ovaj deo namerno nisam hteo da prevodim jer stvarno postoji neka "crna magija" u ovom package maker-u.

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.


Document Actions