APT
ابزار بستهبندی پیشرفته(اپت) (به انگلیسی APT : Advanced Packaging Tool) یکی از برنامههای مدیریت بسته در توزیعهای مبتنی بر دبیان است.
محتویات
هدف
جستوجو، نصب و مدیریت آسان بستههای نرمافزاری است.
رابطها
APT دارای چند رابط خط فرمان است که مهمترین آنها apt-get و apt-cache بودند. پس از اوبونتو ۱۴.۰۴، پیشنهاد میشود که کاربران از خود
apt
در شبیهساز پایانه استفاده کنند.
اپت در سیستمعامل Open Solaris نیز استفاده میشود. در عین حال امکان وارد کردن آن به سیستمعامل مک هم با بستهٔ نرمافزاری فینک وجود دارد. با الهام از apt-get، نرمافزار win-get طرّاحی شده که شبیه به APT، ولی بر روی سیستمعامل ویندوز کار میکند. همچنین با استفاده از کارهٔ Termux، امکان استفاده از اپت روی اندروید نیز وجود دارد.
روش کار
فهرست مخازن در پروندهٔ
/etc/apt/sources.list
و پروندههای مجزّا در مسیر
/etc/apt/sources.list.d/
قرار گرفتهاند. این مخازن میتوانند دیسکهای نوری، پروندههای تحت شبکه و شاخههای ftp یا http باشند. اگر بستهای در شاخهها یا دیسک سخت موجود باشد، به صورت خودکار دریافت شده و نصب میگردد.
تمامی بستهها در قالب deb بوده و پیشنیازها نیز به صورت خودکار شناسایی و نصب میشوند، یعنی در هنگام نصب یک برنامه، کتابخانههای مورد نیاز برای اجرای آن برنامه نیز دریافت و نصب میشوند. نرمافزار اپت برمبنای dpkg کار میکند.
عملیات عمومی
- برای بهروز رسانی مخازن، از فرمان زیر استفاده میشود. این کار، فهرست بستههای موجود، توضیحات، نگارش و گزارش تغییرات آنها را از مخازن گرفته و در پایگاه دادهٔ سامانه ذخیره میکند.
$ sudo apt update
- برای نصب یک بسته، یا ارتقای آن از فرمان زیر استفاده میشود:
$ sudo apt install PACKAGE
- برای برداشتن یک بستهٔ نصبشده، از این فرمان استفاده میشود:
$ sudo apt remove PACKAGE
- برای برداشتن یک بسته به صورتی که پروندههای وابسته به آن نیز به طور کامل حذف شوند، از فرمان زیر استفاده میشود:
$ sudo apt remove --purge PACKAGE
- برای حذف کتابخانهها و بستههای پیشنیازی که دیگر به آنها نیازی نیست، از این فرمان استفاده میشود:
$ sudo apt autoremove
- میتوان عملیات بالا را به صورت همزمان انجام داد:
$ sudo apt remove --purge --autoremove PACKAGE
این کار به معنی حذف یک بسته و تمام پروندهها و پیشنیازهای وابسته به آن بسته است.
- برای دیدن بستههای نصب شده، از این فرمان استفاده میشود:
$ apt list --installed
- برای دیدن اطلاعات بیشتر در مورد بسته، شامل توضیحات، حجم، صفحهٔ خانگی و... از این فرمان استفاده میشود:
$ apt show PACKAGE
- برای دریافت پرونده deb:
$ sudo apt download PACKAGE
- برخی از ارتقاها برای رفع ناسازگاریها، نیاز به حذف بستههای دیگر دارند. برای انجام این دسته از ارتقاها از فرمان زیر استفاده میشود:
$ sudo apt full-uprgade
- برای نشان دادن نسخههای موجود از یک بسته و اولویت آنها
$ apt policy PACKAGE
- برای جستوجوی بستههای مربوط به یک عبارت، از این فرمان استفاده میشود:
$ apt search PATTERN
- برای بارگیری کد منبع نرمافزار:
$ apt source PACKAGE
- برای تمیز کردن کش apt
$ apt clean
- برای دیدن گاو!
$ apt moo
نصب نرمافزار از یک مخزن خاص
برای نصب نرمافزار از مخزنی خاص که پیشفرض نیست از انتحاب t- استفاده میشود: برای نمونه
نصب از مخزن sid
$ apt install vlc -t sid
دریافت کد منبع از مخزن sid
$ apt source vlc -t sid
دریافت پروندهٔ deb از مخزن sid
$ apt download vlc -t sid
بدیهی است که برای استفاده از این ویژگی باید فهرست مخازن sid در تنظیمات apt موجود باشد.
ارتقای بستههای نصب شده
نخست سیاههٔ مخازن را به روز میکنیم.
$ sudo apt update
- برای دیدن بستههای قابل ارتقا، از این فرمان استفاده میشود:
$ apt list --upgradable
- برای ارتقای بستههای عادی از این فرمان استفاده می شود:
$ sudo apt upgrade
بستههای مکمّل
apt-transport-https
این بسته، بستهٔ مکمّلی برای APT است که پشتیبانی از مخزنهای رمزشده با قرارداد https را به آن میافزاید.
منظور شاخههای https در داخل پروندهٔ
/etc/apt/sources.list
است.
برای نصب، از فرمان زیر استفاده کنید:
$ sudo apt install apt-transport-https
apt-transport-tor
این بسته، بستهٔ مکمّلی برای APT است که پشتیبانی از مخزنها را از پشت شبکهٔ تور به آن میافزاید.
برای نصب، از فرمان زیر استفاده کنید:
$ sudo apt install apt-transport-tor
مشکلات مرسوم
خراب شدن فهرستها
در هنگام بروز این مشکل که معمولاً به خاطر خراب شدن پروندههای فهرست روی دیسک رخ میدهد، اجرای تقریباً هر دستور مرتبط با apt با مشکلاتی مانند خط زیر مواجه میشود:
E: The package lists or status file could not be parsed or opened
در این مورد سادهترین کار، حذف این پروندهها و سپس ایجاد دوبارهٔ آنها بهوسیلهٔ عمل بهروز رسانی فهرستهاست:
$ sudo rm -rf /var/lib/apt/lists/* $ sudo apt update
فعال نبودن قابلیت بارگیری کد منبع به صورت پیشگزیده
در صورت فعال نبودن این قابلیت به صورت پیشگزیده، میبایستی ابتدا خطهایی که با deb-src شروع میشوند را به سیاههٔ مخازن افزود:
$ sudo apt edit-sources
در غیر این صورت با این پیغام خطا مواجه خواهید شد:
Reading package lists... Done E: You must put some 'source' URIs in your sources.list
و سپس همچنین مطمئن شد که بسته dpkg-dev نصب است.
$ sudo apt install dpkg-dev
در غیر این صورت با پیغامی مشابه زیر مواجه خواهید شد (gnome-terminal نام بستهٔ مورد نظر است):
sh: 1: dpkg-source: not found Unpack command 'dpkg-source -x gnome-terminal_3.18.3-1ubuntu1.dsc' failed. Check if the 'dpkg-dev' package is installed. E: Sub-process dpkg-source returned an error code (1)
و همچنین مطمئن شوید که بسته debian-keyring برای چک کردن امضای بسته بارگیری و نصب شده باشد.
$ sudo apt install debian-keyring
در غیر این صورت با پیغامی مشابه زیر مواجه خواهید شد (gnome-terminal نام بستهٔ مورد نظر است):
gpgv: Signature made Tue 15 Mar 2016 07:00:36 PM CET using RSA key ID 1C5041D4 gpgv: Can't check signature: public key not found dpkg-source: warning: failed to verify signature on ./gnome-terminal_3.18.3-1ubuntu1.dsc
سایر ویژگیها
- جستجوی بستهای که حاوی برنامهٔ مورد نظر است.
برای نمونه فرض کنید میخواهید برنامهٔ ls را نصب کنید. بستهای با نام ls در مخازن نداریم و دستور زیر خطا دارد.
$ sudo apt install ls
با نصب برنامهٔ apt-file جستجو را انجام میدهیم.
$ apt-file search --regexp '/ls$'
ابزارهای مشابه
راهنما
برای مطالعهٔ جزئیات بیشتر و راهنمای برنامه، میتوان صفحهٔ راهنمای برنامه را مشاهده کرده و یا از انتخاب
help
در خط فرمان استفاده کنید:
$ man apt $ apt --help