سازنده دم، مدیر بسته بندی چای جدید را توسعه می دهد

مکس هاول، نویسنده سیستم مدیریت بسته محبوب macOS (Homebrew)، در حال توسعه یک مدیر بسته جدید به نام Tea است که به عنوان ادامه توسعه دم، فراتر از مدیر بسته و ارائه یک زیرساخت مدیریت بسته یکپارچه است که کار می کند. با مخازن غیر متمرکز این پروژه در ابتدا به عنوان یک پروژه چند پلتفرمی در حال توسعه است (macOS و Linux در حال حاضر پشتیبانی می شوند، پشتیبانی از ویندوز در حال توسعه است). کد پروژه در TypeScript نوشته شده است و تحت مجوز Apache 2.0 توزیع شده است (دمنوش به زبان 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 | درخشش چای -X

به روشی مشابه، می‌توانید مستقیماً اسکریپت‌ها، نمونه‌های کد و یک خط‌ها را اجرا کنید و ابزارهای لازم برای عملکرد آنها را به‌طور خودکار بارگیری کنید. به عنوان مثال، اجرای "tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow" جعبه ابزار Go را نصب می کند و اسکریپت Colors.go را با آرگومان "-yellow" اجرا می کند.

برای اینکه هر بار فرمان چای را فراخوانی نکنیم، می توان آن را به عنوان مدیر جهانی محیط های مجازی و کنترل کننده برنامه های از دست رفته متصل کرد. در این صورت اگر برنامه در حال اجرا در دسترس نباشد، نصب می شود و اگر قبلا نصب شده بود، در محیط خود راه اندازی می شود. $ 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 حاوی بسته هایی است که به اندازه کافی تثبیت نشده اند یا توسط اعضای جامعه پیشنهاد شده اند. یک رابط وب برای حرکت در بسته ها ارائه شده است.

فرآیند ایجاد بسته‌ها برای Tea بسیار ساده شده است و به ایجاد یک فایل universal package.yml (مثال) ختم می‌شود که نیازی به تطبیق بسته برای هر نسخه جدید ندارد. یک بسته می‌تواند برای کشف نسخه‌های جدید و دانلود کد آنها به GitHub پیوند بزند. این فایل همچنین وابستگی ها را توصیف می کند و اسکریپت های ساخت را برای پلتفرم های پشتیبانی شده ارائه می دهد. وابستگی های نصب شده تغییر ناپذیر هستند (نسخه ثابت است) که تکرار موقعیت های مشابه با رخداد سمت چپ را حذف می کند.

در آینده، برنامه‌ریزی شده است تا مخازن غیرمتمرکز ایجاد شود که به هیچ ذخیره‌سازی مجزایی متصل نباشند و از یک بلاک چین توزیع‌شده برای ابرداده و یک زیرساخت غیرمتمرکز برای ذخیره‌سازی بسته‌ها استفاده کنند. انتشار مستقیماً توسط نگهبانان تأیید شده و توسط ذینفعان بررسی می شود. توزیع توکن‌های ارز دیجیتال برای مشارکت در نگهداری، پشتیبانی، توزیع و تأیید بسته‌ها امکان‌پذیر است.

سازنده دم، مدیر بسته بندی چای جدید را توسعه می دهد


منبع: opennet.ru

اضافه کردن نظر