Προς το περιεχόμενο

Debtap Project (μετατροπή πακέτων .deb σε πακέτα για Arch Linux)


Oxygene

Προτεινόμενες αναρτήσεις

Με αφορμή το πρώτο update του debtap ανοίγω αυτό το νήμα για απορίες και σχόλια.

 

Τι είναι το debtap; Είναι ένα script που έγραψα στο ελεύθερο χρόνο μου για να βοηθήσω εκείνους που, για οποιοδήποτε λόγο, θέλουν να μετατρέψουν ένα πακέτο .deb σε πακέτο για Arch Linux. Δουλεύει με παρόμοιο τρόπο που δουλεύει το alien (το οποίο μετατρέπει πακέτα .deb σε πακέτα .rpm και αντίστροφα), αλλά, σε αντίθεση με το alien, επικεντρώνεται στην ακρίβεια της μετατροπής, προσπαθώντας να μεταφράσει ονόματα πακέτων για Debian/Ubuntu σε σωστά ονόματα πακέτων για Arch Linux και να τα αποθηκεύσει στα πεδία εξαρτήσεων του αρχείου metadata .PKGINFO του τελικού πακέτου. Με άλλα λόγια δεν θα φτιάξει απλά ένα πακέτο για Arch package με τα data του original πακέτου .deb, αλλά επιπλέον θα προσπαθήσει να δημιουργήσει ένα έγκυρο και όσο το δυνατόν πιο ακριβές αρχείο metadata στο μετατρεπόμενο πακέτο. Χρησιμοποιεί τα utilities pkgfile και package-query για να πετύχει αυτήν την ακρίβεια. Το τελικό πακέτο μπορεί να εγκατασταθεί όπως ένα οποιοδήποτε τοπικο πακέτο για Arch Linux. Το debtap είναι διαθέσιμο στο AUR!

 

FAQ (Ερωτήσεις-Απαντήσεις)

 

Ε: Δεν είναι καλύτερα να κατεβάσει κάποιος ένα επίσημο πακέτο ή να γράψει ένα PKGBUILD στην περίπτωση που χρειάζεται να κάνει compile ένα πακέτο ή να μετατρέψει ένα πακέτο .deb σε πακέτο για Arch Linux;

Α: Σίγουρα είναι, και σας ενθαρύνω να το κάνετε. Το debtap γράφτηκε για να δημιουργεί πακέτα τα οποία είτε δεν μπορούν να γίνουν compile (πακέτα κλειστού κώδικα) ή δεν μπορούν να χτιστούν από το AUR για διάφορους λόγους (μύνημα λάθους κατά το compile ή μη διαθέσιμα αρχεία), σαν μια γρήγορη και εύκολη λύση και μία επιπλέον επιλογή για τη δημιουργία πακέτων για Arch Linux για χρήστες του Arch Linux.

 

Ε: Άρα το debtap θα με βοηθήσει μονάχα στην περίπτωση που χρειάζεται να μετατρέψω συγκεκριμένα πακέτα .deb σε πακέτα για Arch Linux;

Α: Όχι. Σε περίπτωση που χρειαστεί να γράψετε ένα νέο PKGBUILD για ένα πακέτο που υπάρχει στις διανομές Debian/Ubuntu, μετατρέποντας το .deb πακέτο του σε πακέτο για Arch με το debtap, χάρη στην function με το όνομα packages names translator μέσα στο script, μπορεί να σας βοηθήσει να βρείτε ποιες εξαρτήσεις είναι αναγκαίες για το πακέτο για το οποίο γράφετε το PKGBUILD και να συμπληρώσετε τα αναγκαία πεδία.

 

Ε: Ποιες είναι οι ελάχιστες απαιτήσεις για να τρέξω το script;

Α: Πρέπει να έχετε εγκατεστημένες τις ακόλουθες εξαρτήσεις: bash, binutils (παρέχει το utility ar για την αποσυμπίεση του πακέτου .deb), pkgfile, package-query (από το AUR) και fakeroot. Χρειάζεστε επίσης μία ενεργή σύνδεση στο internet, καθότι το debtap κατεβάζει πληροφορίες από το internet για να μεταφράσει τα ονόματα των πακέτων, και επίσης χρειάζεται να τρέξετε τουλάχιστον μια φορά (κατά προτίμηση πρόσφατα) "pkgfile -u" για να δημιουργήσετε/ανανεώσετε την βάση δεδομένων του pkgfile (την τρέχετε με δικαιώματα root).

 

Ε: Το debtap χρειάζεται πολύ χρόνο για να μετατρέψει ένα πακέτο. Γιατί συμβαίνει αυτό;

Α: Όπως προανέφερα, το debtap επικεντρώνεται στην ακρίβεια. Δεν θα ξεπακετάρει ένα πακέτο .deb και μετά θα επαναπακετάρει τα data του σε ένα πακέτο για Arch Linux, αγνοώντας τα metadata. Ανάλογα με την ταχύτητα του επεξεργαστή σας και το ίδιο το πακέτο, η μετατροπή μπορεί να πάρει από μερικά δευτερόλεπτα μέχρι μερικά λεπτά.

 

Ε: Κατά την διάρκεια της μετατροπής βλέπω διάφορα προειδοποιητικά μυνήματα, γιατί;

Α: Το debtap δεν μπορεί να είναι 100% ακριβές για διάφορους λόγους, ο κύριος λόγος που συμβαίνει αυτό είναι η πολυπλοκότητα των ονομάτων των πακέτων. Εάν θέλετε να ελένξετε τα αρχεία metadata .PKGINFO και .INSTALL (αυτό είναι προαιρετικό) που μόλις δημιουργήθηκαν ή ακόμη και να φτιάξετε τα αμετάφραστα ονόματα πακέτων μέσα στο .PKGINFO, το debtap σας προσφέρει την επιλογή να επεξεργαστείτε αυτά τα αρχεία πριν συμπιεστεί το τελικό πακέτο.

 

Ε: Πώς χρησιμοποιώ το debtap;

Α: Η σύνταξη της εντολής είναι αρκετά απλή: debtap όνομα_αρχείου_πακέτου

Παράδειγμα: debtap world-of-goo-demo_1.0_i386.deb

 

Links:

 

https://github.com/helixarch/debtap

https://aur.archlinux.org/packages/debtap

 

Υπάρχει επίσης το debtap-p64, μια μικρή παραλλαγή του debtap που μετατρέπει 32-bitα πακέτα .deb σε ψεύδο-64-bitα πακέτα για Arch Linux (παράδειγμα ψεύδο-64-bitου πακέτου: το skype στο multilib) που γράφτηκε για την μετατροπή 32-bitων πακέτων .deb τα οποία δεν έχουν 64-bitη έκδοση (κυρίως κλειστού κώδικα πακέτα) με παρόμοια σύνταξη εντολής:

 

debtap-p64 όνομα_αρχείου_πακέτου

 

Links:

 

https://github.com/helixarch/debtap-p64

https://aur.archlinux.org/packages/debtap-p64

 

Προτάσεις και απορίες σχετικά με τα debtap και debtap-p64 είναι ευπρόσδεκτες!

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Nice job.

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Είναι όντως πακέτα, αλλά η συγκεκριμένη λίστα πακέτων δεν περιέχει οποιαδήποτε πακέτα. Είναι λίστα με virtual packages και για τη δημιουργία της χρησιμοποίησα ένα άλλο script που έχω γράψει, δεν υπήρχε αυτή η λίστα στο internet. Το script που κάνει generate τη λίστα εικονικών πακέτων δεν έγινε κομμάτι του κώδικα των debtap/debtap-p64 για δύο λόγους: 1. χρειάζεται αρκετά λεπτά για να κάνει generate τη λίστα και 2. δεν είναι μία λίστα η οποία μεταβάλλεται συχνά, δηλαδή ακόμη και μετά από ένα εξάμηνο θα έχει αλλάξει ελάχιστα (αν έχει αλλάξει). Παρ' όλ' αυτά, αν μου ζητηθεί, μπορώ να δημοσιεύσω το συγκεκριμένο script.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Νέο update 1.2 για τα δύο scripts, διορθώθηκε ένα μικρό bug. Επιπλέον, τώρα διαθέτει δικό του FAQ στην σελίδα του και το debtap-p64.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

αυτο το εχεις δει;;

https://wiki.archlinux.org/index.php/Arch_Compared_to_Other_Distributions#Debian_GNU.2FLinux

 

μπορει να ειναι καλη δουλεια ... αλλα μερικες φορες καλυτερα να βλεπουμε τις διαφορες μεταξυ των  δυο διανομων ;) ( και οι δυο ειναι γιγαντες δεν αντιλεγω)

 

μερικες φορες χρησιμοποιω διαφορα απο το aur και προσπαθω να τα βαλω στο συστημα μου manually

αμα μου λειπει κατι πχ https://aur.archlinux.org/packages/imgur

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@jemadux

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 4 εβδομάδες αργότερα...

Ανέβασα σήμερα update (έκδοση 1.2.2) με μικροαλλαγές (καθάρισμα κώδικα). Επίσης, ένα παλικάρι ανέβασε χτες στο YouTube ένα σχετικό βιντεάκι με το script εν δράσει:

 

www.youtube.com/watch?v=3ZvjXnI_eTU

 

Καλές Γιορτές σε όλους!

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...