Brew yaratuvchisi yangi choy paketi menejerini ishlab chiqadi

Maks Xauell, mashhur macOS paketlarni boshqarish tizimi brew (Homebrew) muallifi, choy deb nomlangan yangi paket menejerini ishlab chiqmoqda, u pivo ishlab chiqarishning davomi sifatida joylashtirilgan, paketlar menejeridan tashqariga chiqadi va ishlaydigan paketlarni boshqarishning yagona infratuzilmasini taklif qiladi. markazlashmagan omborlar bilan. Loyiha dastlab koʻp platformali loyiha sifatida ishlab chiqilmoqda (hozirda macOS va Linux qoʻllab-quvvatlanadi, Windows qoʻllab-quvvatlashi ishlab chiqilmoqda). Loyiha kodi TypeScript-da yozilgan va Apache 2.0 litsenziyasi ostida tarqatilgan (brew Ruby-da yozilgan va BSD litsenziyasi ostida tarqatilgan).

Choy kontseptual jihatdan an'anaviy paket menejerlariga o'xshamaydi va "Men paketni o'rnatmoqchiman" paradigmasi o'rniga "Men paketdan foydalanmoqchiman" paradigmasidan foydalanadi. Xususan, Choy paketni o'rnatish buyrug'iga ega emas, balki uning o'rniga joriy tizim bilan mos kelmaydigan paket tarkibini bajarish uchun muhit yaratishdan foydalanadi. Paketlar alohida ~/.tea katalogiga joylashtirilgan va mutlaq yo'llarga bog'lanmagan (ularni ko'chirish mumkin).

Ikkita asosiy ish rejimi taqdim etiladi: o'rnatilgan paketlar bilan muhitga kirish imkoniyati bilan buyruq qobig'iga o'tish va to'g'ridan-to'g'ri paket bilan bog'liq buyruqlarni chaqirish. Misol uchun, "tea +gnu.org/wget" ni bajarayotganda paket menejeri wget yordam dasturini va barcha kerakli bog'liqliklarni yuklab oladi va keyin o'rnatilgan wget yordam dasturi mavjud bo'lgan muhitda qobiqga kirishni ta'minlaydi. Ikkinchi variant to'g'ridan-to'g'ri ishga tushirishni o'z ichiga oladi - "tea +gnu.org/wget wget https://some_webpage", unda wget yordam dasturi o'rnatiladi va darhol alohida muhitda ishga tushiriladi. Murakkab zanjirlarni yaratish mumkin, masalan, white-paper.pdf faylini yuklab olish va uni glow yordam dasturi bilan qayta ishlash uchun siz quyidagi konstruktsiyadan foydalanishingiz mumkin (agar wget va glow bo'lmasa, ular o'rnatiladi): choy + gnu.org/wget wget -qO- https:/ /tea.xyz/white-paper.pdf | tea +charm.sh/glow glow - yoki oddiyroq sintaksisdan foydalanishingiz mumkin: tea -X wget -qO- tea.xyz/white-paper | choy - X porlashi -

Xuddi shunday, siz to'g'ridan-to'g'ri skriptlarni, kod misollarini va bitta laynerlarni ishga tushirishingiz mumkin, ularning ishlashi uchun zarur bo'lgan vositalarni avtomatik ravishda yuklashingiz mumkin. Masalan, "choy https://gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow" ishga tushirilishi Go asboblar to'plamini o'rnatadi va "-yellow" argumenti bilan colors.go skriptini bajaradi.

Choy buyrug'ini har safar chaqirmaslik uchun uni virtual muhitlarning universal menejeri va etishmayotgan dasturlar uchun ishlov beruvchi sifatida ulash mumkin. Bunday holda, agar ishlaydigan dastur mavjud bo'lmasa, u o'rnatiladi va agar u ilgari o'rnatilgan bo'lsa, u o'z muhitida ishga tushiriladi. $ deno zsh: buyruq topilmadi: deno $ cd mening loyiham $ deno choyi: deno.land^1.22 deno 1.27.0 > ^D o'rnatilmoqda

Hozirgi ko'rinishida choy uchun mavjud bo'lgan paketlar ikkita to'plamda to'plangan - pantry.core va pantry.extra, ular paketlarni yuklab olish manbalarini tavsiflovchi metadata, skriptlarni yaratish va bog'liqliklarni o'z ichiga oladi. Pantry.core to'plami yangilangan va choy ishlab chiqaruvchilari tomonidan sinovdan o'tgan asosiy kutubxonalar va yordamchi dasturlarni o'z ichiga oladi. Pantry.extra yetarli darajada barqarorlashtirilmagan yoki hamjamiyat a'zolari tomonidan taklif qilingan paketlarni o'z ichiga oladi. Paketlar bo'ylab harakatlanish uchun veb-interfeys taqdim etiladi.

Choy uchun paketlarni yaratish jarayoni ancha soddalashtirilgan va bitta universal package.yml faylini (misol) yaratishga to'g'ri keladi, bu har bir yangi versiya uchun paketni moslashtirishni talab qilmaydi. Paket yangi versiyalarni kashf qilish va ularning kodini yuklab olish uchun GitHub-ga ulanishi mumkin. Fayl shuningdek, bog'liqliklarni tavsiflaydi va qo'llab-quvvatlanadigan platformalar uchun skriptlarni yaratadi. O'rnatilgan bog'liqliklar o'zgarmasdir (versiya o'rnatilgan), bu chap paneldagi hodisaga o'xshash vaziyatlarning takrorlanishini yo'q qiladi.

Kelajakda hech qanday alohida saqlashga bog'lanmagan va metama'lumotlar uchun taqsimlangan blokcheyn va paketlarni saqlash uchun markazlashmagan infratuzilmadan foydalanadigan markazlashmagan omborlarni yaratish rejalashtirilgan. Relizlar to'g'ridan-to'g'ri ta'minotchilar tomonidan sertifikatlanadi va manfaatdor tomonlar tomonidan ko'rib chiqiladi. Paketlarni saqlash, qo'llab-quvvatlash, tarqatish va tekshirishga qo'shgan hissasi uchun kriptovalyuta tokenlarini tarqatish mumkin.

Brew yaratuvchisi yangi choy paketi menejerini ishlab chiqadi


Manba: opennet.ru

a Izoh qo'shish