Magaz, The Greek Linux Magazine
Magaz Logo

Επόμενο  Περιεχόμενα

1. Προβλήματα...και ...Λύσεις

Λοιπόν μόλις κατεβάσατε την νέα έκδοση του αγαπημένου σας προγράμματος και τρέχετε να την βάλετε. Αλλά δεν μπορείτε διότι δεν έχετε την νέα έκδοση της Ζ βιβλιοθήκης και το πρόγραμμα την ζητάει επίμονα βγάζοντας σας το μήνυμα: "failed dependencies Ζlib is needed by Υ-program.i386.rpm". "Ε, θα πάω κατεβάσω την νέα έκδοση και τέλος" λέτε. Αμ δε, μόλις πάτε να την βάλετε ένα σωρό προγράμματα φωνάζουν λέγοντας σας ότι αυτά τρέχουν μόνο με την ήδη υπάρχουσα έκδοση της περιβόητης βιβλιοθήκης βγάζοντας σας το μύνημα:"Ζlib.1 is needed by control-panel-3.7-4". 'Ετσι μένετε χωρίς την νέα έκδοση και με ένα πρόβλημα να προστίθεται στην λίστα μαζί με τα άλλα. Αλλά το Linux δεν αφήνει κανέναν παραπονεμένο και σας δίνει την λύση. Για να γίνω πιο κατανοητός θα περιγράψω την λύση με ένα παράδειγμα. 'Εχουμε και λέμε, το Υ-program.i386.rpm πακέτο για να δουλέψει θέλει την Ζlib-1.1.5 βιβλιοθήκη και εσείς έχετε την Zlib-1.0.2 και όταν πάτε να βάλετε την νέα βιβλιοθήκη πολλά άλλα πακέτα αρχίζουν να ουρλιάζουν, τι κάνουμε τώρα;
Μια εύκολη λύση είναι να κατεβάσουμε το source του Υ-program.i386.rpm,θα είναι της μορφής Υ-program.src.rpm., και να "κτίσουμε" στην έκδοση της βιβλιοθήκης που είδη έχουμε. Το "κτίσιμο " γίνετε με τα παρακάτω βήματα:


rpm --rebuild Υ-program.src.rpm
cd /usr/src/redhat/RPMS/i386
rpm -Uvh Υ-program.i386.rpm

Για να γίνει το κτίσιμο ΠΡΕΠΕΙ να έχετε το devel πακέτο της "Ζlib" εάν θέλει μια μόνο βιβλιοθήκη εάν θέλει πάνω από μία τότε ΠΡΕΠΕΙ να έχετε τα devel πακέτα των βιβλιοθηκών αυτών. Επιπλέον ΠΡΕΠΕΙ να έχετε το "patch-2.5-4.i386.rpm" ή νεώτερη έκδοση. O παραπάνω τρόπος δούλεψε στο "licq-0.60-3.i386.rpm" το οποίο θέλει την "libstdc++2.9.0" βιβλιοθήκη και εγώ είχα την "libstdc++2.8.0", έτσι κατέβασα το "licq-0.60-3.src.rpm" και το έκανα rebuild χωρίς να βάλω την "libstdc++2.9.0" βιβλιοθήκη. Δυστυχώς αυτός ο τρόπος δεν δουλεύει σε όλες τις περιπτώσεις. Πιο συγκεκριμένα, εάν ένα πρόγραμμα θέλει την Ζ-1.2lib και εσείς έχετε την Ζ-1.0lib το κτίσιμο δεν πρόκειται να γίνει διότι το πρόγραμμα τρέχει με functions ή άλλα σημαντικά στοιχεία που περιέχονται μόνο στην νέα βιβλιοθήκη. π.χ. το "gftp-1.12.i386.rpm" θέλει την 1.1.13 έκδοση των gtk+ και glib βιβλιοθηκών και εγώ είχα την 1.0.6 και όταν πήγα να βάλω τις νέες βιβλιοθήκες φώναζαν 3-4 πακέτα. Επιπλέον το rebuild με τις υπάρχουσες βιβλιοθήκες δεν έδινε λύση. Σε αυτή τη περίπτωση έκανα τα παρακάτω:

  1. Απεγκατάσταση των πακέτων που φώναζαν όταν προσπάθησα να βάλω τις νέες βιβλιοθήκες
    "rpm -e paketo"
    
  2. Απεγκατάσταση των βιβλιοθηκών που είχα ήδη στο σύστημα μου, είναι σίγουρο ότι θα πρέπει να δώσετε "--nodeps"
    "rpm -e --nodeps paketo"
    
  3. Εγκατάσταση των νέων βιβλιοθηκών
    "rpm -ivh paketo"
    
  4. rebuild των source(καλύτερα είναι να βρείτε τις νέες εκδόσεις των source) πακέτων που φώναζαν και εγκατάσταση των binary που δημιουργούνται.
  5. Εγκατάσταση του προγράμματος που για χάρη του έκανα τα παραπάνω
    "rpm -ivh paketo"
    

Αυτός είναι ένας "γενικός" τρόπος ΑΛΛΑ για τις νέες gtk+ και glib βιβλιοθήκες χρειάστηκε ειδική μεταχείριση. Εάν θέλετε πληροφορίες σχετικά με αυτές τις βιβλιοθήκες mail me. Εμένα τα gimp-1.0.1, nessus, usermode, usernet, control-panel και imlib μου έλεγαν ότι τρέχουν μόνο με την υπάρχουσες εκδόσεις των βιβλιοθηκών ΑΛΛΑ παρατήρησα ότι το gimp και nessus τρέχουν με την νέα βιβλιοθήκη χωρίς να τα κάνω rebuild και ούτε να τα βγάλω. Τα άλλα όμως δεν το γλίτωσαν την απομάκρυνση τους και κτίσιμο τους με τις νέες βιβλιοθήκες. 'Αρα, πρώτα δοκιμάζουμε να κάνουμε κτίσιμο με τις υπάρχουσες βιβλιοθήκες και μετά τον 2ο τρόπο. Διότι είναι και χρονοβόρος αλλά και μπορεί να ΜΗΝ δουλέψει για αυτό αναλογιστείτε εάν το ένα και μοναδικό νέο πρόγραμμα που θέλετε αξίζει την φασαρία. Το "gftp" δεν την άξιζε αλλά εγώ το έκανα επειδή είχα πεισμώσει να βρω την λύση.

Επόμενο  Περιεχόμενα


Valid HTML 4.01!   Valid CSS!