پالت فرمان

دنبال فرمانی برای اجرا بگردید…

ZarynZaryn
بسته‌ها·۳ دقیقه مطالعه

بسته‌ها به زبان ساده

بسته چیست، رجیستری چه می‌کند، و زرین چطور بسته‌های Rust، Zig، جاوااسکریپت، پایتون و کانتینرها را میزبانی می‌کند؛ به زبان ساده. اگر تا حالا بسته‌ای منتشر نکرده‌اید از اینجا شروع کنید.

**بسته** (package) تکه‌کدی است که بسته‌بندی شده تا دیگران (یا پروژه‌های دیگر خودتان) با یک دستور از آن استفاده کنند. به جای کپی کردن فایل‌ها، بسته را یک بار *منتشر* می‌کنید و هر کسی می‌تواند با نامش *نصبش* کند. **مدیر بسته** ابزاری است که نصب را انجام می‌دهد: `cargo` برای Rust، `zig` برای Zig، `npm` برای جاوااسکریپت، `pip` برای پایتون، `docker` برای ایمیج‌های کانتینر. **رجیستری** جایی است که مدیر بسته از آن دانلود می‌کند. زرین برای همهٔ این‌ها رجیستری است؛ پس همان ابزاری را که می‌شناسید به کار می‌برید و فقط به آن می‌گویید زرین کجاست. ## کدام راهنما به کارم می‌آید؟ | می‌نویسید… | با… | راهنما | |---|---|---| | Rust | `cargo` | [بسته‌های Rust (crate)](/docs/fa/packages-rust) | | Zig | `zig fetch`، `zig build` | [بسته‌های Zig](/docs/fa/packages-zig) | | جاوااسکریپت یا تایپ‌اسکریپت | `npm`، `pnpm`، `yarn` | [بسته‌های npm](/docs/fa/packages-npm) | | پایتون | `pip`، `twine`، `uv` | [بسته‌های پایتون](/docs/fa/packages-pypi) | | برنامه در کانتینر | `docker`، `podman`، `helm` | [ایمیج‌های کانتینر](/docs/fa/packages-containers) | | هر چیز دیگر (یک برنامه، یک دیتاست) | `curl` | [هر فایلی](/docs/fa/packages-files) | همهٔ راهنماها بخش‌های یکسانی دارند: یک بار راه‌اندازی، انتشار، نصب، و کار درست وقتی چیزی خراب می‌شود. در صفحهٔ [بسته‌ها](/packages)، پیوند کوچک **؟** کنار هر دستور راهنمای همان را باز می‌کند. ## نصب از pypi.org، npm، crates.io یا گیت‌هاب کند است **آینه‌های** زرین برای همین‌اند: pip، uv، npm، cargo، rustup و zig از راه زرین دانلود می‌کنند (`zev mirror on` همه را تنظیم می‌کند)، و هر فایل با چک‌سامی که ابزارهایتان از قبل می‌دانند سنجیده می‌شود؛ پس آینه نمی‌تواند چیزی را عوض کند. [آینه‌ها](/docs/fa/package-mirrors) را ببینید. ## واژه‌هایی که می‌بینید - **نسخه.** هر انتشار شمارهٔ نسخه‌ای مثل `1.4.2` دارد. نسخهٔ منتشرشده هرگز تغییر نمی‌کند: برای درست کردن چیزی `1.4.3` را منتشر کنید. همین است که همه مطمئن‌اند `1.4.2` امروز همان `1.4.2` سال بعد است. - **هش** (یا **چک‌سام**). کد بلندی که از بایت‌های دقیق یک فایل حساب می‌شود. یک بایت عوض شود، هش کاملاً عوض می‌شود. مدیرهای بسته هش‌ها را مقایسه می‌کنند تا مطمئن شوند کسی فایلی را جابه‌جا نکرده. زرین هر فایل را با هشش نگه می‌دارد. - **وابستگی.** بسته‌ای که پروژه‌تان از آن استفاده می‌کند. پروژه وابستگی‌هایش را فهرست می‌کند و مدیر بسته آن‌ها را می‌آورد. - **توکن.** رمز عبوری برای ابزارها، نه برای آدم‌ها. انتشار به توکنی با مجوز `package:write` نیاز دارد: در [بسته‌ها](/packages) دکمهٔ **ساخت توکن انتشار** را بزنید. مثل رمز عبور با آن رفتار کنید و اگر لو رفت، تازه‌اش را بسازید. - **کنار گذاشتن (yank).** پنهان کردن نسخهٔ خراب تا پروژه‌های تازه انتخابش نکنند. پروژه‌هایی که از قبل از آن استفاده می‌کنند کار می‌کنند. - **عمومی / خصوصی.** بستهٔ عمومی را هر کسی می‌تواند نصب کند. بستهٔ خصوصی را فقط شما (یا سازمانتان) می‌بینید؛ این امکان پریمیوم است. ## هزینه | | رایگان | پریمیوم | |---|---|---| | فضا برای همهٔ بسته‌ها و ایمیج‌ها | ۵۰۰ مگابایت | ۱۰۰ گیگابایت | | بزرگ‌ترین فایل | ۵۰ مگابایت | ۲۰۰ مگابایت | | بزرگ‌ترین لایهٔ ایمیج کانتینر | ۵۰۰ مگابایت | ۱۰ گیگابایت | | بستهٔ خصوصی | — | ✓ | | نصب از راه آینه‌ها | ✓ | ✓ | نصب بسته‌های عمومی دیگران و استفاده از آینه‌ها هیچ‌وقت از فضای شما کم نمی‌کند. ## نام‌ها نام‌ها برای هر نوع جداگانه، به ترتیب درخواست داده می‌شوند: crate راستی به نام `tool` و بستهٔ Zig به نام `tool` می‌توانند مال دو نفر مختلف باشند. وقتی نامی را منتشر کردید، فقط شما (یا سازمانی که برایش منتشر کرده‌اید) می‌توانید نسخه‌های تازه‌اش را منتشر کنید.