تفاوت میان apt و apt-get در توزیع‌های مبتنی بر دبیان

تفاوت میان apt و apt-get در توزیع‌های مبتنی بر دبیان

در این مقاله قصد داریم به بررسی تفاوت‌های میان apt و apt-get در سیستم‌عامل‌ گنو/لینوکس و توزیع‌های مبتنی بر دبیان بپردازیم. همچنین با دستورات پراستفاده در ابزار مدیریت پکیج apt که جایگزین دستورهای قدیمی‌‌تر apt-get شده‌اند نیز آشنا خواهید شد.

یکی از ویژگی‌های قابل‌توجه اوبونتو 16.04، معرفی دستور apt بود اما در حقیقت اولین نسخه از apt در سال 2014 عرضه شد اما علاقمندان به لینوکس هنگام ارائه‌اش به‌ همراه اوبونتو 16.04 متوجهٔ آن شدند. رفته‌رفته استفاده از apt به‌ جای apt-get، که تا آن زمان مرسوم بود، برای نصب پکیج‌های مختلف در میان کاربران گنو/لینوکس به‌ خصوص توزیع اوبونتو رواج پیدا کرده است و در نهایت نیز بسیاری از دیگر توزیع‌ها با پیروی از سیستم‌عامل اوبونتو، به تشویق کاربرانشان برای استفاده از apt به‌ جای apt-get پرداخته‌اند.

حال ممکن است دربارهٔ تفاوت این دو ابزار مدیریت پکیج کنجکاو شده باشید یا اینکه ممکن است این سؤال پیش آمده باشد که اگر این دو ابزار از سازوکار مشابهی بهره می‌برند، پس دلیل معرفی دستور جدیدتر چه بوده است و آیا واقعاً apt بهتر از apt-get عمل می‌کند و اساساً باید از این پس فقط از دستور جدیدتر استفاده کنیم یا apt-get هنوز هم به‌ خوبی جواب می‌دهد؟ این‌ها سؤالاتی است که در کنار برخی سؤالات دیگر قصد داریم پاسخ‌شان را جویا شویم.

درآمدی بر ابزارهای مدیریت پکیج در لینوکس
قبل از اینکه به سراغ تفاوت میان apt و apt-get برویم، قصد داریم ببینیم در پشت صحنهٔ این دو دستور، چه اتفاقاتی افتاده است. در پاسخ به این سؤال که اصلاً چرا apt معرفی شد، بایستی گفت که دبیان به‌ عنوان سرچشمه و مادر بسیاری از توزیع‌های گنو/لینوکسی مانند اوبونتو، لینوکس مینت، اِلمنتری او‌اس و غیره سیستم مدیریت پکیج پرقدرتی دارد بدین صورت که هر کامپوننت و اپلیکیشنی و به‌ طور کلی هر چیزی درون یک پکیج قرار می‌گیرد و این پکیج روی سیستم شما نصب می‌شود. دبیان از مجموعه ابزارهایی به‌ نام Advanced Packaging Tool یا به‌ اختصار APT بهره می‌برد که برای مدیریت پکیج کاربرد دارند (APT را با دستور apt اشتباه نگیرید زیرا این دو باهم تفاوت دارند.)

ابزارهای مختلفی وجود دارند که با APT در تعامل‌اند و برای‌تان امکان نصب، حذف و مدیریت پکیج‌های موجود در توزیع‌های مبتنی بر دبیان را فراهم می‌کنند که یکی از ابزارهای کامندلاینی معروف برای مدیریت این بسته‌ها apt-get است (از ابزار محبوب دیگر می‌توان Aptitude را نام برد که هم محیط گرافیکی و هم کامندلاینی ارائه می‌دهد.) اگر پیش از این با apt-get آشنا بوده‌اید، احتمالاً با دستورهای مشابهی مانند apt-cache نیز روبه‌رو شده‌اید. واقعیت امر آن است که مشکل از اینجا ناشی می‌گردد که این‌ها دستورات سطح پایینی هستند و قابلیت‌های زیادی را شامل می‌شوند که برخی از آن‌ها احتمالاً هیچ‌‌وقت توسط کاربران عادی لینوکس استفاده نخواهند شد! از طرف دیگر،‌ کاربردی‌ترین دستورات مدیریت پکیج‌ها apt-get و apt-cache است و در همین راستا دستور apt برای حل همین مشکل ارائه شد.

apt شامل پراستفاده‌ترین ویژگی‌های apt-get و apt-cache است که قسمت‌های نامفهوم و کم‌استفاده را در برنمی‌گیرد. این دستور همچنین می‌تواند فایل apt.conf را نیز مدیریت کند. در واقع، با استفاده از apt دیگر نیازی به استفاده از دستور apt-get و apt-cache نخواهد بود و این در حالی است که دستور apt ساختار بهتری دارد و ویژگی‌های مهم مدیریت پکیج را نیز فراهم می‌نماید. به طور خلاصه اینکه apt پراستفاده‌ترین ویژگی‌های apt-get و apt-cache را در قالب یک دستور در اختیار کاربران لینوکس قرار داده است.

در واقع، با استفاده از apt تمامی ابزارهای لازم برای مدیریت پکیج را در اختیار خواهید داشت و دیگر نیازی به استفاده از تعداد زیادی آپشن در کنار دستورات مد نظرتان نیست و هدف اصلی apt فراهم کردن راه مؤثری برای مدیریت پکیج‌ها به‌ صورتی است که برای کاربران نیز راحت باشد (مهم‌تر از همه اینکه تعدادی آپشن را به‌ طور پیش‌فرض در برمی‌گیرد که برای کاربران بسیار مفید هستند.)

به‌ عنوان مثال،‌ هنگام نصب یا حذف یک اپلیکیشن با استفاده از apt، نواری نشان داده می‌شود که پیشرفت و درصد انجام کار را نشان می‌دهد. همچنین وقتی دیتابیس ریپازیتوری را آپدیت کنید، apt تعداد پکیج‌هایی را که قابلیت به‌روزرسانی و نصب برایشان فراهم است را نیز نمایش می‌دهد (البته با استفاده از apt-get و آپشن‌های اضافی آن نیز می‌توانید همین نتیجه را دریافت کنید ولی خوبی apt این است که دردسر این کار را به‌ طور پیش‌فرض از میان برداشته است.)

مقایسهٔ دستورات apt و apt-get
دستور apt آپشن‌هایی مشابه apt-get را در اختیار دارد ولی از قابلیت Backward-Compatibility با apt-get برخوردار نیست. به‌ عبارت دیگر، جایگزینی apt-get با apt همیشه جوابگو نخواهد بود! حال قصد داریم ببینیم کدام دستور apt جایگزین آپشن‌های دستوری apt-get و apt-cache می‌شود:

دستور apt دستور معادل apt-get کاربرد
apt install apt-get install نصب یک پکیج
apt remove apt-get remove حذف یک پکیج
apt purge apt-get purge حذف پیکج‌هایی حاوی کانفیگ
apt update apt-get update آپدیت ایندکس ریپازیتوری
apt upgrade apt-get upgrade آپگیرد تمامی پیکج‌های قابل‌ارتقاء
apt autoremove apt-get autoremove حذف پکیج‌های غیرقابل‌استفاده
apt full-upgrade apt-get dist-upgrade آپگرید پکیج‌ها با در نظر گرفتن وابستگی‌هایشان
apt search apt-cache search جستجوی یک اپلیکیشن
apt show apt-cache show نمایش جزئیات یک پکیج

همچنین apt از تعدادی دستور مخصوص به‌ خود برخوردار است که عبارتند از:

دستورات apt جدید کاربرد
apt list نمایش لیستی از پکیج‌ها
apt edit-resource ویرایش لیست ریسورس‌ها

یک نکته قابل‌تأمل اینکه توسعهٔ apt همچنان ادامه دارد، بنابراین ممکن است آپشن‌های جدیدتری نیز در نسخه‌های بعدی آن مشاهده نمایید.

آیا apt-get منسوخ شده است؟
تا به‌ حال هیچ مدرکی مبنی‌ بر اینکه قرار است استفاده از apt-get متوقف شود وجود نداشته و در‌ واقع قرار هم نیست چنین اتفاقی بیافتد چرا که هنوز هم کارایی‌ بیشتری را از apt-get در مقایسه با apt شاهد هستیم و خیلی از کاربران کماکان به استفاده از apt-get سنتی عادت دارند (به‌ عنوان مثال، در عملیات سطح پایین در اسکریپت‌نویسی، apt-get کاربردی‌تر است.)

در پاسخ به این سؤال که از کدام‌یک استفاده کنیم، پاسخ apt می‌باشد چنانچه به‌ عنوان کاربر معمولی این سؤال را مطرح کنید زیرا apt دستوری است که توسط توزیع‌های گنو/لینوکسی توصیه می‌شود و این دستور آپشن‌های لازم برای مدیریت پکیج‌ها را در برمی‌گیرد و مهم‌تر از همه اینکه استفاده از apt به دلیل آپشن‌های کمتر و راحت‌تری که برای به‌ خاطر سپردن دارد، آسان‌تر است.

خلاصهٔ تمام موارد فوق بدین صورت است که apt چکیده‌ای از apt-get و apt-cache است که مهم‌ترین دستورات برای مدیریت پکیج‌ها را شامل می‌گردد و اساساً قرار نیست apt-get از کار بیافتد، ولی اگر کاربر عادی گنو/لینوکس هستید، استفاده از apt برای‌تان راحت‌تر خواهد بود. نکتهٔ دیگر اینکه اگر با ابزار کامندلاینی و ترمینال رابطه خوبی ندارید، می‌توانید روی Synaptic که همین وظایف را با محیط گرافیکی انجام می‌دهد نیز حساب باز کنید.

منبع