تفاوت میان 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 بهتر از apt-get عمل می‌کند؟ آیا باید از این پس، فقط از دستور جدیدتر استفاده کنیم یا apt-get هنوز هم به‌خوبی جواب می‌دهد؟ این‌ها سؤالاتی است که در کنار برخی سؤالات دیگر در ادامه قصد داریم پاسخ دهیم.

apt یا 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-get
بااستفاده از 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-get وجود ندارد، مگر این‌که مجبور به انجام عملیات خاصی هستید که به ویژگی‌های apt-get نیاز دارند.

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

منبع


مرتضی صمدی