Πώς να μετατρέψετε από RPM σε DEB και DEB σε RPM πακέτο χρησιμοποιώντας το Alien


Όπως είμαι βέβαιος ότι γνωρίζετε ήδη, υπάρχουν πολλοί τρόποι εγκατάστασης λογισμικού στο Linux: χρησιμοποιώντας το σύστημα διαχείρισης πακέτων που παρέχεται από τη διανομή σας (aptitude, yum ή zypper, για να αναφέρουμε μερικά παραδείγματα), μεταγλώττιση από την πηγή (αν και κάπως σπάνια αυτές τις μέρες, ήταν η μόνη διαθέσιμη μέθοδος κατά τις πρώτες μέρες του Linux) ή χρησιμοποιώντας ένα εργαλείο χαμηλού επιπέδου όπως dpkg ή rpm με .deb< και .rpm ανεξάρτητα, προμεταγλωττισμένα πακέτα, αντίστοιχα.

Σε αυτό το άρθρο θα σας παρουσιάσουμε το alien, ένα εργαλείο που μετατρέπει μεταξύ διαφορετικών μορφών πακέτων Linux, με .rpm σε .deb (και vice αντίστροφα) είναι η πιο κοινή χρήση.

Αυτό το εργαλείο, ακόμη και όταν ο συγγραφέας του δεν το διατηρεί πλέον και δηλώνει στον ιστότοπό του ότι το alien θα παραμένει πάντα σε πειραματική κατάσταση, μπορεί να σας φανεί χρήσιμο εάν χρειάζεστε ένα συγκεκριμένο τύπο πακέτου, αλλά μπορείτε να βρείτε αυτό το πρόγραμμα μόνο σε άλλη μορφή πακέτου.

Για παράδειγμα, το alien έσωσε τη μέρα μου μία φορά όταν έψαχνα για ένα πρόγραμμα οδήγησης .deb για έναν εκτυπωτή inkjet και δεν μπορούσα να βρω κανένα – το Ο κατασκευαστής παρείχε μόνο ένα πακέτο .rpm. Εγκατέστησα το alien, μετέτρεψα το πακέτο και σε λίγο μπόρεσα να χρησιμοποιήσω τον εκτυπωτή μου χωρίς προβλήματα.

Τούτου λεχθέντος, πρέπει να διευκρινίσουμε ότι αυτό το βοηθητικό πρόγραμμα δεν πρέπει να χρησιμοποιείται για την αντικατάσταση σημαντικών αρχείων συστήματος και βιβλιοθηκών, καθώς έχουν ρυθμιστεί διαφορετικά μεταξύ των διανομών. Χρησιμοποιήστε το alien ως τελευταία λύση μόνο εάν οι προτεινόμενες μέθοδοι εγκατάστασης στην αρχή αυτού του άρθρου δεν είναι διαθέσιμες για το απαιτούμενο πρόγραμμα.

Τελευταίο αλλά εξίσου σημαντικό, πρέπει να σημειώσουμε ότι παρόλο που θα χρησιμοποιήσουμε CentOS και Debian σε αυτό το άρθρο, το alien είναι επίσης γνωστό ότι λειτουργεί στο Slackware και ακόμη και στο Solaris, εκτός από τις δύο πρώτες διανομές και τις αντίστοιχες οικογένειες τους.

Βήμα 1: Εγκατάσταση Alien and Dependencies

Για να εγκαταστήσετε το alien στο CentOS/RHEL 7, θα χρειαστεί να ενεργοποιήσετε το EPEL και το Nux Dextop (ναι, είναι Dextop – όχι Desktop), με αυτή τη σειρά:

# yum install epel-release
# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

Η τελευταία έκδοση του πακέτου που ενεργοποιεί αυτό το χώρο αποθήκευσης είναι αυτήν τη στιγμή 0.5 (δημοσιεύτηκε στις 10 Αυγούστου 2015). Θα πρέπει να ελέγξετε τη διεύθυνση http://li.nux.ro/download/nux/dextop/el7/x86_64/ για να δείτε εάν υπάρχει νεότερη έκδοση προτού προχωρήσετε περαιτέρω:

# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

τότε κάνε,

# yum update && yum install alien

Στο Fedora, θα χρειαστεί να εκτελέσετε μόνο την τελευταία εντολή.

Στο Debian και τα παράγωγα, απλώς κάντε:

# aptitude install alien

Βήμα 2: Μετατροπή από .deb σε πακέτο .rpm

Για αυτήν τη δοκιμή επιλέξαμε το dateutils, το οποίο παρέχει ένα σύνολο βοηθητικών προγραμμάτων ημερομηνίας και ώρας για την αντιμετώπιση μεγάλων ποσοτήτων οικονομικών δεδομένων. Θα κατεβάσουμε το πακέτο .deb στο πλαίσιο CentOS 7, θα το μετατρέψουμε σε .rpm και θα το εγκαταστήσουμε:

# cat /etc/centos-release
# wget http://ftp.us.debian.org/debian/pool/main/d/dateutils/dateutils_0.3.1-1.1_amd64.deb
# alien --to-rpm --scripts dateutils_0.3.1-1.1_amd64.deb

Σημαντικό: (Λάβετε υπόψη πώς, από προεπιλογή, το alien αυξάνει τον δευτερεύοντα αριθμό έκδοσης του πακέτου προορισμού. Εάν θέλετε να παρακάμψετε αυτήν τη συμπεριφορά, προσθέστε το –keep-version flag).

Εάν προσπαθήσουμε να εγκαταστήσουμε το πακέτο αμέσως, θα αντιμετωπίσουμε ένα μικρό πρόβλημα:

# rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm 

Για να λύσουμε αυτό το ζήτημα, θα ενεργοποιήσουμε το αποθετήριο δοκιμών epel και θα εγκαταστήσουμε το βοηθητικό πρόγραμμα rpmrebuild για να επεξεργαστούμε τις ρυθμίσεις του πακέτου που πρόκειται να αναδημιουργηθεί:

# yum --enablerepo=epel-testing install rpmrebuild

Τότε τρέξε,

# rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm

Αυτό θα ανοίξει τον προεπιλεγμένο επεξεργαστή κειμένου. Μεταβείτε στην ενότητα %files και διαγράψτε τις γραμμές που αναφέρονται στους καταλόγους που αναφέρονται στο μήνυμα σφάλματος και, στη συνέχεια, αποθηκεύστε το αρχείο και βγείτε:

Όταν κάνετε έξοδο από το αρχείο, θα σας ζητηθεί να συνεχίσετε με την αναδόμηση. Εάν επιλέξετε Y, το αρχείο θα ξαναδημιουργηθεί στον καθορισμένο κατάλογο (διαφορετικό από τον τρέχοντα κατάλογο εργασίας):

# rpmrebuild –pe dateutils-0.3.1-2.1.x86_64.rpm

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

# rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm
# rpm -qa | grep dateutils

Τέλος, μπορείτε να παραθέσετε τα μεμονωμένα εργαλεία που συμπεριλήφθηκαν στα dateutils και εναλλακτικά να ελέγξετε τις αντίστοιχες σελίδες man:

# ls -l /usr/bin | grep dateutils

Βήμα 3: Μετατροπή από .rpm σε πακέτο .deb

Σε αυτήν την ενότητα θα παρουσιάσουμε τον τρόπο μετατροπής από .rpm σε .deb. Σε ένα πλαίσιο Debian Wheezy 32 bit, ας κατεβάσουμε το πακέτο .rpm για το κέλυφος zsh από το CentOS 6 OS αποθετήριο. Σημειώστε ότι αυτό το κέλυφος δεν είναι διαθέσιμο από προεπιλογή στο Debian και σε παράγωγα.

# cat /etc/shells
# lsb_release -a | tail -n 4
# wget http://mirror.centos.org/centos/6/os/i386/Packages/zsh-4.3.11-4.el6.centos.i686.rpm
# alien --to-deb --scripts zsh-4.3.11-4.el6.centos.i686.rpm

Μπορείτε να αγνοήσετε με ασφάλεια τα μηνύματα σχετικά με μια υπογραφή που λείπει:

Μετά από λίγα λεπτά, το αρχείο .deb θα πρέπει να έχει δημιουργηθεί και να είναι έτοιμο για εγκατάσταση:

# dpkg -i zsh_4.3.11-5_i386.deb

Μετά την εγκατάσταση, μπορείτε να επαληθεύσετε ότι το zsh έχει προστεθεί στη λίστα με τα έγκυρα κελύφη:

# cat /etc/shells

Περίληψη

Σε αυτό το άρθρο εξηγήσαμε πώς να μετατρέψετε από .rpm σε .deb και αντίστροφα για να εγκαταστήσετε πακέτα ως έσχατη λύση, όταν τέτοια προγράμματα δεν είναι διαθέσιμα στα αποθετήρια ή ως διανεμητέο πηγαίο κώδικα. Θα θέλετε να προσθέσετε σελιδοδείκτη σε αυτό το άρθρο γιατί όλοι μας θα χρειαστούμε εξωγήινους κάποια στιγμή.

Μη διστάσετε να μοιραστείτε τις σκέψεις σας σχετικά με αυτό το άρθρο χρησιμοποιώντας την παρακάτω φόρμα.