Upgrading and Patching: Packages or Source ??

DJ Art djart at linux.gr
Mon Apr 5 13:36:12 EEST 2004


On Monday 05 April 2004 01:53, dfhg dfgh wrote:
> dianomi pou exo einai slackware 9.1 kai exw ton

Λοιπόν, αφού έχεις slackware άκου 5 πραγματάκια:

1) Θα γνωρίζεις ότι εκτός από το main branch του Slackware υπάρχει και 
το slackware-current. Αν θέλεις bleeding edge προγράμματα στο linux, 
τότε πρέπει να ακολουθήσεις το -current branch, να το ελέγχεις σχεδόν 
σε καθημερινή βάση (αν έχουν βγεί καινούρια πακέτα) και να τα 
εγκαθιστάς.

2) Αν δεν θές bleeding edge, αλλά stability και security, τότε 
εγκαθιστάς ένα version του slackware (π.χ. 9.1) και γράφεσαι και στη 
slackware-security λίστα και όποτε βγαίνει ένα security patch, τρέχεις 
και αναβαθμίζεις το πακέτο.

Για τα 1) και 2) δές στο http://www.slackware.com και εδώ:
http://www.slackware.com/changelog/current.php?cpu=i386

3) Πρέπει να μάθεις καταρχάς τη λειτουργία των package tools στο 
slackware. Μάθε τί κάνουν τα installpkg, upgradepkg, removepkg και 
makepkg.
Δές και το πακέτο /var/log/packages/pkgtools-version-mpla-mpla
Δές το documentation του παραπάνω πακέτου (/usr/doc/pkgtools-mpla/)
Δές τα manpages των παραπάνω εργαλείων.

4) Όταν μιλάμε για πακέτα στο Slackware, δεν αναφερόμαστε στα binaries 
πακέτα. Αναφερόμαστε είτε στα precompiled, είτε στο source. Υπάρχει το 
source branch του Slackware και για το 9.1 και για το -current.

Αν λοιπόν βγήκε το kde 3.2.1 για το -current και εσύ θές να το 
εγκαταστήσεις από source, τότε πάς στο source directory στο -current 
branch (σε οποιοδήποτε ftp mirror του slackware) και κατεβάζεις τα 
sources του πακέτου προς αναβάθμιση, τα τυχόν patches που έχουν 
εφαρμοστεί και το Slackbuild script για να δημιουργηθεί το .tgz πακέτο 
του Slackware.

Εσύ το μόνο που κάνεις είναι να κοιτάς αυτό:
http://www.slackware.com/changelog/current.php?cpu=i386


5) Εκτός από το -current υπάρχει και το directory extra/ στο ftp του 
slackware και εκεί υπάρχουν μερικά συμπληρωματικά πακετάκια (όπως το 
checkinstall και το swaret). Και πάλι υπάρχει source/ directory και για 
τα extra πακέτα.

6) Να εγκαταστήσεις το checkinstall και το swaret και να καταλάβεις τί 
κάνουν και πώς δουλεύουν. Εξηγώ:

> programma katevazo to source code.Den xreizete na
> vgalo tin paleoteri ekdosi gia na kano install??

Χρειάζεται συνήθως να κάνεις το εξής:

Κάνεις πρώτα compile χωρίς να βγάλεις τίποτα. Αν κάνει compile σωστά, 
τότε βγάζεις το παλιό και εγκαθιστάς το καινούριο.

Λοιπόν, καλό είναι τα πακέτα να μην τα βάζεις με ./configure && make && 
make install, αλλά με ./configure && make && checkinstall, ακριβώς για 
να έχεις tracking του τί υπάρχει στο σύστημά σου. Δές τα περιεχόμενα 
του καταλόγου /var/log/packages/ για να καταλάβεις. Μετά δές 
το /var/log/removed_packages και τα συναφή (scripts, removed_scripts 
κλπ).

Για να συμβαδίζεις με αυτή τη λογική, ο αρχικός τρόπος είναι ο εξής:
./configure
make 
make install DESTDIR=/path/to/hell
cd /path/to/hell
makepkg -l y -c n mypackage-x.y-i486.tgz
installpkg ./mypackage-x.y-i486.tgz

Επειδή όλα τα makefiles δεν προβλέπουν DESTDIR, για αυτό υπάρχει το 
checkinstall, το οποίο κάνει monitoring του ποιά αρχεία 
"πειράζονται/δημιουργούνται/κλπ" κατά το make install, τα κάνει copy 
κάπου σε temporary τοποθεσία και μετά τρέχει το makepkg και κάνει  
installpkg για να έχεις καταχώρηση στο /var/log/packages και να μπορείς 
ανα πάσα ώρα και στιγμή να κάνεις removepkg το πράγμα που έβαλες.

> Ela 
> mou de pou prepi na exeis kratisei to Makefile...kai
> an den iparxei rule unistall??

Για αυτό πρέπει να δουλεύεις σύμφωνα με τη λογική που υπάρχει πίσω από 
το /var/log/packages/*
Δηλαδή, με το checkinstall. Εκτός από το checkinstall υπάρχουν μερικά 
εναλλακτικά πακέτα (slackpkg) στο extra/ του Slackware, τα οποία όμως 
κάνουν πάλι το ίδιο πράγμα με αυτό που προανέφερα.

> Sto neo istallation tha 
> paei na grapsei pano sta idia arxia??(ade as kanei
> kamia prosthesi arxiou..omos an afisei arxia pou den
> ta xreiazete i efarmogi pia ?)

Μέχρι τώρα λογικά θα πρέπει να έχεις πιάσει το νόημα και να 
καταλαβαίνεις από μόνος σου πως η απάντηση σε αυτήν την ερώτηση είναι 
πως και πάλι "πρέπει να χρησιμοποιείς τη λογική του /var/log/packages/"

> kapioi mou protinan 
> "swaret"  oste na katevazo ton neo kodika twn paketwn
> & "chechinstall" wste afto pou kano compile na to
> egathisto san package.

Στο προτείνω και εγώ και καιρός είναι σιγά σιγά να το χρησιμοποιήσεις 
για να κάνεις αυτό που θέλεις.

> Iparxei kamia stadar
> methodos/kapio utility wste na kratas trace apo
> installation me source  ?? 

Ναι, και λέγεται "checkinstall" και "λογική πίσω από 
το /var/log/packages/"

Τέλος:

Μπές και κατανόησε τη δομή του ftp directory του Slackware. Δές τί 
εκπροσωπεί κάθε αρχείο στο ftp.
ftp://ftp.ntua.gr/pub/linux/slackware
ftp://ftp.ntua.gr/pub/linux/slackware/slackware-current

Δές πώς είναι δομημένοι οι κατάλογοι, τί νόημα έχει να είναι δομημένοι 
έτσι και δώσε όλη την έμφαση στο αρχείο ChangeLog.txt

-- 
Kyritsis Athanasios <djart at linux.gr>

Q: Εθελοντής ή θεατής ?
A: Ιδιοκτήτης! ;-)




More information about the Linux-greek-users mailing list