Ο δημιουργός του brew αναπτύσσει ένα νέο τσάι διαχείρισης συσκευασιών

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

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

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

Με παρόμοιο τρόπο, μπορείτε να εκτελέσετε απευθείας σενάρια, παραδείγματα κώδικα και one-liners, φορτώνοντας αυτόματα τα απαραίτητα εργαλεία για τη λειτουργία τους. Για παράδειγμα, η εκτέλεση του "tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow" θα εγκαταστήσει το κιτ εργαλείων Go και θα εκτελέσει το σενάριο Colors.go με το όρισμα "-κίτρινο".

Για να μην καλείτε την εντολή tea κάθε φορά, μπορείτε να τη συνδέσετε ως καθολικός διαχειριστής εικονικών περιβαλλόντων και χειριστής για προγράμματα που λείπουν. Σε αυτήν την περίπτωση, εάν το τρέχον πρόγραμμα δεν είναι διαθέσιμο, θα εγκατασταθεί και εάν είχε εγκατασταθεί προηγουμένως, θα εκκινηθεί στο περιβάλλον του. $ deno zsh: η εντολή δεν βρέθηκε: deno $ cd my-project $ deno tea: εγκατάσταση deno.land^1.22 deno 1.27.0 > ^D

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

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

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

Ο δημιουργός του brew αναπτύσσει ένα νέο τσάι διαχείρισης συσκευασιών


Πηγή: opennet.ru

Προσθέστε ένα σχόλιο