APT: تفاوت بین نسخهها
(ویرایش صفحهٔ Apt) |
|||
(۴۷ نسخهٔ میانی ویرایش شده توسط ۴ کاربر نشان داده نشده) | |||
سطر ۱: | سطر ۱: | ||
− | '''ابزار بستهبندی پیشرفته | + | '''ابزار بستهبندی پیشرفته(اپت)''' (به انگلیسی APT : Advanced Packaging Tool) یکی از برنامههای [[Package Manager|مدیریت بسته]] در [[Distro|توزیع]]های مبتنی بر [[دبیان]] است. |
− | |||
− | |||
− | + | == هدف == | |
+ | جستوجو، نصب و مدیریت آسان بستههای نرمافزاری است. | ||
− | = | + | == رابطها == |
− | + | APT دارای چند رابط [[CLI|خط فرمان]] است که مهمترین آنها [[apt-get]] و [[apt-cache]] بودند. پس از اوبونتو ۱۴.۰۴، پیشنهاد میشود که کاربران از خود {{ic|apt}} در [[شبیهساز پایانه]] استفاده کنند. | |
− | + | اپت در سیستمعامل [[Open Solaris]] نیز استفاده میشود. در عین حال امکان وارد کردن آن به سیستمعامل [[Mac OS|مک]] هم با بستهٔ نرمافزاری فینک وجود دارد. با الهام از apt-get، نرمافزار win-get طرّاحی شده که شبیه به APT، ولی بر روی سیستمعامل [[Windows|ویندوز]] کار میکند. همچنین با استفاده از کارهٔ Termux، امکان استفاده از اپت روی [[Android|اندروید]] نیز وجود دارد. | |
− | + | == روش کار == | |
+ | فهرست [[Repo|مخازن]] در پروندهٔ {{ic|/etc/apt/sources.list}} و پروندههای مجزّا در مسیر {{ic|/etc/apt/sources.list.d/}} قرار گرفتهاند. این مخازن میتوانند دیسکهای نوری، پروندههای تحت شبکه و شاخههای [[ftp]] یا [[http]] باشند. اگر بستهای در شاخهها یا دیسک سخت موجود باشد، به صورت خودکار دریافت شده و نصب میگردد. | ||
− | + | تمامی بستهها در قالب [[deb]] بوده و پیشنیازها نیز به صورت خودکار شناسایی و نصب میشوند، یعنی در هنگام نصب یک برنامه، کتابخانههای مورد نیاز برای اجرای آن برنامه نیز دریافت و نصب میشوند. نرمافزار اپت برمبنای [[dpkg]] کار میکند. | |
− | |||
− | |||
− | |||
− | + | ===نصب و حذف بستهها=== | |
− | |||
− | |||
− | * برای | + | * برای [[Update|بهروز رسانی]] مخازن، از فرمان زیر استفاده میشود. این کار، فهرست بستههای موجود، توضیحات، نگارش و گزارش تغییرات آنها را از مخازن گرفته و در [[Database|پایگاه دادهٔ]] سامانه ذخیره میکند. |
+ | {{bc|$ sudo apt update}} | ||
− | + | * برای نصب یک بسته، یا ارتقای آن از فرمان زیر استفاده میشود: | |
− | $ apt | + | {{bc|$ sudo apt install PACKAGE}} |
− | |||
− | * برای | + | * برای برداشتن یک بستهٔ نصبشده، از این فرمان استفاده میشود: |
+ | {{bc|$ sudo apt remove PACKAGE}} | ||
− | + | * برای برداشتن یک بسته به صورتی که پروندههای وابسته به آن نیز به طور کامل حذف شوند، از فرمان زیر استفاده میشود: | |
− | $ apt | + | {{bc|$ sudo apt remove --purge PACKAGE}} |
− | |||
− | * برای | + | * برای حذف کتابخانهها و بستههای پیشنیازی که دیگر به آنها نیازی نیست، از این فرمان استفاده میشود: |
+ | {{bc|$ sudo apt autoremove}} | ||
− | + | * میتوان عملیات بالا را به صورت همزمان انجام داد: | |
− | $ sudo apt | + | {{bc|$ sudo apt remove --purge --autoremove PACKAGE}} |
− | + | این کار به معنی حذف یک بسته و تمام پروندهها و پیشنیازهای وابسته به آن بسته است. | |
− | |||
− | + | ====نصب نرمافزار از یک مخزن خاص ==== | |
− | + | برای نصب نرمافزار از مخزنی خاص که پیشفرض نیست از انتحاب t- استفاده میشود: | |
− | + | برای نمونه | |
− | + | نصب از مخزن sid | |
+ | {{bc|$ apt install vlc -t sid}} | ||
− | + | دریافت کد منبع از مخزن sid | |
− | $ | + | {{bc|$ apt source vlc -t sid}} |
− | |||
− | + | دریافت پروندهٔ deb از مخزن sid | |
+ | {{bc|$ apt download vlc -t sid}} | ||
− | + | بدیهی است که برای استفاده از این ویژگی باید فهرست مخازن sid در تنظیمات apt موجود باشد. | |
− | |||
− | |||
− | + | ===ارتقای بستههای نصب شده=== | |
− | + | نخست سیاههٔ مخازن را به روز میکنیم. | |
− | $ sudo apt | + | {{bc|$ sudo apt update}} |
− | |||
− | * برای | + | * برای دیدن بستههای قابل [[Upgrade|ارتقا]]، از این فرمان استفاده میشود: |
+ | {{bc|$ apt list --upgradable}} | ||
− | + | * برای ارتقای بستههای عادی از این فرمان استفاده می شود: | |
− | $ sudo apt | + | {{bc|$ sudo apt upgrade}} |
− | |||
− | + | * برخی از ارتقاها برای رفع ناسازگاریها، نیاز به حذف بستههای دیگر دارند. برای انجام این دسته از ارتقاها از فرمان زیر استفاده میشود: | |
+ | {{bc|$ sudo apt full-uprgade}} | ||
− | + | ===بارگیری=== | |
− | $ | + | * برای بارگیری پرونده deb: |
− | + | {{bc|$ apt download PACKAGE}} | |
− | + | * برای بارگیری کد منبع نرمافزار: | |
+ | {{bc|$ apt source PACKAGE}} | ||
+ | برای این کار باید فهرست مخازن deb-src از پیش تنظیم شده باشد. | ||
+ | |||
+ | ===اطلاعات یک بسته=== | ||
+ | * برای دیدن اطلاعات بیشتر در مورد بسته، شامل توضیحات، حجم، صفحهٔ خانگی و... از این فرمان استفاده میشود: | ||
+ | {{bc|$ apt show PACKAGE}} | ||
− | * برای | + | * برای نشان دادن نسخههای موجود از یک بسته و اولویت آنها |
+ | {{bc|$ apt policy PACKAGE}} | ||
− | + | * برای جستوجوی بستههای مربوط به یک عبارت، از این فرمان استفاده میشود: | |
− | $ apt search PATTERN | + | {{bc|$ apt search PATTERN}} |
− | |||
− | * برای | + | * برای دیدن همهٔ بستههای نصب شده با مدیربستهٔ apt، از این فرمان استفاده میشود: |
+ | {{bc|$ apt list --installed}} | ||
− | + | ===سایر=== | |
− | $ apt | + | *برای تمیز کردن کش apt |
− | + | {{bc|$ apt clean}} | |
*برای دیدن گاو! | *برای دیدن گاو! | ||
+ | {{bc|$ apt moo}} | ||
− | + | == بستههای مکمّل == | |
− | |||
− | |||
− | |||
− | = بستههای مکمّل = | ||
− | == apt-transport-https == | + | === apt-transport-https === |
− | این بسته، بستهٔ مکمّلی برای APT است که پشتیبانی از [ | + | این بسته، بستهٔ مکمّلی برای APT است که پشتیبانی از [https://wiki.ubuntu.ir/wiki/%D9%85%D8%AE%D8%B2%D9%86 مخزنهای] رمزشده با [[Protocol|قرارداد]] https را به آن میافزاید. |
− | منظور شاخههای https در داخل پروندهٔ | + | منظور شاخههای https در داخل پروندهٔ {{ic|/etc/apt/sources.list}} است. |
برای نصب، از فرمان زیر استفاده کنید: | برای نصب، از فرمان زیر استفاده کنید: | ||
+ | {{bc|$ sudo apt install apt-transport-https}} | ||
− | + | === apt-transport-tor === | |
− | |||
− | |||
− | |||
− | == apt-transport-tor == | ||
این بسته، بستهٔ مکمّلی برای APT است که پشتیبانی از [[Repository|مخزنها]] را از پشت شبکهٔ [[Tor|تور]] به آن میافزاید. | این بسته، بستهٔ مکمّلی برای APT است که پشتیبانی از [[Repository|مخزنها]] را از پشت شبکهٔ [[Tor|تور]] به آن میافزاید. | ||
برای نصب، از فرمان زیر استفاده کنید: | برای نصب، از فرمان زیر استفاده کنید: | ||
+ | {{bc|$ sudo apt install apt-transport-tor}} | ||
− | + | == مشکلات مرسوم == | |
− | |||
− | |||
− | |||
− | = مشکلات مرسوم = | ||
− | == خراب شدن فهرستها == | + | === خراب شدن فهرستها === |
در هنگام بروز این مشکل که معمولاً به خاطر خراب شدن پروندههای فهرست روی [[Disk|دیسک]] رخ میدهد، اجرای تقریباً هر دستور مرتبط با apt با مشکلاتی مانند خط زیر مواجه میشود: | در هنگام بروز این مشکل که معمولاً به خاطر خراب شدن پروندههای فهرست روی [[Disk|دیسک]] رخ میدهد، اجرای تقریباً هر دستور مرتبط با apt با مشکلاتی مانند خط زیر مواجه میشود: | ||
− | + | {{bc|E: The package lists or status file could not be parsed or opened}} | |
− | |||
− | E: The package lists or status file could not be parsed or opened | ||
− | |||
در این مورد سادهترین کار، حذف این پروندهها و سپس ایجاد دوبارهٔ آنها بهوسیلهٔ عمل بهروز رسانی فهرستهاست: | در این مورد سادهترین کار، حذف این پروندهها و سپس ایجاد دوبارهٔ آنها بهوسیلهٔ عمل بهروز رسانی فهرستهاست: | ||
− | + | {{bc| | |
− | |||
$ sudo rm -rf /var/lib/apt/lists/* | $ sudo rm -rf /var/lib/apt/lists/* | ||
$ sudo apt update | $ sudo apt update | ||
− | + | }} | |
− | |||
− | |||
− | |||
− | + | === فعال نبودن قابلیت بارگیری کد منبع به صورت پیشگزیده === | |
− | $ sudo | + | در صورت فعال نبودن این قابلیت به صورت پیشگزیده، میبایستی ابتدا خطهایی که با deb-src شروع میشوند را به سیاههٔ مخازن افزود: |
− | + | {{bc|$ sudo apt edit-sources}} | |
در غیر این صورت با این پیغام خطا مواجه خواهید شد: | در غیر این صورت با این پیغام خطا مواجه خواهید شد: | ||
− | + | {{bc| | |
− | |||
Reading package lists... Done | Reading package lists... Done | ||
E: You must put some 'source' URIs in your sources.list | E: You must put some 'source' URIs in your sources.list | ||
− | + | }} | |
− | |||
− | |||
− | + | و سپس همچنین مطمئن شد که بسته dpkg-dev نصب است. | |
− | $ sudo apt install dpkg-dev | + | {{bc|$ sudo apt install dpkg-dev}} |
− | |||
در غیر این صورت با پیغامی مشابه زیر مواجه خواهید شد (gnome-terminal نام بستهٔ مورد نظر است): | در غیر این صورت با پیغامی مشابه زیر مواجه خواهید شد (gnome-terminal نام بستهٔ مورد نظر است): | ||
− | + | {{bc| | |
− | |||
sh: 1: dpkg-source: not found | sh: 1: dpkg-source: not found | ||
Unpack command 'dpkg-source -x gnome-terminal_3.18.3-1ubuntu1.dsc' failed. | Unpack command 'dpkg-source -x gnome-terminal_3.18.3-1ubuntu1.dsc' failed. | ||
Check if the 'dpkg-dev' package is installed. | Check if the 'dpkg-dev' package is installed. | ||
E: Sub-process dpkg-source returned an error code (1) | E: Sub-process dpkg-source returned an error code (1) | ||
− | + | }} | |
و همچنین مطمئن شوید که بسته debian-keyring برای چک کردن امضای بسته بارگیری و نصب شده باشد. | و همچنین مطمئن شوید که بسته debian-keyring برای چک کردن امضای بسته بارگیری و نصب شده باشد. | ||
− | + | {{bc|$ sudo apt install debian-keyring}} | |
− | |||
− | $ sudo apt install debian-keyring | ||
− | |||
در غیر این صورت با پیغامی مشابه زیر مواجه خواهید شد (gnome-terminal نام بستهٔ مورد نظر است): | در غیر این صورت با پیغامی مشابه زیر مواجه خواهید شد (gnome-terminal نام بستهٔ مورد نظر است): | ||
− | + | {{bc| | |
− | |||
gpgv: Signature made Tue 15 Mar 2016 07:00:36 PM CET using RSA key ID 1C5041D4 | 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 | gpgv: Can't check signature: public key not found | ||
dpkg-source: warning: failed to verify signature on ./gnome-terminal_3.18.3-1ubuntu1.dsc | dpkg-source: warning: failed to verify signature on ./gnome-terminal_3.18.3-1ubuntu1.dsc | ||
− | + | }} | |
+ | |||
+ | == سایر ویژگیها == | ||
+ | |||
+ | * جستجوی بستهای که حاوی برنامهٔ مورد نظر است. | ||
+ | برای نمونه فرض کنید میخواهید برنامهٔ ls را نصب کنید. | ||
+ | بستهای با نام ls در مخازن نداریم و دستور زیر خطا دارد. | ||
+ | {{bc| | ||
+ | $ sudo apt install ls | ||
+ | }} | ||
+ | با نصب برنامهٔ apt-file جستجو را انجام میدهیم. | ||
+ | {{bc| | ||
+ | $ apt-file search --regexp '/ls$' | ||
+ | }} | ||
− | = ابزارهای مشابه = | + | == ابزارهای مشابه == |
* [[Aptitude]] | * [[Aptitude]] | ||
+ | * [[dpkg]] | ||
− | = راهنما = | + | == راهنما == |
− | برای مطالعهٔ جزئیات بیشتر و راهنمای برنامه، میتوان [[Man|صفحهٔ راهنمای]] برنامه را مشاهده کرده و یا از انتخاب | + | برای مطالعهٔ جزئیات بیشتر و راهنمای برنامه، میتوان [[Man|صفحهٔ راهنمای]] برنامه را مشاهده کرده و یا از انتخاب {{ic|help}} در [[CLI|خط فرمان]] استفاده کنید: |
− | + | {{bc| | |
$ man apt | $ man apt | ||
− | $ apt -- | + | $ apt --help |
− | + | }} | |
نسخهٔ کنونی تا ۱۲ تیر ۱۴۰۳، ساعت ۱۴:۳۷
ابزار بستهبندی پیشرفته(اپت) (به انگلیسی 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
این کار به معنی حذف یک بسته و تمام پروندهها و پیشنیازهای وابسته به آن بسته است.
نصب نرمافزار از یک مخزن خاص
برای نصب نرمافزار از مخزنی خاص که پیشفرض نیست از انتحاب 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
- برخی از ارتقاها برای رفع ناسازگاریها، نیاز به حذف بستههای دیگر دارند. برای انجام این دسته از ارتقاها از فرمان زیر استفاده میشود:
$ sudo apt full-uprgade
بارگیری
- برای بارگیری پرونده deb:
$ apt download PACKAGE
- برای بارگیری کد منبع نرمافزار:
$ apt source PACKAGE
برای این کار باید فهرست مخازن deb-src از پیش تنظیم شده باشد.
اطلاعات یک بسته
- برای دیدن اطلاعات بیشتر در مورد بسته، شامل توضیحات، حجم، صفحهٔ خانگی و... از این فرمان استفاده میشود:
$ apt show PACKAGE
- برای نشان دادن نسخههای موجود از یک بسته و اولویت آنها
$ apt policy PACKAGE
- برای جستوجوی بستههای مربوط به یک عبارت، از این فرمان استفاده میشود:
$ apt search PATTERN
- برای دیدن همهٔ بستههای نصب شده با مدیربستهٔ apt، از این فرمان استفاده میشود:
$ apt list --installed
سایر
- برای تمیز کردن کش apt
$ apt clean
- برای دیدن گاو!
$ apt moo
بستههای مکمّل
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