Διαχειριστής πακέτων Tea the new brew creator

Τσάι

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

Ο Max Howell, συγγραφέας του δημοφιλούς συστήματος διαχείρισης πακέτων macOS homebrew brew , ανακοίνωσε ότι εργάζεται πάνω στην ανάπτυξη ενός νέου διαχειριστή πακέτων που ονομάζεται Tea, ο οποίος τοποθετείται ως συνέχεια της ανάπτυξης του brew, ξεπερνώντας τον απλό διαχειριστή πακέτων και προσφέροντας μια ενοποιημένη υποδομή διαχείρισης πακέτων που λειτουργεί με αποκεντρωμένα αποθετήρια.

Το Tea δεν μοιάζει εννοιολογικά με τους παραδοσιακούς διαχειριστές πακέτων και αντί για το παράδειγμα "θέλω να εγκαταστήσω ένα πακέτο", χρησιμοποιεί την προσέγγιση "θέλω να χρησιμοποιήσω ένα πακέτο".

Συγκεκριμένα, το Tea δεν διαθέτει εντολή εγκατάστασης πακέτου ως τέτοια. Αντίθετα, χρησιμοποιεί τη δημιουργία περιβάλλοντος για να εκτελέσει περιεχόμενα πακέτου που δεν επικαλύπτονται με το τρέχον σύστημα. Τα πακέτα τοποθετούνται σε ξεχωριστό κατάλογο ~/.tea και δεν έχουν αντιστοιχιστεί σε απόλυτες διαδρομές (μπορούν να μετακινηθούν).

Το Tea παρέχει δύο βασικούς τρόπους λειτουργίας: μετάβαση σε ένα κέλυφος εντολών με πρόσβαση σε ένα περιβάλλον με εγκατεστημένα πακέτα και άμεση κλήση εντολών που σχετίζονται με τα πακέτα. Για παράδειγμα, η εκτέλεση της εντολής "tea +gnu.org/wget" θα προκαλέσει τη λήψη του βοηθητικού προγράμματος wget και όλων των απαραίτητων εξαρτήσεων από τον διαχειριστή πακέτων και, στη συνέχεια, θα παρέχει πρόσβαση στο κέλυφος σε ένα περιβάλλον όπου είναι διαθέσιμο το εγκατεστημένο βοηθητικό πρόγραμμα wget.

Η δεύτερη επιλογή περιλαμβάνει άμεση εκκίνηση: ` tea +gnu.org/wget -qO- tea.xyz/white-paper | tea +charm.sh/glow glow -` , η οποία θα εγκαταστήσει το βοηθητικό πρόγραμμα wget και θα το εκτελέσει αμέσως σε ξεχωριστό περιβάλλον, κατεβάζοντας ένα αρχείο που στη συνέχεια θα αποδοθεί με glow. Είναι δυνατή μια πιο σύνθετη αλυσίδα. Για παράδειγμα, για να κατεβάσετε το αρχείο `white-paper.pdf` και να το επεξεργαστείτε με το βοηθητικό πρόγραμμα glow, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή (αν τα wget και glow δεν υπάρχουν ήδη, θα εγκατασταθούν).

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

Για κανένα παράδειγμα, εκτελέστε:

tea https://gist.githubusercontent.com/i0bj/2b3afbe07a44179250474b5f36e7bd9b/raw/colors.go --yellow
tea: installing go 1.18.3
go: installing deps
go: running colors.go

Θα εγκαταστήσει την εργαλειοθήκη γλώσσας Go και θα εκτελέσει το σενάριο Colors.go με το "–κίτρινο" ως όρισμα.

Για να αποφύγετε την κλήση της εντολής tea κάθε φορά, μπορείτε να τη συνδέσετε ως διαχειριστή εικονικού περιβάλλοντος γενικής χρήσης και ως χειριστή προγράμματος που λείπει. Σε αυτήν την περίπτωση, εάν το πρόγραμμα που εκτελείται δεν είναι διαθέσιμο, θα εγκατασταθεί και, εάν είχε εγκατασταθεί προηγουμένως, θα εκκινηθεί στο περιβάλλον σας.

Στην τρέχουσα μορφή τους, τα πακέτα που είναι διαθέσιμα για το Tea συγκεντρώνονται σε δύο συλλογές , την pantry.core και την pantry.extra , οι οποίες περιλαμβάνουν μεταδεδομένα που περιγράφουν τις πηγές λήψης πακέτων, τα σενάρια δημιουργίας και τις εξαρτήσεις.

Η συλλογή pantry.core περιλαμβάνει βασικές βιβλιοθήκες και βοηθητικά προγράμματα που οι προγραμματιστές του Tea διατηρούν ενημερωμένα και δοκιμασμένα. Το pantry.extra περιέχει πακέτα που δεν είναι ακόμη καλά σταθεροποιημένα ή που προτείνονται από την κοινότητα. Παρέχεται μια διεπαφή ιστού για την περιήγηση στα πακέτα.

Η διαδικασία δημιουργίας πακέτων για το τσάι είναι πολύ απλοποιημένη και περιορίζεται στη δημιουργία ενός καθολικού αρχείου package.yml (παράδειγμα), το οποίο δεν απαιτεί την προσαρμογή του πακέτου για κάθε νέα έκδοση. Για να ανακαλύψετε νέες εκδόσεις και να κατεβάσετε τον κώδικα του, το πακέτο μπορεί να συνδεθεί στο GitHub.

Το αρχείο περιγράφει επίσης εξαρτήσεις και παρέχει σενάρια έκδοσης για υποστηριζόμενες πλατφόρμες. Οι εγκατεστημένες εξαρτήσεις είναι αμετάβλητες (η έκδοση είναι σταθερή), γεγονός που εξαλείφει τις επαναλαμβανόμενες καταστάσεις παρόμοιες με το περιστατικό του αριστερού μαξιλαριού.

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

Τέλος, αξίζει να αναφερθεί ότι το έργο αναπτύσσεται αυτήν τη στιγμή ως εφαρμογή πολλαπλών πλατφορμών (υποστηρίζονται προς το παρόν macOS και Linux, ενώ η υποστήριξη για Windows βρίσκεται υπό ανάπτυξη). Ο κώδικας του έργου είναι γραμμένος σε TypeScript και διανέμεται με την άδεια Apache 2.0 (το brew γράφτηκε σε Ruby και κυκλοφόρησε με άδεια BSD).

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


Προσθήκη ως προτιμώμενης πηγής στην Google