ضروریات مدیریت بسته: apt yum dnf pkg

اکثر سیستم عامل های مدرن یونیکس یک مکانیسم متمرکز برای یافتن و نصب نرم افزار ارائه می دهند. نرم افزار معمولاً در قالب بسته هایی توزیع می شود که در مخازن نگهداری می شوند. کار با بسته ها به عنوان مدیریت بسته شناخته می شود. بسته ها اجزای اصلی یک سیستم عامل را به همراه کتابخانه های مشترک، برنامه های کاربردی، خدمات و اسناد ارائه می کنند.

یک سیستم مدیریت بسته بسیار بیشتر از نصب یکباره نرم افزار انجام می دهد. همچنین ابزارهایی برای ارتقاء بسته های نصب شده از قبل فراهم می کند. مخازن بسته کمک می کند تا اطمینان حاصل شود که کد برای استفاده در سیستم شما بررسی شده است و نسخه های نصب شده نرم افزار توسط توسعه دهندگان و نگهدارندگان بسته تایید شده است.

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

این راهنما به عنوان یک مرجع سریع برای اصول اولیه یافتن، نصب و ارتقاء بسته‌ها در انواع توزیع‌ها در نظر گرفته شده است و باید به شما کمک کند این دانش را بین سیستم‌ها تفسیر کنید.

سیستم های مدیریت بسته: مروری کوتاه

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

در حالی که عملکرد و مزایای آنها به طور گسترده مشابه یک دیگر است، قالب ها و ابزارهای بسته بندی بسته برای هر کدام از پلت فرم ها متفاوت است:

  • برای Debian / Ubuntu: .deb با استفاده از  apt و dpkg نصب میشوند
  • برای Rocky / Fedora / RHEL: .rpm با استفاده از yum نصب میشوند
  • برای FreeBSD: .txz با استفاده از pkg نصب میشوند

در دبیان و سیستم های مبتنی بر آن، مانند اوبونتو، لینوکس مینت و راسپبین، فرمت بسته فایل .deb است. apt، ابزار بسته‌بندی پیشرفته، دستوراتی را ارائه می‌دهد که برای اکثر عملیات‌های رایج استفاده می‌شوند: جستجوی مخازن، نصب مجموعه‌ای از بسته‌ها و وابستگی‌های آنها، و مدیریت ارتقای بسته ها. دستورات apt به‌عنوان یک فرانت‌اند برای ابزار سطح پایین‌تر dpkg عمل می‌کنند، که نصب فایل‌های .deb منفرد را در سیستم محلی مدیریت می‌کند و گاهی اوقات مستقیماً فراخوانی می‌شود.

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

راکی لینوکس، فدورا و سایر اعضای خانواده Red Hat از فایل های RPM استفاده می کنند. اینها از یک مدیر بسته به نام yum استفاده می کردند. در نسخه های اخیر فدورا و مشتقات آن، yum جایگزین dnf شده است، یک فورک مدرن که بیشتر رابط yum را حفظ می کند.

سیستم بسته باینری FreeBSD با دستور pkg اداره می شود. FreeBSD همچنین Ports Collection را ارائه می دهد، یک ساختار دایرکتوری محلی و ابزارهایی که به کاربر اجازه می دهد بسته ها را مستقیماً از منبع و با استفاده از Makefiles واکشی، کامپایل و نصب کند. معمولاً استفاده از pkg بسیار راحت‌تر است، اما گاهی اوقات یک بسته از پیش کامپایل شده در دسترس نیست، یا ممکن است لازم باشد گزینه‌های زمان کامپایل را تغییر دهید.

لیست های بسته را به روز کنید

اکثر سیستم ها یک پایگاه داده محلی از بسته های موجود از مخازن راه دور نگهداری می کنند. بهتر است این پایگاه داده را قبل از نصب یا ارتقاء بسته ها به روز کنید. به عنوان یک استثنا جزئی از این الگو، dnf قبل از انجام برخی عملیات ها، به روز رسانی ها را بررسی می کند، اما می توانید هر زمان که بخواهید بپرسید که آیا به روز رسانی در دسترس است یا خیر.

  • برای Debian / Ubuntu: sudo apt update
  • برای Rocky / Fedora / RHEL: dnf check-update
  • برای FreeBSD Packages: sudo pkg update
  • برای FreeBSD Ports: sudo portsnap fetch update

بسته های نصب شده را ارتقا دهید

اطمینان از به روز بودن همه نرم افزارهای نصب شده روی دستگاه بدون سیستم بسته کاری بسیار بزرگ خواهد بود. شما باید تغییرات بالادستی و هشدارهای امنیتی را برای صدها بسته مختلف دنبال کنید. در حالی که یک مدیر بسته هر مشکلی را که هنگام ارتقاء نرم افزار با آن مواجه می شوید حل نمی کند، شما را قادر می سازد تا اکثر اجزای سیستم را با چند دستور حفظ کنید.

در FreeBSD، ارتقاء پورت‌های نصب شده می‌تواند تغییراتی را ایجاد کند یا به مراحل پیکربندی دستی نیاز داشته باشد. بهتر است قبل از ارتقا با portmaster، /usr/ports/UPDATING را بخوانید.

  • برای Debian / Ubuntu: sudo apt upgrade
  • برای Rocky / Fedora / RHEL: sudo dnf upgrade
  • برای FreeBSD Packages: sudo pkg upgrade

پیدا کردن یک بسته

اکثر توزیع‌ها یک صفحه فرانت گرافیکی یا منو محور با مجموعه‌های از بسته ها را ارائه می‌دهند. اینها می توانند راه خوبی برای مرور بر اساس دسته بندی و کشف نرم افزارهای جدید باشند. با این حال، اغلب، سریعترین و موثرترین راه برای تعیین مکان یک بسته، جستجو با ابزارهای خط فرمان است.

  • برای Debian / Ubuntu: apt search search_string
  • برای Rocky / Fedora / RHEL: dnf search search_string
  • برای FreeBSD Packages: pkg search search_string

توجه: در Rocky، Fedora یا RHEL، می‌توانید عناوین و توضیحات بسته‌ها را با استفاده از dnf search all جستجو کنید. در FreeBSD، می توانید توضیحات را با استفاده از pkg search -D جستجو کنید

مشاهده اطلاعات درباره یک بسته خاص

هنگام تصمیم‌گیری برای نصب، خواندن توضیحات دقیق بسته‌ها اغلب مفید است. همراه با متن قابل خواندن برای انسان، اغلب اطلاعات شامل ابرداده هایی مانند شماره نسخه و لیستی از وابستگی های بسته می باشد.

  • برای Debian / Ubuntu: apt show package
  • برای Rocky / Fedora / RHEL: dnf info package
  • برای FreeBSD Packages: pkg info package
  • برای FreeBSD Ports: cd /usr/ports/category/port && cat pkg-descr

یک بسته را از مخازن نصب کنید

هنگامی که نام یک بسته را می دانید، معمولاً می توانید آن و وابستگی های آن را با یک دستور نصب کنید. به طور کلی، می‌توانید با فهرست کردن همه بسته‌ها، چندین بسته را برای نصب در یک زمان ارائه کنید.

  • برای Debian / Ubuntu: sudo apt install package
  • برای Rocky / Fedora / RHEL: sudo dnf install package
  • برای FreeBSD Packages: sudo pkg install package

یک بسته را از سیستم فایل محلی نصب کنید

گاهی اوقات، حتی اگر نرم افزار به طور رسمی برای یک سیستم عامل خاص بسته بندی نشده است، یک توسعه دهنده یا فروشنده فایل های بسته را برای دانلود ارائه می دهد. معمولاً می توانید این موارد را با مرورگر وب خود یا از طریق curl در خط فرمان بازیابی کنید. هنگامی که یک بسته بر روی سیستم هدف قرار می گیرد، اغلب می توان آن را با یک فرمان نصب کرد.

در سیستم های مشتق شده از دبیان، dpkg فایل های بسته جداگانه را مدیریت می کند. اگر بسته‌ای وابستگی‌های برآورده نشده داشته باشد، gdebi اغلب می‌تواند برای بازیابی آنها از مخازن رسمی استفاده شود.

در راکی لینوکس، فدورا یا RHEL، dnf برای نصب فایل‌های جداگانه استفاده می‌شود، و همچنین وابستگی‌های مورد نیاز را مدیریت می‌کند.

  • برای Debian / Ubuntu: sudo dpkg -i package.deb
  • برای Rocky / Fedora / RHEL: sudo dnf install package.rpm
  • برای FreeBSD Packages: sudo pkg add package.txz

یک یا چند بسته نصب شده را حذف کنید

از آنجایی که یک مدیر بسته می‌داند چه فایل‌هایی توسط یک بسته ارائه می‌شوند، معمولاً می‌تواند آنها را به طور کامل از سیستم حذف کند، البته در صورتی که دیگر به نرم‌افزار نیاز نباشد.

  • برای Debian / Ubuntu: sudo apt remove package
  • برای Rocky / Fedora / RHEL: sudo dnf erase package
  • برای FreeBSD Packages: sudo pkg delete package

دریافت کمک

علاوه بر مستندات مبتنی بر وب، به خاطر داشته باشید که صفحات دستی یونیکس (معمولاً به آنها صفحات man گفته می شود) برای اکثر دستورات پوسته در دسترس هستند. برای خواندن یک صفحه، از man استفاده کنید:

 

man page

 

 

در man، شما می توانید با کلیدهای جهت دار حرکت کنید. / را برای جستجوی متن در صفحه و q را برای خروج فشار دهید.

  • برای Debian / Ubuntu: man apt
  • برای Rocky / Fedora / RHEL: man dnf
  • برای FreeBSD Packages: man pkg
  • برای FreeBSD Ports: man ports

نتیجه گیری و مطالعه بیشتر

این راهنما یک نمای کلی از عملیاتی را ارائه می دهد که می تواند بین سیستم ها ارجاع داده شود، اما فقط یک سطح موضوع پیچیده را خراش می دهد. برای جزئیات بیشتر در مورد یک سیستم معین، می توانید به منابع زیر مراجعه کنید:

این راهنما مدیریت بسته دبیان و ابونتو را با جزییات پوشش میدهد

یک صفحه ویکی درباره dnf فدورا وجود دارد و یک راهنمای رسمی که برای خود dnf است

این راهنما مدیریت بسته FreeBSD را با جزییات پوشش میدهد

کتاب دستی FreeBSD که شامل بخش استفاده از  Ports Collection است

 

منبع DigitalOcean

۶۷۲
۱۴۰۲/۳/۵